{"version":3,"file":"app-b3d2fe85cb9f2cacc54c.js","mappings":"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","sources":["webpack://gatsby-multi-language-website/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://gatsby-multi-language-website/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://gatsby-multi-language-website/./node_modules/js-base64/base64.mjs","webpack://gatsby-multi-language-website/./node_modules/@imgix/js-core/dist/index.esm.js","webpack://gatsby-multi-language-website/./node_modules/@prismicio/helpers/dist/index.js","webpack://gatsby-multi-language-website/./node_modules/@prismicio/react/dist/index.mjs","webpack://gatsby-multi-language-website/./node_modules/@prismicio/richtext/dist/index.js","webpack://gatsby-multi-language-website/./node_modules/@prismicio/types/dist/index.js","webpack://gatsby-multi-language-website/./node_modules/camel-case/node_modules/tslib/tslib.es6.js","webpack://gatsby-multi-language-website/./node_modules/camel-case/dist.es2015/index.js","webpack://gatsby-multi-language-website/./node_modules/charenc/charenc.js","webpack://gatsby-multi-language-website/./node_modules/classnames/index.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/TemplateTag/TemplateTag.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/commaLists/commaLists.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/commaListsAnd/commaListsAnd.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/commaListsOr/commaListsOr.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/html/html.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/safeHtml/safeHtml.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/stripIndent/stripIndent.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/oneLine/oneLine.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/oneLineTrim/oneLineTrim.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/oneLineCommaLists/oneLineCommaLists.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/inlineLists/inlineLists.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/oneLineInlineLists/oneLineInlineLists.js","webpack://gatsby-multi-language-website/./node_modules/common-tags/es/stripIndents/stripIndents.js","webpack://gatsby-multi-language-website/./node_modules/crypt/crypt.js","webpack://gatsby-multi-language-website/./node_modules/debug/src/browser.js","webpack://gatsby-multi-language-website/./node_modules/debug/src/common.js","webpack://gatsby-multi-language-website/./node_modules/es-cookie/src/es-cookie.js","webpack://gatsby-multi-language-website/./node_modules/escape-html/index.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts-contrib/lib/Do.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/Applicative.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/Apply.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/Chain.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/Either.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/ChainRec.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/FromEither.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/FromIO.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/Functor.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/Zero.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/Option.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/Predicate.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/Ord.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/Semigroup.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/Magma.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/Separated.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/Task.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/Compactable.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/EitherT.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/Filterable.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/FromTask.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/TaskEither.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/Witherable.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/function.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/internal.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/es6/pipeable.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/lib/Apply.js","webpack://gatsby-multi-language-website/./node_modules/fp-ts/lib/function.js","webpack://gatsby-multi-language-website/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://gatsby-multi-language-website/./node_modules/io-ts/es6/index.js","webpack://gatsby-multi-language-website/./node_modules/is-buffer/index.js","webpack://gatsby-multi-language-website/./node_modules/jsuri/Uri.js","webpack://gatsby-multi-language-website/./node_modules/md5/md5.js","webpack://gatsby-multi-language-website/./node_modules/ms/index.js","webpack://gatsby-multi-language-website/./node_modules/node-fetch/browser.js","webpack://gatsby-multi-language-website/./node_modules/pascal-case/node_modules/tslib/tslib.es6.js","webpack://gatsby-multi-language-website/./node_modules/lower-case/dist.es2015/index.js","webpack://gatsby-multi-language-website/./node_modules/no-case/dist.es2015/index.js","webpack://gatsby-multi-language-website/./node_modules/pascal-case/dist.es2015/index.js","webpack://gatsby-multi-language-website/./node_modules/prop-types-extra/lib/all.js","webpack://gatsby-multi-language-website/./node_modules/prop-types-extra/lib/utils/createChainableTypeChecker.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/F.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/T.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/__.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_isPlaceholder.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_curry1.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_curry2.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/add.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_concat.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_arity.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_curryN.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/curryN.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/addIndex.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_curry3.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/adjust.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_isArray.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_isTransformer.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_dispatchable.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_reduced.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xfBase.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xall.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/all.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/max.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_map.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_isString.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_isArrayLike.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xwrap.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/bind.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_reduce.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xmap.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_has.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_isArguments.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/keys.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/map.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_isInteger.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/nth.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/paths.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/path.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/prop.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/pluck.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/reduce.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/allPass.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/always.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/and.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xany.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/any.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/anyPass.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/ap.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_aperture.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xaperture.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/aperture.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/append.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/apply.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/values.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/applySpec.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/applyTo.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/ascend.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/assoc.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/isNil.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/assocPath.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/nAry.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/binary.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_isFunction.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/liftN.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/lift.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/both.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/curry.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/call.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_makeFlat.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_flatCat.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_forceReduced.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/chain.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xchain.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/clamp.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_cloneRegExp.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/type.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_clone.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/clone.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/comparator.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/not.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/complement.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_pipe.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_checkForMethod.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/slice.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/tail.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/pipe.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/reverse.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/compose.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/composeK.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_pipeP.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/pipeP.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/composeP.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/head.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_identity.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/identity.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/pipeWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/composeWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_arrayFromIterator.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_includesWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_objectIs.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_equals.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_functionName.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/equals.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_indexOf.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_includes.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_quote.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_toISOString.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_complement.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_filter.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_isObject.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xfilter.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/filter.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/reject.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_toString.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/toString.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/concat.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/cond.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/constructN.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/construct.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/contains.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/converge.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xreduceBy.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/reduceBy.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/countBy.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/dec.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/defaultTo.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/descend.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_Set.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/difference.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/differenceWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/dissoc.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/remove.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/update.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/dissocPath.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/divide.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xdrop.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/drop.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xtake.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/take.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_dropLast.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xdropLast.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/dropLast.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_dropLastWhile.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xdropLastWhile.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/dropLastWhile.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xdropRepeatsWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/last.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/dropRepeatsWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/dropRepeats.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xdropWhile.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/dropWhile.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/or.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/either.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/empty.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/takeLast.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/endsWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/eqBy.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/eqProps.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/evolve.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xfind.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/find.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xfindIndex.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/findIndex.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xfindLast.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/findLast.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xfindLastIndex.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/findLastIndex.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/flatten.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/flip.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/forEach.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/forEachObjIndexed.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/fromPairs.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/groupBy.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/groupWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/gt.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/gte.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/hasPath.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/has.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/hasIn.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/identical.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/ifElse.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/inc.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/includes.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/indexBy.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/indexOf.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/init.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/innerJoin.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/insert.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/insertAll.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/uniqBy.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/uniq.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/intersection.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/intersperse.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_objectAssign.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/objOf.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_stepCat.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/into.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/invert.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/invertObj.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/invoker.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/is.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/isEmpty.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/join.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/juxt.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/keysIn.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/lastIndexOf.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_isNumber.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/length.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/lens.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/lensIndex.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/lensPath.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/lensProp.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/lt.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/lte.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/mapAccum.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/mapAccumRight.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/mapObjIndexed.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/match.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/mathMod.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/maxBy.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/sum.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/mean.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/median.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/memoizeWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/merge.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/mergeAll.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/mergeWithKey.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/mergeDeepWithKey.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/mergeDeepLeft.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/mergeDeepRight.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/mergeDeepWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/mergeLeft.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/mergeRight.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/mergeWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/min.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/minBy.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/modulo.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/move.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/multiply.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/negate.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/none.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/nthArg.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/o.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_of.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/of.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/omit.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/once.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_assertPromise.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/otherwise.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/over.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/pair.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_createPartialApplicator.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/partial.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/partialRight.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/partition.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/pathEq.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/pathOr.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/pathSatisfies.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/pick.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/pickAll.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/pickBy.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/pipeK.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/prepend.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/product.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/useWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/project.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/propEq.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/propIs.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/propOr.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/propSatisfies.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/props.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/range.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/reduceRight.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/reduceWhile.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/reduced.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/times.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/repeat.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/replace.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/scan.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/sequence.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/set.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/sort.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/sortBy.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/sortWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/split.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/splitAt.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/splitEvery.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/splitWhen.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/startsWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/subtract.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/symmetricDifference.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/symmetricDifferenceWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/takeLastWhile.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xtakeWhile.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/takeWhile.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_xtap.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/tap.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/test.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/internal/_isRegExp.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/andThen.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/toLower.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/toPairs.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/toPairsIn.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/toUpper.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/transduce.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/transpose.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/traverse.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/trim.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/tryCatch.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/unapply.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/unary.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/uncurryN.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/unfold.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/union.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/uniqWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/unionWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/unless.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/unnest.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/until.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/valuesIn.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/view.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/when.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/where.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/whereEq.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/without.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/xor.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/xprod.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/zip.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/zipObj.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/zipWith.js","webpack://gatsby-multi-language-website/./node_modules/ramda/es/thunkify.js","webpack://gatsby-multi-language-website/./node_modules/react-fast-compare/index.js","webpack://gatsby-multi-language-website/./node_modules/react-side-effect/lib/index.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/a-callable.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/add-to-unscopables.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/an-object.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/array-includes.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/array-species-constructor.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/array-species-create.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/classof-raw.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/classof.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/create-property-descriptor.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/descriptors.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/document-create-element.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/engine-user-agent.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/engine-v8-version.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/enum-bug-keys.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/export.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/fails.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/flatten-into-array.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/function-bind-context.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/function-bind-native.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/function-call.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/function-name.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/function-uncurry-this.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/get-built-in.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/get-method.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/global.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/has-own-property.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/hidden-keys.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/html.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/ie8-dom-define.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/indexed-object.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/inspect-source.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/internal-state.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/is-array.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/is-callable.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/is-constructor.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/is-forced.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/is-object.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/is-pure.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/is-symbol.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/length-of-array-like.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/native-symbol.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/native-weak-map.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/object-create.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/object-define-properties.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/object-define-property.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/object-keys-internal.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/object-keys.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/own-keys.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/redefine.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/require-object-coercible.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/set-global.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/shared-key.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/shared-store.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/shared.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/to-absolute-index.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/to-indexed-object.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/to-length.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/to-object.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/to-primitive.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/to-property-key.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/to-string-tag-support.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/try-to-string.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/uid.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://gatsby-multi-language-website/./node_modules/core-js/internals/well-known-symbol.js","webpack://gatsby-multi-language-website/./node_modules/core-js/modules/es.array.flat-map.js","webpack://gatsby-multi-language-website/./node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack://gatsby-multi-language-website/./node_modules/core-js/modules/es.global-this.js","webpack://gatsby-multi-language-website/./node_modules/core-js/modules/esnext.global-this.js","webpack://gatsby-multi-language-website/./node_modules/gatsby-link/index.js","webpack://gatsby-multi-language-website/./node_modules/gatsby-link/parse-path.js","webpack://gatsby-multi-language-website/./node_modules/gatsby-react-router-scroll/index.js","webpack://gatsby-multi-language-website/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://gatsby-multi-language-website/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://gatsby-multi-language-website/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://gatsby-multi-language-website/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://gatsby-multi-language-website/./.cache/api-runner-browser-plugins.js","webpack://gatsby-multi-language-website/./.cache/api-runner-browser.js","webpack://gatsby-multi-language-website/./node_modules/mitt/dist/mitt.es.js","webpack://gatsby-multi-language-website/./.cache/emitter.js","webpack://gatsby-multi-language-website/./.cache/normalize-page-path.js","webpack://gatsby-multi-language-website/./.cache/find-path.js","webpack://gatsby-multi-language-website/./.cache/gatsby-browser-entry.js","webpack://gatsby-multi-language-website/./.cache/prefetch.js","webpack://gatsby-multi-language-website/./.cache/loader.js","webpack://gatsby-multi-language-website/./.cache/page-renderer.js","webpack://gatsby-multi-language-website/./.cache/route-announcer-props.js","webpack://gatsby-multi-language-website/./.cache/navigation.js","webpack://gatsby-multi-language-website/./node_modules/shallow-compare/es/index.js","webpack://gatsby-multi-language-website/./.cache/ensure-resources.js","webpack://gatsby-multi-language-website/./.cache/production-app.js","webpack://gatsby-multi-language-website/./.cache/public-page-renderer-prod.js","webpack://gatsby-multi-language-website/./.cache/public-page-renderer.js","webpack://gatsby-multi-language-website/./.cache/react-lifecycles-compat.js","webpack://gatsby-multi-language-website/./.cache/redirect-utils.js","webpack://gatsby-multi-language-website/./.cache/register-service-worker.js","webpack://gatsby-multi-language-website/./.cache/strip-prefix.js","webpack://gatsby-multi-language-website/./src/utils/prismicPreviews.js","webpack://gatsby-multi-language-website/./gatsby-browser.js","webpack://gatsby-multi-language-website/../api/fetchBase64Image.ts","webpack://gatsby-multi-language-website/../api/fetchImgixMetadata.ts","webpack://gatsby-multi-language-website/../common/cache.ts","webpack://gatsby-multi-language-website/../common/createExternalHelper.ts","webpack://gatsby-multi-language-website/../common/fpTsUtils.ts","webpack://gatsby-multi-language-website/../common/imgix-js-core-wrapper.ts","webpack://gatsby-multi-language-website/../common/log.ts","webpack://gatsby-multi-language-website/../common/uri.ts","webpack://gatsby-multi-language-website/../common/utils.ts","webpack://gatsby-multi-language-website/../../../src/modules/gatsby-plugin/buildGatsbyImageDataBaseArgs.ts","webpack://gatsby-multi-language-website/../../../src/modules/gatsby-plugin/createImgixBase64FieldConfig.ts","webpack://gatsby-multi-language-website/../../../src/modules/gatsby-plugin/createImgixFixedFieldConfig.ts","webpack://gatsby-multi-language-website/../../../src/modules/gatsby-plugin/graphqlTypes.ts","webpack://gatsby-multi-language-website/../../../src/modules/gatsby-plugin/objectBuilders.ts","webpack://gatsby-multi-language-website/../../../src/modules/gatsby-plugin/resolveDimensions.ts","webpack://gatsby-multi-language-website/../src/pluginHelpers.browser.ts","webpack://gatsby-multi-language-website/../src/image-utils.ts","webpack://gatsby-multi-language-website/../src/components/hooks.ts","webpack://gatsby-multi-language-website/../src/components/layout-wrapper.tsx","webpack://gatsby-multi-language-website/../src/components/picture.tsx","webpack://gatsby-multi-language-website/../src/components/placeholder.tsx","webpack://gatsby-multi-language-website/../src/components/main-image.tsx","webpack://gatsby-multi-language-website/../src/components/gatsby-image.server.tsx","webpack://gatsby-multi-language-website/../src/components/gatsby-image.browser.tsx","webpack://gatsby-multi-language-website/../src/components/static-image.server.tsx","webpack://gatsby-multi-language-website/../src/components/static-image.tsx","webpack://gatsby-multi-language-website/../src/components/later-hydrator.tsx","webpack://gatsby-multi-language-website/./node_modules/gatsby-plugin-image/gatsby-browser.js","webpack://gatsby-multi-language-website/./node_modules/gatsby-plugin-image/node_modules/camelcase/index.js","webpack://gatsby-multi-language-website/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://gatsby-multi-language-website/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://gatsby-multi-language-website/../src/constants.ts","webpack://gatsby-multi-language-website/../src/on-client-entry.ts","webpack://gatsby-multi-language-website/./node_modules/tiny-hashes/md5/index.mjs","webpack://gatsby-multi-language-website/../src/index.ts","webpack://gatsby-multi-language-website/../src/types.ts","webpack://gatsby-multi-language-website/../src/runtime/createGetProxy.ts","webpack://gatsby-multi-language-website/../src/runtime/normalizers/alternateLanguages.ts","webpack://gatsby-multi-language-website/../src/runtime/normalizers/document.ts","webpack://gatsby-multi-language-website/../src/runtime/normalizers/documentData.ts","webpack://gatsby-multi-language-website/../src/runtime/normalizers/group.ts","webpack://gatsby-multi-language-website/../src/lib/sanitizeImageURL.ts","webpack://gatsby-multi-language-website/../src/runtime/normalizers/image.ts","webpack://gatsby-multi-language-website/../src/lib/stripURLParameters.ts","webpack://gatsby-multi-language-website/../src/runtime/normalizers/link.ts","webpack://gatsby-multi-language-website/../src/runtime/normalizers/structuredText.ts","webpack://gatsby-multi-language-website/../src/runtime/normalizers/slice.ts","webpack://gatsby-multi-language-website/../src/runtime/normalizers/slices.ts","webpack://gatsby-multi-language-website/../src/runtime/normalize.ts","webpack://gatsby-multi-language-website/../src/runtime/runtime.ts","webpack://gatsby-multi-language-website/../src/runtime/typePaths.ts","webpack://gatsby-multi-language-website/../src/runtime/serializePath.ts","webpack://gatsby-multi-language-website/../src/runtime/serializeTypePaths.ts","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://gatsby-multi-language-website/./node_modules/@prismicio/client/dist/index.js","webpack://gatsby-multi-language-website/./node_modules/react-shadow/react-shadow.esm.js","webpack://gatsby-multi-language-website/./node_modules/clsx/dist/clsx.m.js","webpack://gatsby-multi-language-website/./node_modules/@reach/utils/can-use-dom/dist/reach-utils-can-use-dom.esm.js","webpack://gatsby-multi-language-website/./node_modules/@reach/utils/use-isomorphic-layout-effect/dist/reach-utils-use-isomorphic-layout-effect.esm.js","webpack://gatsby-multi-language-website/./node_modules/@reach/portal/dist/reach-portal.esm.js","webpack://gatsby-multi-language-website/./node_modules/@reach/utils/use-force-update/dist/reach-utils-use-force-update.esm.js","webpack://gatsby-multi-language-website/./node_modules/@reach/utils/owner-document/dist/reach-utils-owner-document.esm.js","webpack://gatsby-multi-language-website/./node_modules/@reach/utils/noop/dist/reach-utils-noop.esm.js","webpack://gatsby-multi-language-website/./node_modules/@reach/utils/compose-refs/dist/reach-utils-compose-refs.esm.js","webpack://gatsby-multi-language-website/./node_modules/@reach/utils/type-check/dist/reach-utils-type-check.esm.js","webpack://gatsby-multi-language-website/./node_modules/@reach/utils/compose-event-handlers/dist/reach-utils-compose-event-handlers.esm.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/constants.js","webpack://gatsby-multi-language-website/./node_modules/use-callback-ref/dist/es2015/useMergeRef.js","webpack://gatsby-multi-language-website/./node_modules/use-callback-ref/dist/es2015/useRef.js","webpack://gatsby-multi-language-website/./node_modules/use-callback-ref/dist/es2015/assignRef.js","webpack://gatsby-multi-language-website/./node_modules/react-focus-lock/dist/es2015/FocusGuard.js","webpack://gatsby-multi-language-website/./node_modules/tslib/tslib.es6.js","webpack://gatsby-multi-language-website/./node_modules/use-sidecar/dist/es2015/medium.js","webpack://gatsby-multi-language-website/./node_modules/react-focus-lock/dist/es2015/medium.js","webpack://gatsby-multi-language-website/./node_modules/react-focus-lock/dist/es2015/Lock.js","webpack://gatsby-multi-language-website/./node_modules/react-clientside-effect/lib/index.es.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/utils/correctFocus.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/utils/firstFocus.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/utils/is.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/solver.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/utils/array.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/utils/all-affected.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/utils/tabOrder.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/utils/tabUtils.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/utils/tabbables.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/utils/DOMutils.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/utils/parenting.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/focusMerge.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/setFocus.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/index.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/focusInside.js","webpack://gatsby-multi-language-website/./node_modules/react-focus-lock/dist/es2015/util.js","webpack://gatsby-multi-language-website/./node_modules/react-focus-lock/dist/es2015/Trap.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/focusIsHidden.js","webpack://gatsby-multi-language-website/./node_modules/focus-lock/dist/es2015/focusables.js","webpack://gatsby-multi-language-website/./node_modules/react-focus-lock/dist/es2015/Combination.js","webpack://gatsby-multi-language-website/./node_modules/react-focus-lock/dist/es2015/index.js","webpack://gatsby-multi-language-website/./node_modules/react-remove-scroll-bar/dist/es2015/constants.js","webpack://gatsby-multi-language-website/./node_modules/react-remove-scroll/dist/es2015/medium.js","webpack://gatsby-multi-language-website/./node_modules/react-remove-scroll/dist/es2015/UI.js","webpack://gatsby-multi-language-website/./node_modules/use-sidecar/dist/es2015/exports.js","webpack://gatsby-multi-language-website/./node_modules/get-nonce/dist/es2015/index.js","webpack://gatsby-multi-language-website/./node_modules/react-style-singleton/dist/es2015/singleton.js","webpack://gatsby-multi-language-website/./node_modules/react-style-singleton/dist/es2015/component.js","webpack://gatsby-multi-language-website/./node_modules/react-style-singleton/dist/es2015/hook.js","webpack://gatsby-multi-language-website/./node_modules/react-remove-scroll-bar/dist/es2015/utils.js","webpack://gatsby-multi-language-website/./node_modules/react-remove-scroll-bar/dist/es2015/component.js","webpack://gatsby-multi-language-website/./node_modules/react-remove-scroll/dist/es2015/handleScroll.js","webpack://gatsby-multi-language-website/./node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","webpack://gatsby-multi-language-website/./node_modules/react-remove-scroll/dist/es2015/SideEffect.js","webpack://gatsby-multi-language-website/./node_modules/react-remove-scroll/dist/es2015/sidecar.js","webpack://gatsby-multi-language-website/./node_modules/react-remove-scroll/dist/es2015/Combination.js","webpack://gatsby-multi-language-website/./node_modules/@reach/dialog/dist/reach-dialog.esm.js","webpack://gatsby-multi-language-website/../src/context.tsx","webpack://gatsby-multi-language-website/../src/lib/sprintf.ts","webpack://gatsby-multi-language-website/../src/usePrismicPreviewContext.tsx","webpack://gatsby-multi-language-website/../src/useMergePrismicPreviewData.ts","webpack://gatsby-multi-language-website/../src/lib/isPlainObject.ts","webpack://gatsby-multi-language-website/../src/lib/isProxy.ts","webpack://gatsby-multi-language-website/../src/lib/extractPreviewRefRepositoryName.ts","webpack://gatsby-multi-language-website/../src/lib/fetchTypePaths.ts","webpack://gatsby-multi-language-website/../src/lib/buildTypePathsStoreFilename.ts","webpack://gatsby-multi-language-website/../src/usePrismicPreviewBootstrap.ts","webpack://gatsby-multi-language-website/../src/lib/getComponentDisplayName.ts","webpack://gatsby-multi-language-website/../src/components/Root.tsx","webpack://gatsby-multi-language-website/../src/lib/userFriendlyError.ts","webpack://gatsby-multi-language-website/../src/components/Modal.tsx","webpack://gatsby-multi-language-website/../src/components/Button.tsx","webpack://gatsby-multi-language-website/../src/components/Text.tsx","webpack://gatsby-multi-language-website/../src/components/ModalAccessToken.tsx","webpack://gatsby-multi-language-website/../src/components/ModalError.tsx","webpack://gatsby-multi-language-website/../src/components/ModalLoading.tsx","webpack://gatsby-multi-language-website/../src/components/PrismicPreviewUI.tsx","webpack://gatsby-multi-language-website/../src/usePrismicPreviewAccessToken.ts","webpack://gatsby-multi-language-website/../src/withPrismicPreview.tsx","webpack://gatsby-multi-language-website/../src/withPrismicPreviewResolver.tsx","webpack://gatsby-multi-language-website/../src/usePrismicPreviewResolver.ts","webpack://gatsby-multi-language-website/../src/lib/getURLSearchParam.ts","webpack://gatsby-multi-language-website/../src/withPrismicUnpublishedPreview.tsx","webpack://gatsby-multi-language-website/../src/lib/camelCase.ts","webpack://gatsby-multi-language-website/./prismic-configuration.js","webpack://gatsby-multi-language-website/./node_modules/react-helmet/es/Helmet.js","webpack://gatsby-multi-language-website/./node_modules/@restart/ui/esm/SelectableContext.js","webpack://gatsby-multi-language-website/./node_modules/uncontrollable/lib/esm/utils.js","webpack://gatsby-multi-language-website/./node_modules/uncontrollable/lib/esm/hook.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/camelize.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/ThemeProvider.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/createWithBsPrefix.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/NavbarBrand.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/ownerDocument.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/getComputedStyle.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/ownerWindow.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/hyphenate.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/hyphenateStyle.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/isTransform.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/css.js","webpack://gatsby-multi-language-website/./node_modules/react-transition-group/esm/config.js","webpack://gatsby-multi-language-website/./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://gatsby-multi-language-website/./node_modules/react-transition-group/esm/Transition.js","webpack://gatsby-multi-language-website/./node_modules/react-transition-group/esm/utils/reflow.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/canUseDOM.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/addEventListener.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/removeEventListener.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/listen.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/transitionEnd.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/triggerEvent.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/transitionEndListener.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/createChainedFunction.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/triggerBrowserReflow.js","webpack://gatsby-multi-language-website/./node_modules/@restart/hooks/esm/useMergedRefs.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/TransitionWrapper.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/Collapse.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/safeFindDOMNode.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/NavbarContext.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/NavbarCollapse.js","webpack://gatsby-multi-language-website/./node_modules/@restart/hooks/esm/useCommittedRef.js","webpack://gatsby-multi-language-website/./node_modules/@restart/hooks/esm/useEventCallback.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/NavbarToggle.js","webpack://gatsby-multi-language-website/./node_modules/@restart/hooks/esm/useIsomorphicEffect.js","webpack://gatsby-multi-language-website/./node_modules/@restart/hooks/esm/useMediaQuery.js","webpack://gatsby-multi-language-website/./node_modules/@restart/hooks/esm/useBreakpoint.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/activeElement.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/contains.js","webpack://gatsby-multi-language-website/./node_modules/@restart/hooks/esm/useWillUnmount.js","webpack://gatsby-multi-language-website/./node_modules/@restart/hooks/esm/useUpdatedRef.js","webpack://gatsby-multi-language-website/./node_modules/@restart/ui/esm/DataKey.js","webpack://gatsby-multi-language-website/./node_modules/@restart/ui/esm/ModalManager.js","webpack://gatsby-multi-language-website/./node_modules/@restart/ui/esm/getScrollbarWidth.js","webpack://gatsby-multi-language-website/./node_modules/@restart/ui/esm/useWindow.js","webpack://gatsby-multi-language-website/./node_modules/@restart/ui/esm/useWaitForDOMRef.js","webpack://gatsby-multi-language-website/./node_modules/@restart/ui/esm/Modal.js","webpack://gatsby-multi-language-website/./node_modules/@restart/hooks/esm/useMounted.js","webpack://gatsby-multi-language-website/./node_modules/@restart/hooks/esm/usePrevious.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/Fade.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/OffcanvasToggling.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/OffcanvasBody.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/ModalContext.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/CloseButton.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/AbstractModalHeader.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/OffcanvasHeader.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/divWithClassName.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/OffcanvasTitle.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/get.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/querySelectorAll.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/removeClass.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/BootstrapModalManager.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/addClass.js","webpack://gatsby-multi-language-website/./node_modules/dom-helpers/esm/hasClass.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/Offcanvas.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/NavbarOffcanvas.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/Navbar.js","webpack://gatsby-multi-language-website/./node_modules/@restart/ui/esm/NavContext.js","webpack://gatsby-multi-language-website/./node_modules/@restart/ui/esm/TabContext.js","webpack://gatsby-multi-language-website/./node_modules/@restart/ui/esm/Button.js","webpack://gatsby-multi-language-website/./node_modules/@restart/ui/esm/NavItem.js","webpack://gatsby-multi-language-website/./node_modules/@restart/ui/esm/Nav.js","webpack://gatsby-multi-language-website/./node_modules/@restart/hooks/esm/useForceUpdate.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/CardHeaderContext.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/NavItem.js","webpack://gatsby-multi-language-website/./node_modules/@restart/hooks/esm/useResizeObserver.js","webpack://gatsby-multi-language-website/./node_modules/@restart/ui/esm/Anchor.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/NavLink.js","webpack://gatsby-multi-language-website/./node_modules/react-bootstrap/esm/Nav.js","webpack://gatsby-multi-language-website/./src/components/TopMenu.js","webpack://gatsby-multi-language-website/./src/components/Footer.js","webpack://gatsby-multi-language-website/./src/components/Layout.js","webpack://gatsby-multi-language-website/./node_modules/react-hook-form/dist/index.esm.mjs","webpack://gatsby-multi-language-website/./src/utils/utils.js","webpack://gatsby-multi-language-website/./src/slices/Contacts.js","webpack://gatsby-multi-language-website/./src/slices/index.js","webpack://gatsby-multi-language-website/./src/slices/PageCover.js","webpack://gatsby-multi-language-website/./src/slices/ImageAndText.js","webpack://gatsby-multi-language-website/./src/slices/About.js","webpack://gatsby-multi-language-website/./src/slices/Features.js","webpack://gatsby-multi-language-website/./src/slices/Members.js","webpack://gatsby-multi-language-website/./src/slices/Pricing.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","webpack://gatsby-multi-language-website/./src/slices/TitleAndText.js","webpack://gatsby-multi-language-website/./src/slices/SingleText.js","webpack://gatsby-multi-language-website/./src/templates/homepage.js","webpack://gatsby-multi-language-website/./src/templates/page.js","webpack://gatsby-multi-language-website/./src/utils/linkResolver.js","webpack://gatsby-multi-language-website/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://gatsby-multi-language-website/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://gatsby-multi-language-website/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://gatsby-multi-language-website/./node_modules/invariant/browser.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/extends.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/typeof.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/regenerator/index.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://gatsby-multi-language-website/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["\"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 _defineProperty from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/defineProperty.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\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';\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 (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 !!thumbnail.url;\n};\n\nvar image = function image(field) {\n return imageThumbnail(field);\n};\n\nvar link = function link(field) {\n return \"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;\nvar keyText = isNonNullish;\nvar select = isNonNullish;\n\nvar embed = function embed(field) {\n return !!field.embed_url;\n};\n\nvar geoPoint = function geoPoint(field) {\n return \"longitude\" in field;\n};\n\nvar integrationFields = isNonNullish;\nvar group = isNonEmptyArray;\nvar sliceZone = isNonEmptyArray;\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});\nvar Elements = Element;\nexport { Elements, asDate, asHTML, asLink, asText, documentToLinkField, isFilled };","import _toConsumableArray from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";\nimport _slicedToArray from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nimport _objectWithoutProperties from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\";\nimport _defineProperty from \"/codebuild/output/src2927845676/src/mtv-club/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 null;\n }\n }, [props.field, 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 defaultSerializer = createDefaultSerializer({\n linkResolver: linkResolver,\n internalLinkComponent: props.internalLinkComponent,\n externalLinkComponent: props.externalLinkComponent\n });\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, defaultSerializer);\n var serialized = prismicR.serialize(props.field, serializer);\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 \"/codebuild/output/src2927845676/src/mtv-club/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 EmbedType = {\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};\nexport { CustomTypeModelFieldType, CustomTypeModelLinkSelectType, CustomTypeModelSliceDisplay, CustomTypeModelSliceType, EmbedType, LinkType, RichTextNodeType, WebhookType };","/*! *****************************************************************************\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\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 var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, 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}\n/** @deprecated */\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}\n/** @deprecated */\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}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\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;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}","import { __assign } from \"tslib\";\nimport { pascalCase, pascalCaseTransform, pascalCaseTransformMerge } from \"pascal-case\";\nexport function camelCaseTransform(input, index) {\n if (index === 0) return input.toLowerCase();\n return pascalCaseTransform(input, index);\n}\nexport function camelCaseTransformMerge(input, index) {\n if (index === 0) return input.toLowerCase();\n return pascalCaseTransformMerge(input);\n}\nexport function camelCase(input, options) {\n if (options === void 0) {\n options = {};\n }\n\n return pascalCase(input, __assign({\n transform: camelCaseTransform\n }, options));\n}","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function stringToBytes(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n // Convert a byte array to a string\n bytesToString: function bytesToString(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function stringToBytes(str) {\n for (var bytes = [], i = 0; i < str.length; i++) {\n bytes.push(str.charCodeAt(i) & 0xFF);\n }\n\n return bytes;\n },\n // Convert a byte array to a string\n bytesToString: function bytesToString(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++) {\n str.push(String.fromCharCode(bytes[i]));\n }\n\n return str.join('');\n }\n }\n};\nmodule.exports = charenc;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n var nativeCodeString = '[native code]';\n\n function classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = typeof arg;\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n classes.push(arg.toString());\n continue;\n }\n\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n\n return classes.join(' ');\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _templateObject = _taggedTemplateLiteral(['', ''], ['', '']);\n\nfunction _taggedTemplateLiteral(strings, raw) {\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\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/**\n * @class TemplateTag\n * @classdesc Consumes a pipeline of composable transformer plugins and produces a template tag.\n */\n\n\nvar TemplateTag = function () {\n /**\n * constructs a template tag\n * @constructs TemplateTag\n * @param {...Object} [...transformers] - an array or arguments list of transformers\n * @return {Function} - a template tag\n */\n function TemplateTag() {\n var _this = this;\n\n for (var _len = arguments.length, transformers = Array(_len), _key = 0; _key < _len; _key++) {\n transformers[_key] = arguments[_key];\n }\n\n _classCallCheck(this, TemplateTag);\n\n this.tag = function (strings) {\n for (var _len2 = arguments.length, expressions = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n expressions[_key2 - 1] = arguments[_key2];\n }\n\n if (typeof strings === 'function') {\n // if the first argument passed is a function, assume it is a template tag and return\n // an intermediary tag that processes the template using the aforementioned tag, passing the\n // result to our tag\n return _this.interimTag.bind(_this, strings);\n }\n\n if (typeof strings === 'string') {\n // if the first argument passed is a string, just transform it\n return _this.transformEndResult(strings);\n } // else, return a transformed end result of processing the template with our tag\n\n\n strings = strings.map(_this.transformString.bind(_this));\n return _this.transformEndResult(strings.reduce(_this.processSubstitutions.bind(_this, expressions)));\n }; // if first argument is an array, extrude it as a list of transformers\n\n\n if (transformers.length > 0 && Array.isArray(transformers[0])) {\n transformers = transformers[0];\n } // if any transformers are functions, this means they are not initiated - automatically initiate them\n\n\n this.transformers = transformers.map(function (transformer) {\n return typeof transformer === 'function' ? transformer() : transformer;\n }); // return an ES2015 template tag\n\n return this.tag;\n }\n /**\n * Applies all transformers to a template literal tagged with this method.\n * If a function is passed as the first argument, assumes the function is a template tag\n * and applies it to the template, returning a template tag.\n * @param {(Function|String|Array)} strings - Either a template tag or an array containing template strings separated by identifier\n * @param {...*} ...expressions - Optional list of substitution values.\n * @return {(String|Function)} - Either an intermediary tag function or the results of processing the template.\n */\n\n\n _createClass(TemplateTag, [{\n key: 'interimTag',\n\n /**\n * An intermediary template tag that receives a template tag and passes the result of calling the template with the received\n * template tag to our own template tag.\n * @param {Function} nextTag - the received template tag\n * @param {Array} template - the template to process\n * @param {...*} ...substitutions - `substitutions` is an array of all substitutions in the template\n * @return {*} - the final processed value\n */\n value: function interimTag(previousTag, template) {\n for (var _len3 = arguments.length, substitutions = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n substitutions[_key3 - 2] = arguments[_key3];\n }\n\n return this.tag(_templateObject, previousTag.apply(undefined, [template].concat(substitutions)));\n }\n /**\n * Performs bulk processing on the tagged template, transforming each substitution and then\n * concatenating the resulting values into a string.\n * @param {Array<*>} substitutions - an array of all remaining substitutions present in this template\n * @param {String} resultSoFar - this iteration's result string so far\n * @param {String} remainingPart - the template chunk after the current substitution\n * @return {String} - the result of joining this iteration's processed substitution with the result\n */\n\n }, {\n key: 'processSubstitutions',\n value: function processSubstitutions(substitutions, resultSoFar, remainingPart) {\n var substitution = this.transformSubstitution(substitutions.shift(), resultSoFar);\n return ''.concat(resultSoFar, substitution, remainingPart);\n }\n /**\n * Iterate through each transformer, applying the transformer's `onString` method to the template\n * strings before all substitutions are processed.\n * @param {String} str - The input string\n * @return {String} - The final results of processing each transformer\n */\n\n }, {\n key: 'transformString',\n value: function transformString(str) {\n var cb = function cb(res, transform) {\n return transform.onString ? transform.onString(res) : res;\n };\n\n return this.transformers.reduce(cb, str);\n }\n /**\n * When a substitution is encountered, iterates through each transformer and applies the transformer's\n * `onSubstitution` method to the substitution.\n * @param {*} substitution - The current substitution\n * @param {String} resultSoFar - The result up to and excluding this substitution.\n * @return {*} - The final result of applying all substitution transformations.\n */\n\n }, {\n key: 'transformSubstitution',\n value: function transformSubstitution(substitution, resultSoFar) {\n var cb = function cb(res, transform) {\n return transform.onSubstitution ? transform.onSubstitution(res, resultSoFar) : res;\n };\n\n return this.transformers.reduce(cb, substitution);\n }\n /**\n * Iterates through each transformer, applying the transformer's `onEndResult` method to the\n * template literal after all substitutions have finished processing.\n * @param {String} endResult - The processed template, just before it is returned from the tag\n * @return {String} - The final results of processing each transformer\n */\n\n }, {\n key: 'transformEndResult',\n value: function transformEndResult(endResult) {\n var cb = function cb(res, transform) {\n return transform.onEndResult ? transform.onEndResult(res) : res;\n };\n\n return this.transformers.reduce(cb, endResult);\n }\n }]);\n\n return TemplateTag;\n}();\n\nexport default TemplateTag;","var defaults = {\n separator: '',\n conjunction: '',\n serial: false\n};\n/**\n * Converts an array substitution to a string containing a list\n * @param {String} [opts.separator = ''] - the character that separates each item\n * @param {String} [opts.conjunction = ''] - replace the last separator with this\n * @param {Boolean} [opts.serial = false] - include the separator before the conjunction? (Oxford comma use-case)\n *\n * @return {Object} - a TemplateTag transformer\n */\n\nvar inlineArrayTransformer = function inlineArrayTransformer() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults;\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n // only operate on arrays\n if (Array.isArray(substitution)) {\n var arrayLength = substitution.length;\n var separator = opts.separator;\n var conjunction = opts.conjunction;\n var serial = opts.serial; // join each item in the array into a string where each item is separated by separator\n // be sure to maintain indentation\n\n var indent = resultSoFar.match(/(\\n?[^\\S\\n]+)$/);\n\n if (indent) {\n substitution = substitution.join(separator + indent[1]);\n } else {\n substitution = substitution.join(separator + ' ');\n } // if conjunction is set, replace the last separator with conjunction, but only if there is more than one substitution\n\n\n if (conjunction && arrayLength > 1) {\n var separatorIndex = substitution.lastIndexOf(separator);\n substitution = substitution.slice(0, separatorIndex) + (serial ? separator : '') + ' ' + conjunction + substitution.slice(separatorIndex + 1);\n }\n }\n\n return substitution;\n }\n };\n};\n\nexport default inlineArrayTransformer;","function _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n/**\n * strips indentation from a template literal\n * @param {String} type = 'initial' - whether to remove all indentation or just leading indentation. can be 'all' or 'initial'\n * @return {Object} - a TemplateTag transformer\n */\n\n\nvar stripIndentTransformer = function stripIndentTransformer() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initial';\n return {\n onEndResult: function onEndResult(endResult) {\n if (type === 'initial') {\n // remove the shortest leading indentation from each line\n var match = endResult.match(/^[^\\S\\n]*(?=\\S)/gm);\n var indent = match && Math.min.apply(Math, _toConsumableArray(match.map(function (el) {\n return el.length;\n })));\n\n if (indent) {\n var regexp = new RegExp('^.{' + indent + '}', 'gm');\n return endResult.replace(regexp, '');\n }\n\n return endResult;\n }\n\n if (type === 'all') {\n // remove all indentation from each line\n return endResult.replace(/^[^\\S\\n]+/gm, '');\n }\n\n throw new Error('Unknown type: ' + type);\n }\n };\n};\n\nexport default stripIndentTransformer;","/**\n * TemplateTag transformer that trims whitespace on the end result of a tagged template\n * @param {String} side = '' - The side of the string to trim. Can be 'start' or 'end' (alternatively 'left' or 'right')\n * @return {Object} - a TemplateTag transformer\n */\nvar trimResultTransformer = function trimResultTransformer() {\n var side = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return {\n onEndResult: function onEndResult(endResult) {\n if (side === '') {\n return endResult.trim();\n }\n\n side = side.toLowerCase();\n\n if (side === 'start' || side === 'left') {\n return endResult.replace(/^\\s*/, '');\n }\n\n if (side === 'end' || side === 'right') {\n return endResult.replace(/\\s*$/, '');\n }\n\n throw new Error('Side not supported: ' + side);\n }\n };\n};\n\nexport default trimResultTransformer;","var splitStringTransformer = function splitStringTransformer(splitBy) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (splitBy != null && typeof splitBy === 'string') {\n if (typeof substitution === 'string' && substitution.includes(splitBy)) {\n substitution = substitution.split(splitBy);\n }\n } else {\n throw new Error('You need to specify a string character to split by.');\n }\n\n return substitution;\n }\n };\n};\n\nexport default splitStringTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaLists = new TemplateTag(inlineArrayTransformer({\n separator: ','\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaLists;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaListsAnd = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'and'\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaListsAnd;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaListsOr = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'or'\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaListsOr;","var isValidValue = function isValidValue(x) {\n return x != null && !Number.isNaN(x) && typeof x !== 'boolean';\n};\n\nvar removeNonPrintingValuesTransformer = function removeNonPrintingValuesTransformer() {\n return {\n onSubstitution: function onSubstitution(substitution) {\n if (Array.isArray(substitution)) {\n return substitution.filter(isValidValue);\n }\n\n if (isValidValue(substitution)) {\n return substitution;\n }\n\n return '';\n }\n };\n};\n\nexport default removeNonPrintingValuesTransformer;","var replaceSubstitutionTransformer = function replaceSubstitutionTransformer(replaceWhat, replaceWith) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceSubstitutionTransformer requires at least 2 arguments.');\n } // Do not touch if null or undefined\n\n\n if (substitution == null) {\n return substitution;\n } else {\n return substitution.toString().replace(replaceWhat, replaceWith);\n }\n }\n };\n};\n\nexport default replaceSubstitutionTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport splitStringTransformer from '../splitStringTransformer';\nimport removeNonPrintingValuesTransformer from '../removeNonPrintingValuesTransformer';\nvar html = new TemplateTag(splitStringTransformer('\\n'), removeNonPrintingValuesTransformer, inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);\nexport default html;","/**\n * Replaces tabs, newlines and spaces with the chosen value when they occur in sequences\n * @param {(String|RegExp)} replaceWhat - the value or pattern that should be replaced\n * @param {*} replaceWith - the replacement value\n * @return {Object} - a TemplateTag transformer\n */\nvar replaceResultTransformer = function replaceResultTransformer(replaceWhat, replaceWith) {\n return {\n onEndResult: function onEndResult(endResult) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceResultTransformer requires at least 2 arguments.');\n }\n\n return endResult.replace(replaceWhat, replaceWith);\n }\n };\n};\n\nexport default replaceResultTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport splitStringTransformer from '../splitStringTransformer';\nimport replaceSubstitutionTransformer from '../replaceSubstitutionTransformer';\nvar safeHtml = new TemplateTag(splitStringTransformer('\\n'), inlineArrayTransformer, stripIndentTransformer, trimResultTransformer, replaceSubstitutionTransformer(/&/g, '&'), replaceSubstitutionTransformer(//g, '>'), replaceSubstitutionTransformer(/\"/g, '"'), replaceSubstitutionTransformer(/'/g, '''), replaceSubstitutionTransformer(/`/g, '`'));\nexport default safeHtml;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar stripIndent = new TemplateTag(stripIndentTransformer, trimResultTransformer);\nexport default stripIndent;","import TemplateTag from '../TemplateTag';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLine = new TemplateTag(replaceResultTransformer(/(?:\\n(?:\\s*))+/g, ' '), trimResultTransformer);\nexport default oneLine;","import TemplateTag from '../TemplateTag';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineTrim = new TemplateTag(replaceResultTransformer(/(?:\\n\\s*)/g, ''), trimResultTransformer);\nexport default oneLineTrim;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaLists = new TemplateTag(inlineArrayTransformer({\n separator: ','\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaLists;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaListsOr = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'or'\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaListsOr;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaListsAnd = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'and'\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaListsAnd;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar inlineLists = new TemplateTag(inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);\nexport default inlineLists;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineInlineLists = new TemplateTag(inlineArrayTransformer, replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineInlineLists;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar stripIndents = new TemplateTag(stripIndentTransformer('all'), trimResultTransformer);\nexport default stripIndents;","(function () {\n var base64map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n crypt = {\n // Bit-wise rotation left\n rotl: function rotl(n, b) {\n return n << b | n >>> 32 - b;\n },\n // Bit-wise rotation right\n rotr: function rotr(n, b) {\n return n << 32 - b | n >>> b;\n },\n // Swap big-endian to little-endian and vice versa\n endian: function endian(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n } // Else, assume array and swap all items\n\n\n for (var i = 0; i < n.length; i++) {\n n[i] = crypt.endian(n[i]);\n }\n\n return n;\n },\n // Generate an array of any length of random bytes\n randomBytes: function randomBytes(n) {\n for (var bytes = []; n > 0; n--) {\n bytes.push(Math.floor(Math.random() * 256));\n }\n\n return bytes;\n },\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function bytesToWords(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8) {\n words[b >>> 5] |= bytes[i] << 24 - b % 32;\n }\n\n return words;\n },\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function wordsToBytes(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8) {\n bytes.push(words[b >>> 5] >>> 24 - b % 32 & 0xFF);\n }\n\n return bytes;\n },\n // Convert a byte array to a hex string\n bytesToHex: function bytesToHex(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n\n return hex.join('');\n },\n // Convert a hex string to a byte array\n hexToBytes: function hexToBytes(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2) {\n bytes.push(parseInt(hex.substr(c, 2), 16));\n }\n\n return bytes;\n },\n // Convert a byte array to a base-64 string\n bytesToBase64: function bytesToBase64(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = bytes[i] << 16 | bytes[i + 1] << 8 | bytes[i + 2];\n\n for (var j = 0; j < 4; j++) {\n if (i * 8 + j * 6 <= bytes.length * 8) base64.push(base64map.charAt(triplet >>> 6 * (3 - j) & 0x3F));else base64.push('=');\n }\n }\n\n return base64.join('');\n },\n // Convert a base-64 string to a byte array\n base64ToBytes: function base64ToBytes(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length; imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push((base64map.indexOf(base64.charAt(i - 1)) & Math.pow(2, -2 * imod4 + 8) - 1) << imod4 * 2 | base64map.indexOf(base64.charAt(i)) >>> 6 - imod4 * 2);\n }\n\n return bytes;\n }\n };\n module.exports = crypt;\n})();","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\n\nexports.destroy = function () {\n var warned = false;\n return function () {\n if (!warned) {\n warned = true;\n console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n }\n };\n}();\n/**\n * Colors.\n */\n\n\nexports.colors = ['#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'];\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// eslint-disable-next-line complexity\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n return true;\n } // Internet Explorer and Edge do not support colors.\n\n\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n } // Is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\n\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\n\nfunction formatArgs(args) {\n args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff);\n\n if (!this.useColors) {\n return;\n }\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit'); // The final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function (match) {\n if (match === '%%') {\n return;\n }\n\n index++;\n\n if (match === '%c') {\n // We only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\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 */\n\n\nexports.log = console.debug || console.log || function () {};\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\n\nfunction save(namespaces) {\n try {\n if (namespaces) {\n exports.storage.setItem('debug', namespaces);\n } else {\n exports.storage.removeItem('debug');\n }\n } catch (error) {// Swallow\n // XXX (@Qix-) should we be logging these?\n }\n}\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\n\nfunction load() {\n var r;\n\n try {\n r = exports.storage.getItem('debug');\n } catch (error) {// Swallow\n // XXX (@Qix-) should we be logging these?\n } // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\n\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\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\n\nfunction localstorage() {\n try {\n // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n // The Browser also has localStorage in the global context.\n return localStorage;\n } catch (error) {// Swallow\n // XXX (@Qix-) should we be logging these?\n }\n}\n\nmodule.exports = require('./common')(exports);\nvar formatters = module.exports.formatters;\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n try {\n return JSON.stringify(v);\n } catch (error) {\n return '[UnexpectedJSONParseError]: ' + error.message;\n }\n};","var _toConsumableArray = require(\"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\nfunction setup(env) {\n createDebug.debug = createDebug;\n createDebug.default = createDebug;\n createDebug.coerce = coerce;\n createDebug.disable = disable;\n createDebug.enable = enable;\n createDebug.enabled = enabled;\n createDebug.humanize = require('ms');\n createDebug.destroy = destroy;\n Object.keys(env).forEach(function (key) {\n createDebug[key] = env[key];\n });\n /**\n * The currently active debug mode names, and names to skip.\n */\n\n createDebug.names = [];\n createDebug.skips = [];\n /**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\n createDebug.formatters = {};\n /**\n * Selects a color for a debug namespace\n * @param {String} namespace The namespace string for the debug instance to be colored\n * @return {Number|String} An ANSI color code for the given namespace\n * @api private\n */\n\n function selectColor(namespace) {\n var hash = 0;\n\n for (var i = 0; i < namespace.length; i++) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n }\n\n createDebug.selectColor = selectColor;\n /**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\n function createDebug(namespace) {\n var prevTime;\n var enableOverride = null;\n var namespacesCache;\n var enabledCache;\n\n function debug() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // Disabled?\n if (!debug.enabled) {\n return;\n }\n\n var self = debug; // Set `diff` timestamp\n\n var curr = Number(new Date());\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n args[0] = createDebug.coerce(args[0]);\n\n if (typeof args[0] !== 'string') {\n // Anything else let's inspect with %O\n args.unshift('%O');\n } // Apply any `formatters` transformations\n\n\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) {\n // If we encounter an escaped % then don't increase the array index\n if (match === '%%') {\n return '%';\n }\n\n index++;\n var formatter = createDebug.formatters[format];\n\n if (typeof formatter === 'function') {\n var val = args[index];\n match = formatter.call(self, val); // Now we need to remove `args[index]` since it's inlined in the `format`\n\n args.splice(index, 1);\n index--;\n }\n\n return match;\n }); // Apply env-specific formatting (colors, etc.)\n\n createDebug.formatArgs.call(self, args);\n var logFn = self.log || createDebug.log;\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.useColors = createDebug.useColors();\n debug.color = createDebug.selectColor(namespace);\n debug.extend = extend;\n debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n Object.defineProperty(debug, 'enabled', {\n enumerable: true,\n configurable: false,\n get: function get() {\n if (enableOverride !== null) {\n return enableOverride;\n }\n\n if (namespacesCache !== createDebug.namespaces) {\n namespacesCache = createDebug.namespaces;\n enabledCache = createDebug.enabled(namespace);\n }\n\n return enabledCache;\n },\n set: function set(v) {\n enableOverride = v;\n }\n }); // Env-specific initialization logic for debug instances\n\n if (typeof createDebug.init === 'function') {\n createDebug.init(debug);\n }\n\n return debug;\n }\n\n function extend(namespace, delimiter) {\n var newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n newDebug.log = this.log;\n return newDebug;\n }\n /**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\n\n function enable(namespaces) {\n createDebug.save(namespaces);\n createDebug.namespaces = namespaces;\n createDebug.names = [];\n createDebug.skips = [];\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) {\n // ignore empty strings\n continue;\n }\n\n namespaces = split[i].replace(/\\*/g, '.*?');\n\n if (namespaces[0] === '-') {\n createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n createDebug.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n }\n /**\n * Disable debug output.\n *\n * @return {String} namespaces\n * @api public\n */\n\n\n function disable() {\n var namespaces = [].concat(_toConsumableArray(createDebug.names.map(toNamespace)), _toConsumableArray(createDebug.skips.map(toNamespace).map(function (namespace) {\n return '-' + namespace;\n }))).join(',');\n createDebug.enable('');\n return namespaces;\n }\n /**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\n\n function enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n\n var i;\n var len;\n\n for (i = 0, len = createDebug.skips.length; i < len; i++) {\n if (createDebug.skips[i].test(name)) {\n return false;\n }\n }\n\n for (i = 0, len = createDebug.names.length; i < len; i++) {\n if (createDebug.names[i].test(name)) {\n return true;\n }\n }\n\n return false;\n }\n /**\n * Convert regexp to namespace\n *\n * @param {RegExp} regxep\n * @return {String} namespace\n * @api private\n */\n\n\n function toNamespace(regexp) {\n return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\\.\\*\\?$/, '*');\n }\n /**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\n\n function coerce(val) {\n if (val instanceof Error) {\n return val.stack || val.message;\n }\n\n return val;\n }\n /**\n * XXX DO NOT USE. This is a temporary stub function.\n * XXX It WILL be removed in the next major release.\n */\n\n\n function destroy() {\n console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n }\n\n createDebug.enable(createDebug.load());\n return createDebug;\n}\n\nmodule.exports = setup;","\"use strict\";\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\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\nexports.__esModule = true;\n\nfunction stringifyAttribute(name, value) {\n if (!value) {\n return '';\n }\n\n var stringified = '; ' + name;\n\n if (value === true) {\n return stringified; // boolean attributes shouldn't have a value\n }\n\n return stringified + '=' + value;\n}\n\nfunction stringifyAttributes(attributes) {\n if (typeof attributes.expires === 'number') {\n var expires = new Date();\n expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\n attributes.expires = expires;\n }\n\n return stringifyAttribute('Expires', attributes.expires ? attributes.expires.toUTCString() : '') + stringifyAttribute('Domain', attributes.domain) + stringifyAttribute('Path', attributes.path) + stringifyAttribute('Secure', attributes.secure) + stringifyAttribute('SameSite', attributes.sameSite);\n}\n\nfunction encode(name, value, attributes) {\n return encodeURIComponent(name).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent) // allowed special characters\n .replace(/\\(/g, '%28').replace(/\\)/g, '%29') // replace opening and closing parens\n + '=' + encodeURIComponent(value) // allowed special characters\n .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent) + stringifyAttributes(attributes);\n}\n\nexports.encode = encode;\n\nfunction parse(cookieString) {\n var result = {};\n var cookies = cookieString ? cookieString.split('; ') : [];\n var rdecode = /(%[\\dA-F]{2})+/gi;\n\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var cookie = parts.slice(1).join('=');\n\n if (cookie.charAt(0) === '\"') {\n cookie = cookie.slice(1, -1);\n }\n\n try {\n var name_1 = parts[0].replace(rdecode, decodeURIComponent);\n result[name_1] = cookie.replace(rdecode, decodeURIComponent);\n } catch (e) {// ignore cookies with invalid name/value encoding\n }\n }\n\n return result;\n}\n\nexports.parse = parse;\n\nfunction getAll() {\n return parse(document.cookie);\n}\n\nexports.getAll = getAll;\n\nfunction get(name) {\n return getAll()[name];\n}\n\nexports.get = get;\n\nfunction set(name, value, attributes) {\n document.cookie = encode(name, value, __assign({\n path: '/'\n }, attributes));\n}\n\nexports.set = set;\n\nfunction remove(name, attributes) {\n set(name, '', __assign(__assign({}, attributes), {\n expires: -1\n }));\n}\n\nexports.remove = remove;","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n'use strict';\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n // \"\n escape = '"';\n break;\n\n case 38:\n // &\n escape = '&';\n break;\n\n case 39:\n // '\n escape = ''';\n break;\n\n case 60:\n // <\n escape = '<';\n break;\n\n case 62:\n // >\n escape = '>';\n break;\n\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * This module provides a simuation of Haskell do notation.\n *\n * @since 0.1.0\n */\n\nvar Apply_1 = require(\"fp-ts/lib/Apply\");\n\nvar DoClass =\n/** @class */\nfunction () {\n function DoClass(M, result) {\n this.M = M;\n this.result = result;\n }\n\n DoClass.prototype.do = function (action) {\n var _this = this;\n\n return new DoClass(this.M, this.M.chain(this.result, function (s) {\n return _this.M.map(action, function () {\n return s;\n });\n }));\n };\n\n DoClass.prototype.doL = function (f) {\n var _this = this;\n\n return new DoClass(this.M, this.M.chain(this.result, function (s) {\n return _this.M.map(f(s), function () {\n return s;\n });\n }));\n };\n\n DoClass.prototype.bind = function (name, action) {\n var _this = this;\n\n return new DoClass(this.M, this.M.chain(this.result, function (s) {\n return _this.M.map(action, function (b) {\n var _a;\n\n return Object.assign({}, s, (_a = {}, _a[name] = b, _a));\n });\n }));\n };\n\n DoClass.prototype.bindL = function (name, f) {\n var _this = this;\n\n return new DoClass(this.M, this.M.chain(this.result, function (s) {\n return _this.M.map(f(s), function (b) {\n var _a;\n\n return Object.assign({}, s, (_a = {}, _a[name] = b, _a));\n });\n }));\n };\n\n DoClass.prototype.let = function (name, a) {\n return new DoClass(this.M, this.M.map(this.result, function (s) {\n var _a;\n\n return Object.assign({}, s, (_a = {}, _a[name] = a, _a));\n }));\n };\n\n DoClass.prototype.letL = function (name, f) {\n return new DoClass(this.M, this.M.map(this.result, function (s) {\n var _a;\n\n return Object.assign({}, s, (_a = {}, _a[name] = f(s), _a));\n }));\n };\n\n DoClass.prototype.sequenceS = function (r) {\n var _this = this;\n\n return new DoClass(this.M, this.M.chain(this.result, function (s) {\n return _this.M.map(Apply_1.sequenceS(_this.M)(r), function (r) {\n return Object.assign({}, s, r);\n });\n }));\n };\n\n DoClass.prototype.sequenceSL = function (f) {\n var _this = this;\n\n return new DoClass(this.M, this.M.chain(this.result, function (s) {\n return _this.M.map(Apply_1.sequenceS(_this.M)(f(s)), function (r) {\n return Object.assign({}, s, r);\n });\n }));\n };\n\n DoClass.prototype.return = function (f) {\n return this.M.map(this.result, f);\n };\n\n DoClass.prototype.done = function () {\n return this.result;\n };\n\n return DoClass;\n}();\n\nvar init = {};\n\nfunction Do(M) {\n return new DoClass(M, M.of(init));\n}\n\nexports.Do = Do;","/**\n * The `Applicative` type class extends the `Apply` type class with a `of` function, which can be used to create values\n * of type `f a` from values of type `a`.\n *\n * Where `Apply` provides the ability to lift functions of two or more arguments to functions whose arguments are\n * wrapped using `f`, and `Functor` provides the ability to lift functions of one argument, `pure` can be seen as the\n * function which lifts functions of _zero_ arguments. That is, `Applicative` functors support a lifting operation for\n * any number of function arguments.\n *\n * Instances must satisfy the following laws in addition to the `Apply` laws:\n *\n * 1. Identity: `A.ap(A.of(a => a), fa) <-> fa`\n * 2. Homomorphism: `A.ap(A.of(ab), A.of(a)) <-> A.of(ab(a))`\n * 3. Interchange: `A.ap(fab, A.of(a)) <-> A.ap(A.of(ab => ab(a)), fab)`\n *\n * Note. `Functor`'s `map` can be derived: `A.map(x, f) = A.ap(A.of(f), x)`\n *\n * @since 2.0.0\n */\nimport { ap, getApplySemigroup } from './Apply';\nimport { pipe } from './function';\nimport { getFunctorComposition } from './Functor';\nexport function getApplicativeMonoid(F) {\n var f = getApplySemigroup(F);\n return function (M) {\n return {\n concat: f(M).concat,\n empty: F.of(M.empty)\n };\n };\n}\n/** @deprecated */\n\nexport function getApplicativeComposition(F, G) {\n var map = getFunctorComposition(F, G).map;\n\n var _ap = ap(F, G);\n\n return {\n map: map,\n of: function of(a) {\n return F.of(G.of(a));\n },\n ap: function ap(fgab, fga) {\n return pipe(fgab, _ap(fga));\n }\n };\n}","import { tuple } from './function';\nexport function ap(F, G) {\n return function (fa) {\n return function (fab) {\n return F.ap(F.map(fab, function (gab) {\n return function (ga) {\n return G.ap(gab, ga);\n };\n }), fa);\n };\n };\n}\nexport function apFirst(A) {\n return function (second) {\n return function (first) {\n return A.ap(A.map(first, function (a) {\n return function () {\n return a;\n };\n }), second);\n };\n };\n}\nexport function apSecond(A) {\n return function (second) {\n return function (first) {\n return A.ap(A.map(first, function () {\n return function (b) {\n return b;\n };\n }), second);\n };\n };\n}\nexport function apS(F) {\n return function (name, fb) {\n return function (fa) {\n return F.ap(F.map(fa, function (a) {\n return function (b) {\n var _a;\n\n return Object.assign({}, a, (_a = {}, _a[name] = b, _a));\n };\n }), fb);\n };\n };\n}\nexport function getApplySemigroup(F) {\n return function (S) {\n return {\n concat: function concat(first, second) {\n return F.ap(F.map(first, function (x) {\n return function (y) {\n return S.concat(x, y);\n };\n }), second);\n }\n };\n };\n}\n\nfunction curried(f, n, acc) {\n return function (x) {\n var combined = Array(acc.length + 1);\n\n for (var i = 0; i < acc.length; i++) {\n combined[i] = acc[i];\n }\n\n combined[acc.length] = x;\n return n === 0 ? f.apply(null, combined) : curried(f, n - 1, combined);\n };\n}\n\nvar tupleConstructors = {\n 1: function _(a) {\n return [a];\n },\n 2: function _(a) {\n return function (b) {\n return [a, b];\n };\n },\n 3: function _(a) {\n return function (b) {\n return function (c) {\n return [a, b, c];\n };\n };\n },\n 4: function _(a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return [a, b, c, d];\n };\n };\n };\n },\n 5: function _(a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return [a, b, c, d, e];\n };\n };\n };\n };\n }\n};\n\nfunction getTupleConstructor(len) {\n if (!tupleConstructors.hasOwnProperty(len)) {\n tupleConstructors[len] = curried(tuple, len - 1, []);\n }\n\n return tupleConstructors[len];\n}\n\nexport function sequenceT(F) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var len = args.length;\n var f = getTupleConstructor(len);\n var fas = F.map(args[0], f);\n\n for (var i = 1; i < len; i++) {\n fas = F.ap(fas, args[i]);\n }\n\n return fas;\n };\n}\n\nfunction getRecordConstructor(keys) {\n var len = keys.length;\n\n switch (len) {\n case 1:\n return function (a) {\n var _a;\n\n return _a = {}, _a[keys[0]] = a, _a;\n };\n\n case 2:\n return function (a) {\n return function (b) {\n var _a;\n\n return _a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a;\n };\n };\n\n case 3:\n return function (a) {\n return function (b) {\n return function (c) {\n var _a;\n\n return _a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a[keys[2]] = c, _a;\n };\n };\n };\n\n case 4:\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n var _a;\n\n return _a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a[keys[2]] = c, _a[keys[3]] = d, _a;\n };\n };\n };\n };\n\n case 5:\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n var _a;\n\n return _a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a[keys[2]] = c, _a[keys[3]] = d, _a[keys[4]] = e, _a;\n };\n };\n };\n };\n };\n\n default:\n return curried(function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var r = {};\n\n for (var i = 0; i < len; i++) {\n r[keys[i]] = args[i];\n }\n\n return r;\n }, len - 1, []);\n }\n}\n\nexport function sequenceS(F) {\n return function (r) {\n var keys = Object.keys(r);\n var len = keys.length;\n var f = getRecordConstructor(keys);\n var fr = F.map(r[keys[0]], f);\n\n for (var i = 1; i < len; i++) {\n fr = F.ap(fr, r[keys[i]]);\n }\n\n return fr;\n };\n}","export function chainFirst(M) {\n return function (f) {\n return function (first) {\n return M.chain(first, function (a) {\n return M.map(f(a), function () {\n return a;\n });\n });\n };\n };\n}\nexport function bind(M) {\n return function (name, f) {\n return function (ma) {\n return M.chain(ma, function (a) {\n return M.map(f(a), function (b) {\n var _a;\n\n return Object.assign({}, a, (_a = {}, _a[name] = b, _a));\n });\n });\n };\n };\n}","import { getApplicativeMonoid } from './Applicative';\nimport { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply';\nimport { bind as bind_, chainFirst as chainFirst_ } from './Chain';\nimport { tailRec } from './ChainRec';\nimport { chainOptionK as chainOptionK_, filterOrElse as filterOrElse_, fromOption as fromOption_, fromOptionK as fromOptionK_, fromPredicate as fromPredicate_ } from './FromEither';\nimport { flow, identity, pipe } from './function';\nimport { bindTo as bindTo_, flap as flap_ } from './Functor';\nimport * as _ from './internal';\nimport { separated } from './Separated';\nimport { wiltDefault, witherDefault } from './Witherable'; // -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n\n/**\n * Constructs a new `Either` holding a `Left` value. This usually represents a failure, due to the right-bias of this\n * structure.\n *\n * @category constructors\n * @since 2.0.0\n */\n\nexport var left = _.left;\n/**\n * Constructs a new `Either` holding a `Right` value. This usually represents a successful value due to the right bias\n * of this structure.\n *\n * @category constructors\n * @since 2.0.0\n */\n\nexport var right = _.right; // -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\n\nvar _map = function _map(fa, f) {\n return pipe(fa, map(f));\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 _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 return function (fa, f) {\n var foldMapM = foldMap(M);\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\nvar _traverse = function _traverse(F) {\n var traverseF = traverse(F);\n return function (ta, f) {\n return pipe(ta, traverseF(f));\n };\n};\n\nvar _bimap = function _bimap(fa, f, g) {\n return pipe(fa, bimap(f, g));\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/* istanbul ignore next */\n\n\nvar _extend = function _extend(wa, f) {\n return pipe(wa, extend(f));\n};\n\nvar _chainRec = function _chainRec(a, f) {\n return tailRec(f(a), function (e) {\n return isLeft(e) ? right(left(e.left)) : isLeft(e.right) ? left(f(e.right.left)) : right(right(e.right.right));\n });\n}; // -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @category instances\n * @since 2.0.0\n */\n\n\nexport var URI = 'Either';\n/**\n * @category instances\n * @since 2.0.0\n */\n\nexport var getShow = function getShow(SE, SA) {\n return {\n show: function show(ma) {\n return isLeft(ma) ? \"left(\" + SE.show(ma.left) + \")\" : \"right(\" + SA.show(ma.right) + \")\";\n }\n };\n};\n/**\n * @category instances\n * @since 2.0.0\n */\n\nexport var getEq = function getEq(EL, EA) {\n return {\n equals: function equals(x, y) {\n return x === y || (isLeft(x) ? isLeft(y) && EL.equals(x.left, y.left) : isRight(y) && EA.equals(x.right, y.right));\n }\n };\n};\n/**\n * Semigroup returning the left-most non-`Left` value. If both operands are `Right`s then the inner values are\n * concatenated using the provided `Semigroup`\n *\n * @example\n * import { getSemigroup, left, right } from 'fp-ts/Either'\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * const S = getSemigroup(SemigroupSum)\n * assert.deepStrictEqual(S.concat(left('a'), left('b')), left('a'))\n * assert.deepStrictEqual(S.concat(left('a'), right(2)), right(2))\n * assert.deepStrictEqual(S.concat(right(1), left('b')), right(1))\n * assert.deepStrictEqual(S.concat(right(1), right(2)), right(3))\n *\n * @category instances\n * @since 2.0.0\n */\n\nexport var getSemigroup = function getSemigroup(S) {\n return {\n concat: function concat(x, y) {\n return isLeft(y) ? x : isLeft(x) ? y : right(S.concat(x.right, y.right));\n }\n };\n};\n/**\n * Builds a `Compactable` instance for `Either` given `Monoid` for the left side.\n *\n * @category instances\n * @since 2.10.0\n */\n\nexport var getCompactable = function getCompactable(M) {\n var empty = left(M.empty);\n return {\n URI: URI,\n _E: undefined,\n compact: function compact(ma) {\n return isLeft(ma) ? ma : ma.right._tag === 'None' ? empty : right(ma.right.value);\n },\n separate: function separate(ma) {\n return isLeft(ma) ? separated(ma, ma) : isLeft(ma.right) ? separated(right(ma.right.left), empty) : separated(empty, right(ma.right.right));\n }\n };\n};\n/**\n * Builds a `Filterable` instance for `Either` given `Monoid` for the left side\n *\n * @category instances\n * @since 2.10.0\n */\n\nexport var getFilterable = function getFilterable(M) {\n var empty = left(M.empty);\n\n var _a = getCompactable(M),\n compact = _a.compact,\n separate = _a.separate;\n\n var filter = function filter(ma, predicate) {\n return isLeft(ma) ? ma : predicate(ma.right) ? ma : empty;\n };\n\n var partition = function partition(ma, p) {\n return isLeft(ma) ? separated(ma, ma) : p(ma.right) ? separated(empty, right(ma.right)) : separated(right(ma.right), empty);\n };\n\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n compact: compact,\n separate: separate,\n filter: filter,\n filterMap: function filterMap(ma, f) {\n if (isLeft(ma)) {\n return ma;\n }\n\n var ob = f(ma.right);\n return ob._tag === 'None' ? empty : right(ob.value);\n },\n partition: partition,\n partitionMap: function partitionMap(ma, f) {\n if (isLeft(ma)) {\n return separated(ma, ma);\n }\n\n var e = f(ma.right);\n return isLeft(e) ? separated(right(e.left), empty) : separated(empty, right(e.right));\n }\n };\n};\n/**\n * Builds `Witherable` instance for `Either` given `Monoid` for the left side\n *\n * @category instances\n * @since 2.0.0\n */\n\nexport var getWitherable = function getWitherable(M) {\n var F_ = getFilterable(M);\n var C = getCompactable(M);\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n compact: F_.compact,\n separate: F_.separate,\n filter: F_.filter,\n filterMap: F_.filterMap,\n partition: F_.partition,\n partitionMap: F_.partitionMap,\n traverse: _traverse,\n sequence: sequence,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n wither: witherDefault(Traversable, C),\n wilt: wiltDefault(Traversable, C)\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var getApplicativeValidation = function getApplicativeValidation(SE) {\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n ap: function ap(fab, fa) {\n return isLeft(fab) ? isLeft(fa) ? left(SE.concat(fab.left, fa.left)) : fab : isLeft(fa) ? fa : right(fab.right(fa.right));\n },\n of: of\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var getAltValidation = function getAltValidation(SE) {\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n alt: function alt(me, that) {\n if (isRight(me)) {\n return me;\n }\n\n var ea = that();\n return isLeft(ea) ? left(SE.concat(me.left, ea.left)) : ea;\n }\n };\n};\n/**\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var map = function map(f) {\n return function (fa) {\n return isLeft(fa) ? fa : right(f(fa.right));\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 * @category instance operations\n * @since 2.7.0\n */\n\nexport var of = right;\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * Less strict version of [`ap`](#ap).\n *\n * @category instance operations\n * @since 2.8.0\n */\n\nexport var apW = function apW(fa) {\n return function (fab) {\n return isLeft(fab) ? fab : isLeft(fa) ? fa : right(fab.right(fa.right));\n };\n};\n/**\n * Apply a function to an argument under a type constructor.\n *\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var ap = apW;\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 * @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 * Less strict version of [`chain`](#chain).\n *\n * @category instance operations\n * @since 2.6.0\n */\n\nexport var chainW = function chainW(f) {\n return function (ma) {\n return isLeft(ma) ? ma : f(ma.right);\n };\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var chain = chainW;\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 * Left-associative fold of a structure.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n *\n * const startWith = 'prefix'\n * const concat = (a: string, b: string) => `${a}:${b}`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.reduce(startWith, concat)),\n * 'prefix:a'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.reduce(startWith, concat)),\n * 'prefix'\n * )\n *\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var reduce = function reduce(b, f) {\n return function (fa) {\n return isLeft(fa) ? b : f(b, fa.right);\n };\n};\n/**\n * Map each element of the structure to a monoid, and combine the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n * import * as S from 'fp-ts/string'\n *\n * const yell = (a: string) => `${a}!`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.foldMap(S.Monoid)(yell)),\n * 'a!'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.foldMap(S.Monoid)(yell)),\n * S.Monoid.empty\n * )\n *\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var foldMap = function foldMap(M) {\n return function (f) {\n return function (fa) {\n return isLeft(fa) ? M.empty : f(fa.right);\n };\n };\n};\n/**\n * Right-associative fold of a structure.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n *\n * const startWith = 'postfix'\n * const concat = (a: string, b: string) => `${a}:${b}`\n *\n * assert.deepStrictEqual(\n * pipe(E.right('a'), E.reduceRight(startWith, concat)),\n * 'a:postfix'\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.left('e'), E.reduceRight(startWith, concat)),\n * 'postfix'\n * )\n *\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var reduceRight = function reduceRight(b, f) {\n return function (fa) {\n return isLeft(fa) ? b : f(fa.right, b);\n };\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 * Map each element of a structure to an action, evaluate these actions from left to right, and collect the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as RA from 'fp-ts/ReadonlyArray'\n * import * as E from 'fp-ts/Either'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(E.right(['a']), E.traverse(O.Applicative)(RA.head)),\n * O.some(E.right('a'))\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.right([]), E.traverse(O.Applicative)(RA.head)),\n * O.none\n * )\n *\n * @category instance operations\n * @since 2.6.3\n */\n\nexport var traverse = function traverse(F) {\n return function (f) {\n return function (ta) {\n return isLeft(ta) ? F.of(left(ta.left)) : F.map(f(ta.right), right);\n };\n };\n};\n/**\n * Evaluate each monadic action in the structure from left to right, and collect the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(E.right(O.some('a')), E.sequence(O.Applicative)),\n * O.some(E.right('a'))\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.right(O.none), E.sequence(O.Applicative)),\n * O.none\n * )\n *\n * @category instance operations\n * @since 2.6.3\n */\n\nexport var sequence = function sequence(F) {\n return function (ma) {\n return isLeft(ma) ? F.of(left(ma.left)) : F.map(ma.right, right);\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Traversable = {\n URI: URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence\n};\n/**\n * Map a pair of functions over the two type arguments of the bifunctor.\n *\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var bimap = function bimap(f, g) {\n return function (fa) {\n return isLeft(fa) ? left(f(fa.left)) : right(g(fa.right));\n };\n};\n/**\n * Map a function over the first type argument of a bifunctor.\n *\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var mapLeft = function mapLeft(f) {\n return function (fa) {\n return isLeft(fa) ? left(f(fa.left)) : fa;\n };\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 * Less strict version of [`alt`](#alt).\n *\n * @category instance operations\n * @since 2.9.0\n */\n\nexport var altW = function altW(that) {\n return function (fa) {\n return isLeft(fa) ? that() : fa;\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 instance operations\n * @since 2.0.0\n */\n\nexport var alt = altW;\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 instance operations\n * @since 2.0.0\n */\n\nexport var extend = function extend(f) {\n return function (wa) {\n return isLeft(wa) ? wa : right(f(wa));\n };\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 ChainRec = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: _chainRec\n};\n/**\n * @category instance operations\n * @since 2.6.3\n */\n\nexport var throwError = left;\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: identity\n};\n/**\n * @example\n * import { fromPredicate, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * 1,\n * fromPredicate(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * -1,\n * fromPredicate(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * left('error')\n * )\n *\n * @category constructors\n * @since 2.0.0\n */\n\nexport var fromPredicate = /*#__PURE__*/fromPredicate_(FromEither); // -------------------------------------------------------------------------------------\n// natural transformations\n// -------------------------------------------------------------------------------------\n\n/**\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(\n * O.some(1),\n * E.fromOption(() => 'error')\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * O.none,\n * E.fromOption(() => 'error')\n * ),\n * E.left('error')\n * )\n *\n * @category natural transformations\n * @since 2.0.0\n */\n\nexport var fromOption = /*#__PURE__*/fromOption_(FromEither); // -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n\n/**\n * Returns `true` if the either is an instance of `Left`, `false` otherwise.\n *\n * @category refinements\n * @since 2.0.0\n */\n\nexport var isLeft = _.isLeft;\n/**\n * Returns `true` if the either is an instance of `Right`, `false` otherwise.\n *\n * @category refinements\n * @since 2.0.0\n */\n\nexport var isRight = _.isRight; // -------------------------------------------------------------------------------------\n// destructors\n// -------------------------------------------------------------------------------------\n\n/**\n * Less strict version of [`match`](#match).\n *\n * @category destructors\n * @since 2.10.0\n */\n\nexport var matchW = function matchW(onLeft, onRight) {\n return function (ma) {\n return isLeft(ma) ? onLeft(ma.left) : onRight(ma.right);\n };\n};\n/**\n * Alias of [`matchW`](#matchw).\n *\n * @category destructors\n * @since 2.10.0\n */\n\nexport var foldW = matchW;\n/**\n * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the first function,\n * if the value is a `Right` the inner value is applied to the second function.\n *\n * @example\n * import { match, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * function onLeft(errors: Array): string {\n * return `Errors: ${errors.join(', ')}`\n * }\n *\n * function onRight(value: number): string {\n * return `Ok: ${value}`\n * }\n *\n * assert.strictEqual(\n * pipe(\n * right(1),\n * match(onLeft, onRight)\n * ),\n * 'Ok: 1'\n * )\n * assert.strictEqual(\n * pipe(\n * left(['error 1', 'error 2']),\n * match(onLeft, onRight)\n * ),\n * 'Errors: error 1, error 2'\n * )\n *\n * @category destructors\n * @since 2.10.0\n */\n\nexport var match = matchW;\n/**\n * Alias of [`match`](#match).\n *\n * @category destructors\n * @since 2.0.0\n */\n\nexport var fold = match;\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * @category destructors\n * @since 2.6.0\n */\n\nexport var getOrElseW = function getOrElseW(onLeft) {\n return function (ma) {\n return isLeft(ma) ? onLeft(ma.left) : ma.right;\n };\n};\n/**\n * Returns the wrapped value if it's a `Right` or a default value if is a `Left`.\n *\n * @example\n * import { getOrElse, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * right(1),\n * getOrElse(() => 0)\n * ),\n * 1\n * )\n * assert.deepStrictEqual(\n * pipe(\n * left('error'),\n * getOrElse(() => 0)\n * ),\n * 0\n * )\n *\n * @category destructors\n * @since 2.0.0\n */\n\nexport var getOrElse = getOrElseW; // -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\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 * 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 * 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 * 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 * The `flatten` function is the conventional monad join operator. It is used to remove one level of monadic structure, projecting its bound argument into the outer level.\n *\n * Derivable from `Chain`.\n *\n * @example\n * import * as E from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(E.flatten(E.right(E.right('a'))), E.right('a'))\n * assert.deepStrictEqual(E.flatten(E.right(E.left('e'))), E.left('e'))\n * assert.deepStrictEqual(E.flatten(E.left('e')), E.left('e'))\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var flatten = flattenW;\n/**\n * Derivable from `Extend`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var duplicate = /*#__PURE__*/extend(identity);\n/**\n * @category combinators\n * @since 2.10.0\n */\n\nexport var fromOptionK = /*#__PURE__*/fromOptionK_(FromEither);\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var chainOptionK = /*#__PURE__*/chainOptionK_(FromEither, Chain);\n/**\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * E.right(1),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.right(-1),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.left('error')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * E.left('a'),\n * E.filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * E.left('a')\n * )\n *\n * @category 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 * Returns a `Right` if is a `Left` (and vice versa).\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var swap = function swap(ma) {\n return isLeft(ma) ? right(ma.left) : left(ma.right);\n};\n/**\n * Less strict version of [`orElse`](#orelse).\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var orElseW = function orElseW(onLeft) {\n return function (ma) {\n return isLeft(ma) ? onLeft(ma.left) : ma;\n };\n};\n/**\n * Useful for recovering from errors.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var orElse = orElseW; // -------------------------------------------------------------------------------------\n// interop\n// -------------------------------------------------------------------------------------\n\n/**\n * Takes a default and a nullable value, if the value is not nully, turn it into a `Right`, if the value is nully use\n * the provided default as a `Left`.\n *\n * @example\n * import { fromNullable, left, right } from 'fp-ts/Either'\n *\n * const parse = fromNullable('nully')\n *\n * assert.deepStrictEqual(parse(1), right(1))\n * assert.deepStrictEqual(parse(null), left('nully'))\n *\n * @category interop\n * @since 2.0.0\n */\n\nexport var fromNullable = function fromNullable(e) {\n return function (a) {\n return a == null ? left(e) : right(a);\n };\n};\n/**\n * Constructs a new `Either` from a function that might throw.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import * as E from 'fp-ts/Either'\n *\n * const unsafeHead = (as: ReadonlyArray): A => {\n * if (as.length > 0) {\n * return as[0]\n * } else {\n * throw new Error('empty array')\n * }\n * }\n *\n * const head = (as: ReadonlyArray): E.Either =>\n * E.tryCatch(() => unsafeHead(as), e => (e instanceof Error ? e : new Error('unknown error')))\n *\n * assert.deepStrictEqual(head([]), E.left(new Error('empty array')))\n * assert.deepStrictEqual(head([1, 2, 3]), E.right(1))\n *\n * @category interop\n * @since 2.0.0\n */\n\nexport var tryCatch = function tryCatch(f, onThrow) {\n try {\n return right(f());\n } catch (e) {\n return left(onThrow(e));\n }\n};\n/**\n * Converts a function that may throw to one returning a `Either`.\n *\n * @category interop\n * @since 2.10.0\n */\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.9.0\n */\n\nexport var fromNullableK = function fromNullableK(e) {\n var from = fromNullable(e);\n return function (f) {\n return flow(f, from);\n };\n};\n/**\n * @category interop\n * @since 2.9.0\n */\n\nexport var chainNullableK = function chainNullableK(e) {\n var from = fromNullableK(e);\n return function (f) {\n return chain(from(f));\n };\n};\n/**\n * @category interop\n * @since 2.10.0\n */\n\nexport var toUnion = /*#__PURE__*/foldW(identity, identity); // -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n\n/**\n * Default value for the `onError` argument of `tryCatch`\n *\n * @since 2.0.0\n */\n\nexport function toError(e) {\n return e instanceof Error ? e : new Error(String(e));\n}\nexport function elem(E) {\n return function (a, ma) {\n if (ma === undefined) {\n var elemE_1 = elem(E);\n return function (ma) {\n return elemE_1(a, ma);\n };\n }\n\n return isLeft(ma) ? false : E.equals(a, ma.right);\n };\n}\n/**\n * Returns `false` if `Left` or returns the result of the application of the given predicate to the `Right` value.\n *\n * @example\n * import { exists, left, right } from 'fp-ts/Either'\n *\n * const gt2 = exists((n: number) => n > 2)\n *\n * assert.strictEqual(gt2(left('a')), false)\n * assert.strictEqual(gt2(right(1)), false)\n * assert.strictEqual(gt2(right(3)), true)\n *\n * @since 2.0.0\n */\n\nexport var exists = function exists(predicate) {\n return function (ma) {\n return isLeft(ma) ? false : predicate(ma.right);\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_(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 function (as) {\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 * 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/**\n * Use [`parse`](./Json.ts.html#parse) instead.\n *\n * @category constructors\n * @since 2.0.0\n * @deprecated\n */\n\nexport function parseJSON(s, onError) {\n return tryCatch(function () {\n return JSON.parse(s);\n }, onError);\n}\n/**\n * Use [`stringify`](./Json.ts.html#stringify) instead.\n *\n * @category constructors\n * @since 2.0.0\n * @deprecated\n */\n\nexport var stringifyJSON = function stringifyJSON(u, onError) {\n return tryCatch(function () {\n var s = JSON.stringify(u);\n\n if (typeof s !== 'string') {\n throw new Error('Converting unsupported structure to JSON');\n }\n\n return s;\n }, onError);\n};\n/**\n * Use small, specific instances instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var either = {\n URI: URI,\n map: _map,\n of: of,\n ap: _ap,\n chain: _chain,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n bimap: _bimap,\n mapLeft: _mapLeft,\n alt: _alt,\n extend: _extend,\n chainRec: _chainRec,\n throwError: throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * Semigroup returning the left-most `Left` value. If both operands are `Right`s then the inner values\n * are concatenated using the provided `Semigroup`\n *\n * @category 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 getValidationSemigroup = function getValidationSemigroup(SE, SA) {\n return getApplySemigroup_(getApplicativeValidation(SE))(SA);\n};\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getValidationMonoid = function getValidationMonoid(SE, MA) {\n return getApplicativeMonoid(getApplicativeValidation(SE))(MA);\n};\n/**\n * Use [`getApplicativeValidation`](#getapplicativevalidation) and [`getAltValidation`](#getaltvalidation) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport function getValidation(SE) {\n var ap = getApplicativeValidation(SE).ap;\n var alt = getAltValidation(SE).alt;\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n of: of,\n chain: _chain,\n bimap: _bimap,\n mapLeft: _mapLeft,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n extend: _extend,\n traverse: _traverse,\n sequence: sequence,\n chainRec: _chainRec,\n throwError: throwError,\n ap: ap,\n alt: alt\n };\n}","/**\n * @since 2.0.0\n */\nexport var tailRec = function tailRec(startWith, f) {\n var ab = f(startWith);\n\n while (ab._tag === 'Left') {\n ab = f(ab.left);\n }\n\n return ab.right;\n};","/**\n * The `FromEither` type class represents those data types which support errors.\n *\n * @since 2.10.0\n */\nimport { flow } from './function';\nimport * as _ from './internal';\nexport function fromOption(F) {\n return function (onNone) {\n return function (ma) {\n return F.fromEither(_.isNone(ma) ? _.left(onNone()) : _.right(ma.value));\n };\n };\n}\nexport function fromPredicate(F) {\n return function (predicate, onFalse) {\n return function (a) {\n return F.fromEither(predicate(a) ? _.right(a) : _.left(onFalse(a)));\n };\n };\n}\nexport function fromOptionK(F) {\n var fromOptionF = fromOption(F);\n return function (onNone) {\n var from = fromOptionF(onNone);\n return function (f) {\n return flow(f, from);\n };\n };\n}\nexport function chainOptionK(F, M) {\n var fromOptionKF = fromOptionK(F);\n return function (onNone) {\n var from = fromOptionKF(onNone);\n return function (f) {\n return function (ma) {\n return M.chain(ma, from(f));\n };\n };\n };\n}\nexport function fromEitherK(F) {\n return function (f) {\n return flow(f, F.fromEither);\n };\n}\nexport function chainEitherK(F, M) {\n var fromEitherKF = fromEitherK(F);\n return function (f) {\n return function (ma) {\n return M.chain(ma, fromEitherKF(f));\n };\n };\n}\nexport function filterOrElse(F, M) {\n return function (predicate, onFalse) {\n return function (ma) {\n return M.chain(ma, function (a) {\n return F.fromEither(predicate(a) ? _.right(a) : _.left(onFalse(a)));\n });\n };\n };\n}","/**\n * Lift a computation from the `IO` monad\n *\n * @since 2.10.0\n */\nimport { chainFirst } from './Chain';\nimport { flow } from './function';\nexport function fromIOK(F) {\n return function (f) {\n return flow(f, F.fromIO);\n };\n}\nexport function chainIOK(F, M) {\n return function (f) {\n var g = flow(f, F.fromIO);\n return function (first) {\n return M.chain(first, g);\n };\n };\n}\nexport function chainFirstIOK(F, M) {\n var chainFirstM = chainFirst(M);\n return function (f) {\n return chainFirstM(flow(f, F.fromIO));\n };\n}","/**\n * A `Functor` is a type constructor which supports a mapping operation `map`.\n *\n * `map` can be used to turn functions `a -> b` into functions `f a -> f b` whose argument and return types use the type\n * constructor `f` to represent some computational context.\n *\n * Instances must satisfy the following laws:\n *\n * 1. Identity: `F.map(fa, a => a) <-> fa`\n * 2. Composition: `F.map(fa, a => bc(ab(a))) <-> F.map(F.map(fa, ab), bc)`\n *\n * @since 2.0.0\n */\nimport { pipe } from './function';\nexport function map(F, G) {\n return function (f) {\n return function (fa) {\n return F.map(fa, function (ga) {\n return G.map(ga, f);\n });\n };\n };\n}\nexport function flap(F) {\n return function (a) {\n return function (fab) {\n return F.map(fab, function (f) {\n return f(a);\n });\n };\n };\n}\nexport function bindTo(F) {\n return function (name) {\n return function (fa) {\n return F.map(fa, function (a) {\n var _a;\n\n return _a = {}, _a[name] = a, _a;\n });\n };\n };\n}\n/** @deprecated */\n\nexport function getFunctorComposition(F, G) {\n var _map = map(F, G);\n\n return {\n map: function map(fga, f) {\n return pipe(fga, _map(f));\n }\n };\n}","export function guard(F, P) {\n return function (b) {\n return b ? P.of(undefined) : F.zero();\n };\n}","import { getApplicativeMonoid } from './Applicative';\nimport { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply';\nimport { bind as bind_, chainFirst as chainFirst_ } from './Chain';\nimport { chainEitherK as chainEitherK_, fromEitherK as fromEitherK_ } from './FromEither';\nimport { constNull, constUndefined, flow, identity, pipe } from './function';\nimport { bindTo as bindTo_, flap as flap_ } from './Functor';\nimport * as _ from './internal';\nimport { not } from './Predicate';\nimport { first, last } from './Semigroup';\nimport { separated } from './Separated';\nimport { wiltDefault, witherDefault } from './Witherable';\nimport { guard as guard_ } from './Zero'; // -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n\n/**\n * `None` doesn't have a constructor, instead you can use it directly as a value. Represents a missing value.\n *\n * @category constructors\n * @since 2.0.0\n */\n\nexport var none = _.none;\n/**\n * Constructs a `Some`. Represents an optional value that exists.\n *\n * @category constructors\n * @since 2.0.0\n */\n\nexport var some = _.some;\nexport function fromPredicate(predicate) {\n return function (a) {\n return predicate(a) ? some(a) : none;\n };\n}\n/**\n * Returns the `Left` value of an `Either` if possible.\n *\n * @example\n * import { getLeft, none, some } from 'fp-ts/Option'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(getLeft(right(1)), none)\n * assert.deepStrictEqual(getLeft(left('a')), some('a'))\n *\n * @category constructors\n * @since 2.0.0\n */\n\nexport var getLeft = function getLeft(ma) {\n return ma._tag === 'Right' ? none : some(ma.left);\n};\n/**\n * Returns the `Right` value of an `Either` if possible.\n *\n * @example\n * import { getRight, none, some } from 'fp-ts/Option'\n * import { right, left } from 'fp-ts/Either'\n *\n * assert.deepStrictEqual(getRight(right(1)), some(1))\n * assert.deepStrictEqual(getRight(left('a')), none)\n *\n * @category constructors\n * @since 2.0.0\n */\n\nexport var getRight = function getRight(ma) {\n return ma._tag === 'Left' ? none : some(ma.right);\n}; // -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\n\nvar _map = function _map(fa, f) {\n return pipe(fa, map(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 _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 _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\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 _extend = function _extend(wa, f) {\n return pipe(wa, extend(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// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @category instances\n * @since 2.0.0\n */\n\n\nexport var URI = 'Option';\n/**\n * @category instances\n * @since 2.0.0\n */\n\nexport var getShow = function getShow(S) {\n return {\n show: function show(ma) {\n return isNone(ma) ? 'none' : \"some(\" + S.show(ma.value) + \")\";\n }\n };\n};\n/**\n * @example\n * import { none, some, getEq } from 'fp-ts/Option'\n * import * as N from 'fp-ts/number'\n *\n * const E = getEq(N.Eq)\n * assert.strictEqual(E.equals(none, none), true)\n * assert.strictEqual(E.equals(none, some(1)), false)\n * assert.strictEqual(E.equals(some(1), none), false)\n * assert.strictEqual(E.equals(some(1), some(2)), false)\n * assert.strictEqual(E.equals(some(1), some(1)), true)\n *\n * @category instances\n * @since 2.0.0\n */\n\nexport var getEq = function getEq(E) {\n return {\n equals: function equals(x, y) {\n return x === y || (isNone(x) ? isNone(y) : isNone(y) ? false : E.equals(x.value, y.value));\n }\n };\n};\n/**\n * The `Ord` instance allows `Option` values to be compared with\n * `compare`, whenever there is an `Ord` instance for\n * the type the `Option` contains.\n *\n * `None` is considered to be less than any `Some` value.\n *\n *\n * @example\n * import { none, some, getOrd } from 'fp-ts/Option'\n * import * as N from 'fp-ts/number'\n *\n * const O = getOrd(N.Ord)\n * assert.strictEqual(O.compare(none, none), 0)\n * assert.strictEqual(O.compare(none, some(1)), -1)\n * assert.strictEqual(O.compare(some(1), none), 1)\n * assert.strictEqual(O.compare(some(1), some(2)), -1)\n * assert.strictEqual(O.compare(some(1), some(1)), 0)\n *\n * @category instances\n * @since 2.0.0\n */\n\nexport var getOrd = function getOrd(O) {\n return {\n equals: getEq(O).equals,\n compare: function compare(x, y) {\n return x === y ? 0 : isSome(x) ? isSome(y) ? O.compare(x.value, y.value) : 1 : -1;\n }\n };\n};\n/**\n * Monoid returning the left-most non-`None` value. If both operands are `Some`s then the inner values are\n * concatenated using the provided `Semigroup`\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(concat(a, b)) |\n *\n * @example\n * import { getMonoid, some, none } from 'fp-ts/Option'\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * const M = getMonoid(SemigroupSum)\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(1)), some(1))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(3))\n *\n * @category instances\n * @since 2.0.0\n */\n\nexport var getMonoid = function getMonoid(S) {\n return {\n concat: function concat(x, y) {\n return isNone(x) ? y : isNone(y) ? x : some(S.concat(x.value, y.value));\n },\n empty: none\n };\n};\n/**\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var map = function map(f) {\n return function (fa) {\n return isNone(fa) ? none : some(f(fa.value));\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 * @category instance operations\n * @since 2.7.0\n */\n\nexport var of = some;\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var ap = function ap(fa) {\n return function (fab) {\n return isNone(fab) ? none : isNone(fa) ? none : some(fab.value(fa.value));\n };\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 * @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 * Composes computations in sequence, using the return value of one computation to determine the next computation.\n *\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var chain = function chain(f) {\n return function (ma) {\n return isNone(ma) ? none : f(ma.value);\n };\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 * @category instance operations\n * @since 2.0.0\n */\n\nexport var reduce = function reduce(b, f) {\n return function (fa) {\n return isNone(fa) ? b : f(b, fa.value);\n };\n};\n/**\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var foldMap = function foldMap(M) {\n return function (f) {\n return function (fa) {\n return isNone(fa) ? M.empty : f(fa.value);\n };\n };\n};\n/**\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var reduceRight = function reduceRight(b, f) {\n return function (fa) {\n return isNone(fa) ? b : f(fa.value, b);\n };\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 * Less strict version of [`alt`](#alt).\n *\n * @category instance operations\n * @since 2.9.0\n */\n\nexport var altW = function altW(that) {\n return function (fa) {\n return isNone(fa) ? that() : fa;\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 * In case of `Option` returns the left-most non-`None` value.\n *\n * @example\n * import * as O from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * O.some('a'),\n * O.alt(() => O.some('b'))\n * ),\n * O.some('a')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * O.none,\n * O.alt(() => O.some('b'))\n * ),\n * O.some('b')\n * )\n *\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var alt = altW;\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 instance operations\n * @since 2.7.0\n */\n\nexport var zero = function zero() {\n return none;\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 instance operations\n * @since 2.0.0\n */\n\nexport var extend = function extend(f) {\n return function (wa) {\n return isNone(wa) ? none : some(f(wa));\n };\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 instance operations\n * @since 2.0.0\n */\n\nexport var compact = /*#__PURE__*/chain(identity);\nvar defaultSeparated = /*#__PURE__*/separated(none, none);\n/**\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var separate = function separate(ma) {\n return isNone(ma) ? defaultSeparated : separated(getLeft(ma.value), getRight(ma.value));\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 instance operations\n * @since 2.0.0\n */\n\nexport var filter = function filter(predicate) {\n return function (fa) {\n return isNone(fa) ? none : predicate(fa.value) ? fa : none;\n };\n};\n/**\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var filterMap = function filterMap(f) {\n return function (fa) {\n return isNone(fa) ? none : f(fa.value);\n };\n};\n/**\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var partition = function partition(predicate) {\n return function (fa) {\n return separated(_filter(fa, not(predicate)), _filter(fa, predicate));\n };\n};\n/**\n * @category instance operations\n * @since 2.0.0\n */\n\nexport var partitionMap = function partitionMap(f) {\n return flow(map(f), 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 instance operations\n * @since 2.6.3\n */\n\nexport var traverse = function traverse(F) {\n return function (f) {\n return function (ta) {\n return isNone(ta) ? F.of(none) : F.map(f(ta.value), some);\n };\n };\n};\n/**\n * @category instance operations\n * @since 2.6.3\n */\n\nexport var sequence = function sequence(F) {\n return function (ta) {\n return isNone(ta) ? F.of(none) : F.map(ta.value, some);\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\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\nvar _wither = /*#__PURE__*/witherDefault(Traversable, Compactable);\n\nvar _wilt = /*#__PURE__*/wiltDefault(Traversable, Compactable);\n/**\n * @category instance operations\n * @since 2.6.5\n */\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 instance operations\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 instances\n * @since 2.7.0\n */\n\nexport var Witherable = {\n URI: URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt\n};\n/**\n * @category instance operations\n * @since 2.7.0\n */\n\nexport var throwError = function throwError() {\n return none;\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 * Transforms an `Either` to an `Option` discarding the error.\n *\n * Alias of [getRight](#getright)\n *\n * @category natural transformations\n * @since 2.0.0\n */\n\nexport var fromEither = getRight;\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var FromEither = {\n URI: URI,\n fromEither: fromEither\n}; // -------------------------------------------------------------------------------------\n// refinements\n// -------------------------------------------------------------------------------------\n\n/**\n * Returns `true` if the option is an instance of `Some`, `false` otherwise.\n *\n * @example\n * import { some, none, isSome } from 'fp-ts/Option'\n *\n * assert.strictEqual(isSome(some(1)), true)\n * assert.strictEqual(isSome(none), false)\n *\n * @category refinements\n * @since 2.0.0\n */\n\nexport var isSome = _.isSome;\n/**\n * Returns `true` if the option is `None`, `false` otherwise.\n *\n * @example\n * import { some, none, isNone } from 'fp-ts/Option'\n *\n * assert.strictEqual(isNone(some(1)), false)\n * assert.strictEqual(isNone(none), true)\n *\n * @category refinements\n * @since 2.0.0\n */\n\nexport var isNone = function isNone(fa) {\n return fa._tag === 'None';\n}; // -------------------------------------------------------------------------------------\n// destructors\n// -------------------------------------------------------------------------------------\n\n/**\n * Less strict version of [`match`](#match).\n *\n * @category destructors\n * @since 2.10.0\n */\n\nexport var matchW = function matchW(onNone, onSome) {\n return function (ma) {\n return isNone(ma) ? onNone() : onSome(ma.value);\n };\n};\n/**\n * Alias of [`matchW`](#matchw).\n *\n * @category destructors\n * @since 2.10.0\n */\n\nexport var foldW = matchW;\n/**\n * Takes a (lazy) default value, a function, and an `Option` value, if the `Option` value is `None` the default value is\n * returned, otherwise the function is applied to the value inside the `Some` and the result is returned.\n *\n * @example\n * import { some, none, match } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * match(() => 'a none', a => `a some containing ${a}`)\n * ),\n * 'a some containing 1'\n * )\n *\n * assert.strictEqual(\n * pipe(\n * none,\n * match(() => 'a none', a => `a some containing ${a}`)\n * ),\n * 'a none'\n * )\n *\n * @category destructors\n * @since 2.10.0\n */\n\nexport var match = matchW;\n/**\n * Alias of [`match`](#match).\n *\n * @category destructors\n * @since 2.0.0\n */\n\nexport var fold = match;\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * @category destructors\n * @since 2.6.0\n */\n\nexport var getOrElseW = function getOrElseW(onNone) {\n return function (ma) {\n return isNone(ma) ? onNone() : ma.value;\n };\n};\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns the given default value\n *\n * @example\n * import { some, none, getOrElse } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * getOrElse(() => 0)\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * getOrElse(() => 0)\n * ),\n * 0\n * )\n *\n * @category destructors\n * @since 2.0.0\n */\n\nexport var getOrElse = getOrElseW; // -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\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 * 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 * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var flatten = compact;\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var chainFirst = /*#__PURE__*/chainFirst_(Chain);\n/**\n * Derivable from `Extend`.\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var duplicate = /*#__PURE__*/extend(identity);\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var fromEitherK = /*#__PURE__*/fromEitherK_(FromEither);\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var chainEitherK = /*#__PURE__*/chainEitherK_(FromEither, Chain); // -------------------------------------------------------------------------------------\n// interop\n// -------------------------------------------------------------------------------------\n\n/**\n * Constructs a new `Option` from a nullable type. If the value is `null` or `undefined`, returns `None`, otherwise\n * returns the value wrapped in a `Some`.\n *\n * @example\n * import { none, some, fromNullable } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(fromNullable(undefined), none)\n * assert.deepStrictEqual(fromNullable(null), none)\n * assert.deepStrictEqual(fromNullable(1), some(1))\n *\n * @category interop\n * @since 2.0.0\n */\n\nexport var fromNullable = function fromNullable(a) {\n return a == null ? none : some(a);\n};\n/**\n * Transforms an exception into an `Option`. If `f` throws, returns `None`, otherwise returns the output wrapped in a\n * `Some`.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import { none, some, tryCatch } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * tryCatch(() => {\n * throw new Error()\n * }),\n * none\n * )\n * assert.deepStrictEqual(tryCatch(() => 1), some(1))\n *\n * @category interop\n * @since 2.0.0\n */\n\nexport var tryCatch = function tryCatch(f) {\n try {\n return some(f());\n } catch (e) {\n return none;\n }\n};\n/**\n * Converts a function that may throw to one returning a `Option`.\n *\n * @category interop\n * @since 2.10.0\n */\n\nexport var tryCatchK = function tryCatchK(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 tryCatch(function () {\n return f.apply(void 0, a);\n });\n };\n};\n/**\n * Returns a *smart constructor* from a function that returns a nullable value.\n *\n * @example\n * import { fromNullableK, none, some } from 'fp-ts/Option'\n *\n * const f = (s: string): number | undefined => {\n * const n = parseFloat(s)\n * return isNaN(n) ? undefined : n\n * }\n *\n * const g = fromNullableK(f)\n *\n * assert.deepStrictEqual(g('1'), some(1))\n * assert.deepStrictEqual(g('a'), none)\n *\n * @category interop\n * @since 2.9.0\n */\n\nexport var fromNullableK = function fromNullableK(f) {\n return flow(f, fromNullable);\n};\n/**\n * This is `chain` + `fromNullable`, useful when working with optional values.\n *\n * @example\n * import { some, none, fromNullable, chainNullableK } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * interface Employee {\n * readonly company?: {\n * readonly address?: {\n * readonly street?: {\n * readonly name?: string\n * }\n * }\n * }\n * }\n *\n * const employee1: Employee = { company: { address: { street: { name: 'high street' } } } }\n *\n * assert.deepStrictEqual(\n * pipe(\n * fromNullable(employee1.company),\n * chainNullableK(company => company.address),\n * chainNullableK(address => address.street),\n * chainNullableK(street => street.name)\n * ),\n * some('high street')\n * )\n *\n * const employee2: Employee = { company: { address: { street: {} } } }\n *\n * assert.deepStrictEqual(\n * pipe(\n * fromNullable(employee2.company),\n * chainNullableK(company => company.address),\n * chainNullableK(address => address.street),\n * chainNullableK(street => street.name)\n * ),\n * none\n * )\n *\n * @category interop\n * @since 2.9.0\n */\n\nexport var chainNullableK = function chainNullableK(f) {\n return function (ma) {\n return isNone(ma) ? none : fromNullable(f(ma.value));\n };\n};\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns `null`.\n *\n * @example\n * import { some, none, toNullable } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * toNullable\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * toNullable\n * ),\n * null\n * )\n *\n * @category interop\n * @since 2.0.0\n */\n\nexport var toNullable = /*#__PURE__*/match(constNull, identity);\n/**\n * Extracts the value out of the structure, if it exists. Otherwise returns `undefined`.\n *\n * @example\n * import { some, none, toUndefined } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * toUndefined\n * ),\n * 1\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * toUndefined\n * ),\n * undefined\n * )\n *\n * @category interop\n * @since 2.0.0\n */\n\nexport var toUndefined = /*#__PURE__*/match(constUndefined, identity);\nexport function elem(E) {\n return function (a, ma) {\n if (ma === undefined) {\n var elemE_1 = elem(E);\n return function (ma) {\n return elemE_1(a, ma);\n };\n }\n\n return isNone(ma) ? false : E.equals(a, ma.value);\n };\n}\n/**\n * Returns `true` if the predicate is satisfied by the wrapped value\n *\n * @example\n * import { some, none, exists } from 'fp-ts/Option'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.strictEqual(\n * pipe(\n * some(1),\n * exists(n => n > 0)\n * ),\n * true\n * )\n * assert.strictEqual(\n * pipe(\n * some(1),\n * exists(n => n > 1)\n * ),\n * false\n * )\n * assert.strictEqual(\n * pipe(\n * none,\n * exists(n => n > 0)\n * ),\n * false\n * )\n *\n * @since 2.0.0\n */\n\nexport var exists = function exists(predicate) {\n return function (ma) {\n return isNone(ma) ? false : predicate(ma.value);\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// 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 var o = f(0, _.head(as));\n\n if (isNone(o)) {\n return none;\n }\n\n var out = [o.value];\n\n for (var i = 1; i < as.length; i++) {\n var o_1 = f(i, as[i]);\n\n if (isNone(o_1)) {\n return none;\n }\n\n out.push(o_1.value);\n }\n\n return some(out);\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 `Refinement` module instead.\n *\n * @since 2.0.0\n * @deprecated\n */\n\nexport function getRefinement(getOption) {\n return function (a) {\n return isSome(getOption(a));\n };\n}\n/**\n * Use [`chainNullableK`](#chainnullablek) instead.\n *\n * @category combinators\n * @since 2.0.0\n * @deprecated\n */\n\nexport var mapNullable = chainNullableK;\n/**\n * Use small, specific instances instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var option = {\n URI: URI,\n map: _map,\n of: of,\n ap: _ap,\n chain: _chain,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence,\n zero: zero,\n alt: _alt,\n extend: _extend,\n compact: compact,\n separate: separate,\n filter: _filter,\n filterMap: _filterMap,\n partition: _partition,\n partitionMap: _partitionMap,\n wither: _wither,\n wilt: _wilt,\n throwError: throwError\n};\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.\n *\n * @category 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\n *\n * ```ts\n * import { first } from 'fp-ts/Semigroup'\n * import { getMonoid } from 'fp-ts/Option'\n *\n * getMonoid(first())\n * ```\n *\n * instead.\n *\n * Monoid returning the left-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(a) |\n *\n * @example\n * import { getFirstMonoid, some, none } from 'fp-ts/Option'\n *\n * const M = getFirstMonoid()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(2)), some(2))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(1))\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getFirstMonoid = function getFirstMonoid() {\n return getMonoid(first());\n};\n/**\n * Use\n *\n * ```ts\n * import { last } from 'fp-ts/Semigroup'\n * import { getMonoid } from 'fp-ts/Option'\n *\n * getMonoid(last())\n * ```\n *\n * instead.\n *\n * Monoid returning the right-most non-`None` value\n *\n * | x | y | concat(x, y) |\n * | ------- | ------- | ------------ |\n * | none | none | none |\n * | some(a) | none | some(a) |\n * | none | some(b) | some(b) |\n * | some(a) | some(b) | some(b) |\n *\n * @example\n * import { getLastMonoid, some, none } from 'fp-ts/Option'\n *\n * const M = getLastMonoid()\n * assert.deepStrictEqual(M.concat(none, none), none)\n * assert.deepStrictEqual(M.concat(some(1), none), some(1))\n * assert.deepStrictEqual(M.concat(none, some(2)), some(2))\n * assert.deepStrictEqual(M.concat(some(1), some(2)), some(2))\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getLastMonoid = function getLastMonoid() {\n return getMonoid(last());\n};","import { constFalse, constTrue, flow, pipe } from './function'; // -------------------------------------------------------------------------------------\n// type class members\n// -------------------------------------------------------------------------------------\n\nvar contramap_ = function contramap_(predicate, f) {\n return pipe(predicate, contramap(f));\n};\n/**\n * @category Contravariant\n * @since 2.11.0\n */\n\n\nexport var contramap = function contramap(f) {\n return function (predicate) {\n return flow(f, predicate);\n };\n}; // -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var URI = 'Predicate';\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var getSemigroupAny = function getSemigroupAny() {\n return {\n concat: function concat(first, second) {\n return pipe(first, or(second));\n }\n };\n};\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var getMonoidAny = function getMonoidAny() {\n return {\n concat: getSemigroupAny().concat,\n empty: constFalse\n };\n};\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var getSemigroupAll = function getSemigroupAll() {\n return {\n concat: function concat(first, second) {\n return pipe(first, and(second));\n }\n };\n};\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var getMonoidAll = function getMonoidAll() {\n return {\n concat: getSemigroupAll().concat,\n empty: constTrue\n };\n};\n/**\n * @category instances\n * @since 2.11.0\n */\n\nexport var Contravariant = {\n URI: URI,\n contramap: contramap_\n}; // -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.11.0\n */\n\nexport var not = function not(predicate) {\n return function (a) {\n return !predicate(a);\n };\n};\n/**\n * @since 2.11.0\n */\n\nexport var or = function or(second) {\n return function (first) {\n return function (a) {\n return first(a) || second(a);\n };\n };\n};\n/**\n * @since 2.11.0\n */\n\nexport var and = function and(second) {\n return function (first) {\n return function (a) {\n return first(a) && second(a);\n };\n };\n};","import { eqStrict } from './Eq';\nimport { constant, constTrue, pipe } from './function'; // -------------------------------------------------------------------------------------\n// defaults\n// -------------------------------------------------------------------------------------\n\n/**\n * @category defaults\n * @since 2.10.0\n */\n\nexport var equalsDefault = function equalsDefault(compare) {\n return function (first, second) {\n return first === second || compare(first, second) === 0;\n };\n}; // -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var fromCompare = function fromCompare(_compare) {\n return {\n equals: equalsDefault(_compare),\n compare: function compare(first, second) {\n return first === second ? 0 : _compare(first, second);\n }\n };\n}; // -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n\n/**\n * Given a tuple of `Ord`s returns an `Ord` for the tuple.\n *\n * @example\n * import { tuple } from 'fp-ts/Ord'\n * import * as B from 'fp-ts/boolean'\n * import * as S from 'fp-ts/string'\n * import * as N from 'fp-ts/number'\n *\n * const O = tuple(S.Ord, N.Ord, B.Ord)\n * assert.strictEqual(O.compare(['a', 1, true], ['b', 2, true]), -1)\n * assert.strictEqual(O.compare(['a', 1, true], ['a', 2, true]), -1)\n * assert.strictEqual(O.compare(['a', 1, true], ['a', 1, false]), 1)\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var tuple = function tuple() {\n var ords = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n ords[_i] = arguments[_i];\n }\n\n return fromCompare(function (first, second) {\n var i = 0;\n\n for (; i < ords.length - 1; i++) {\n var r = ords[i].compare(first[i], second[i]);\n\n if (r !== 0) {\n return r;\n }\n }\n\n return ords[i].compare(first[i], second[i]);\n });\n};\n/**\n * @category combinators\n * @since 2.10.0\n */\n\nexport var reverse = function reverse(O) {\n return fromCompare(function (first, second) {\n return O.compare(second, first);\n });\n}; // -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\n\n/* istanbul ignore next */\n\nvar contramap_ = function contramap_(fa, f) {\n return pipe(fa, contramap(f));\n}; // -------------------------------------------------------------------------------------\n// type class members\n// -------------------------------------------------------------------------------------\n\n/**\n * @category Contravariant\n * @since 2.0.0\n */\n\n\nexport var contramap = function contramap(f) {\n return function (fa) {\n return fromCompare(function (first, second) {\n return fa.compare(f(first), f(second));\n });\n };\n}; // -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @category instances\n * @since 2.0.0\n */\n\nexport var URI = 'Ord';\n/**\n * @category instances\n * @since 2.0.0\n */\n\nexport var getSemigroup = function getSemigroup() {\n return {\n concat: function concat(first, second) {\n return fromCompare(function (a, b) {\n var ox = first.compare(a, b);\n return ox !== 0 ? ox : second.compare(a, b);\n });\n }\n };\n};\n/**\n * Returns a `Monoid` such that:\n *\n * - its `concat(ord1, ord2)` operation will order first by `ord1`, and then by `ord2`\n * - its `empty` value is an `Ord` that always considers compared elements equal\n *\n * @example\n * import { sort } from 'fp-ts/Array'\n * import { contramap, reverse, getMonoid } from 'fp-ts/Ord'\n * import * as S from 'fp-ts/string'\n * import * as B from 'fp-ts/boolean'\n * import { pipe } from 'fp-ts/function'\n * import { concatAll } from 'fp-ts/Monoid'\n * import * as N from 'fp-ts/number'\n *\n * interface User {\n * readonly id: number\n * readonly name: string\n * readonly age: number\n * readonly rememberMe: boolean\n * }\n *\n * const byName = pipe(\n * S.Ord,\n * contramap((p: User) => p.name)\n * )\n *\n * const byAge = pipe(\n * N.Ord,\n * contramap((p: User) => p.age)\n * )\n *\n * const byRememberMe = pipe(\n * B.Ord,\n * contramap((p: User) => p.rememberMe)\n * )\n *\n * const M = getMonoid()\n *\n * const users: Array = [\n * { id: 1, name: 'Guido', age: 47, rememberMe: false },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true }\n * ]\n *\n * // sort by name, then by age, then by `rememberMe`\n * const O1 = concatAll(M)([byName, byAge, byRememberMe])\n * assert.deepStrictEqual(sort(O1)(users), [\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 1, name: 'Guido', age: 47, rememberMe: false }\n * ])\n *\n * // now `rememberMe = true` first, then by name, then by age\n * const O2 = concatAll(M)([reverse(byRememberMe), byName, byAge])\n * assert.deepStrictEqual(sort(O2)(users), [\n * { id: 4, name: 'Giulio', age: 44, rememberMe: true },\n * { id: 2, name: 'Guido', age: 46, rememberMe: true },\n * { id: 3, name: 'Giulio', age: 44, rememberMe: false },\n * { id: 1, name: 'Guido', age: 47, rememberMe: false }\n * ])\n *\n * @category instances\n * @since 2.4.0\n */\n\nexport var getMonoid = function getMonoid() {\n return {\n concat: getSemigroup().concat,\n empty: fromCompare(function () {\n return 0;\n })\n };\n};\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport var Contravariant = {\n URI: URI,\n contramap: contramap_\n}; // -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.11.0\n */\n\nexport var trivial = {\n equals: constTrue,\n compare: /*#__PURE__*/constant(0)\n};\n/**\n * @since 2.11.0\n */\n\nexport var equals = function equals(O) {\n return function (second) {\n return function (first) {\n return first === second || O.compare(first, second) === 0;\n };\n };\n}; // TODO: curry in v3\n\n/**\n * Test whether one value is _strictly less than_ another\n *\n * @since 2.0.0\n */\n\nexport var lt = function lt(O) {\n return function (first, second) {\n return O.compare(first, second) === -1;\n };\n}; // TODO: curry in v3\n\n/**\n * Test whether one value is _strictly greater than_ another\n *\n * @since 2.0.0\n */\n\nexport var gt = function gt(O) {\n return function (first, second) {\n return O.compare(first, second) === 1;\n };\n}; // TODO: curry in v3\n\n/**\n * Test whether one value is _non-strictly less than_ another\n *\n * @since 2.0.0\n */\n\nexport var leq = function leq(O) {\n return function (first, second) {\n return O.compare(first, second) !== 1;\n };\n}; // TODO: curry in v3\n\n/**\n * Test whether one value is _non-strictly greater than_ another\n *\n * @since 2.0.0\n */\n\nexport var geq = function geq(O) {\n return function (first, second) {\n return O.compare(first, second) !== -1;\n };\n}; // TODO: curry in v3\n\n/**\n * Take the minimum of two values. If they are considered equal, the first argument is chosen\n *\n * @since 2.0.0\n */\n\nexport var min = function min(O) {\n return function (first, second) {\n return first === second || O.compare(first, second) < 1 ? first : second;\n };\n}; // TODO: curry in v3\n\n/**\n * Take the maximum of two values. If they are considered equal, the first argument is chosen\n *\n * @since 2.0.0\n */\n\nexport var max = function max(O) {\n return function (first, second) {\n return first === second || O.compare(first, second) > -1 ? first : second;\n };\n};\n/**\n * Clamp a value between a minimum and a maximum\n *\n * @since 2.0.0\n */\n\nexport var clamp = function clamp(O) {\n var minO = min(O);\n var maxO = max(O);\n return function (low, hi) {\n return function (a) {\n return maxO(minO(a, hi), low);\n };\n };\n};\n/**\n * Test whether a value is between a minimum and a maximum (inclusive)\n *\n * @since 2.0.0\n */\n\nexport var between = function between(O) {\n var ltO = lt(O);\n var gtO = gt(O);\n return function (low, hi) {\n return function (a) {\n return ltO(a, low) || gtO(a, hi) ? false : true;\n };\n };\n}; // -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n// tslint:disable: deprecation\n\n/**\n * Use [`tuple`](#tuple) instead.\n *\n * @category combinators\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getTupleOrd = tuple;\n/**\n * Use [`reverse`](#reverse) instead.\n *\n * @category combinators\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getDualOrd = reverse;\n/**\n * Use [`Contravariant`](#contravariant) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var ord = Contravariant; // default compare for primitive types\n\nfunction compare(first, second) {\n return first < second ? -1 : first > second ? 1 : 0;\n}\n\nvar strictOrd = {\n equals: eqStrict.equals,\n compare: compare\n};\n/**\n * Use [`Ord`](./boolean.ts.html#ord) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var ordBoolean = strictOrd;\n/**\n * Use [`Ord`](./string.ts.html#ord) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var ordString = strictOrd;\n/**\n * Use [`Ord`](./number.ts.html#ord) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var ordNumber = strictOrd;\n/**\n * Use [`Ord`](./Date.ts.html#ord) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var ordDate = /*#__PURE__*/pipe(ordNumber, /*#__PURE__*/contramap(function (date) {\n return date.valueOf();\n}));","/**\n * If a type `A` can form a `Semigroup` it has an **associative** binary operation.\n *\n * ```ts\n * interface Semigroup {\n * readonly concat: (x: A, y: A) => A\n * }\n * ```\n *\n * Associativity means the following equality must hold for any choice of `x`, `y`, and `z`.\n *\n * ```ts\n * concat(x, concat(y, z)) = concat(concat(x, y), z)\n * ```\n *\n * A common example of a semigroup is the type `string` with the operation `+`.\n *\n * ```ts\n * import { Semigroup } from 'fp-ts/Semigroup'\n *\n * const semigroupString: Semigroup = {\n * concat: (x, y) => x + y\n * }\n *\n * const x = 'x'\n * const y = 'y'\n * const z = 'z'\n *\n * semigroupString.concat(x, y) // 'xy'\n *\n * semigroupString.concat(x, semigroupString.concat(y, z)) // 'xyz'\n *\n * semigroupString.concat(semigroupString.concat(x, y), z) // 'xyz'\n * ```\n *\n * *Adapted from https://typelevel.org/cats*\n *\n * @since 2.0.0\n */\nimport { getSemigroup, identity } from './function';\nimport * as _ from './internal';\nimport * as M from './Magma';\nimport * as Or from './Ord'; // -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n\n/**\n * Get a semigroup where `concat` will return the minimum, based on the provided order.\n *\n * @example\n * import * as N from 'fp-ts/number'\n * import * as S from 'fp-ts/Semigroup'\n *\n * const S1 = S.min(N.Ord)\n *\n * assert.deepStrictEqual(S1.concat(1, 2), 1)\n *\n * @category constructors\n * @since 2.10.0\n */\n\nexport var min = function min(O) {\n return {\n concat: Or.min(O)\n };\n};\n/**\n * Get a semigroup where `concat` will return the maximum, based on the provided order.\n *\n * @example\n * import * as N from 'fp-ts/number'\n * import * as S from 'fp-ts/Semigroup'\n *\n * const S1 = S.max(N.Ord)\n *\n * assert.deepStrictEqual(S1.concat(1, 2), 2)\n *\n * @category constructors\n * @since 2.10.0\n */\n\nexport var max = function max(O) {\n return {\n concat: Or.max(O)\n };\n};\n/**\n * @category constructors\n * @since 2.10.0\n */\n\nexport var constant = function constant(a) {\n return {\n concat: function concat() {\n return a;\n }\n };\n}; // -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n\n/**\n * The dual of a `Semigroup`, obtained by swapping the arguments of `concat`.\n *\n * @example\n * import { reverse } from 'fp-ts/Semigroup'\n * import * as S from 'fp-ts/string'\n *\n * assert.deepStrictEqual(reverse(S.Semigroup).concat('a', 'b'), 'ba')\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var reverse = M.reverse;\n/**\n * Given a struct of semigroups returns a semigroup for the struct.\n *\n * @example\n * import { struct } from 'fp-ts/Semigroup'\n * import * as N from 'fp-ts/number'\n *\n * interface Point {\n * readonly x: number\n * readonly y: number\n * }\n *\n * const S = struct({\n * x: N.SemigroupSum,\n * y: N.SemigroupSum\n * })\n *\n * assert.deepStrictEqual(S.concat({ x: 1, y: 2 }, { x: 3, y: 4 }), { x: 4, y: 6 })\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var struct = function struct(semigroups) {\n return {\n concat: function concat(first, second) {\n var r = {};\n\n for (var k in semigroups) {\n if (_.has.call(semigroups, k)) {\n r[k] = semigroups[k].concat(first[k], second[k]);\n }\n }\n\n return r;\n }\n };\n};\n/**\n * Given a tuple of semigroups returns a semigroup for the tuple.\n *\n * @example\n * import { tuple } from 'fp-ts/Semigroup'\n * import * as B from 'fp-ts/boolean'\n * import * as N from 'fp-ts/number'\n * import * as S from 'fp-ts/string'\n *\n * const S1 = tuple(S.Semigroup, N.SemigroupSum)\n * assert.deepStrictEqual(S1.concat(['a', 1], ['b', 2]), ['ab', 3])\n *\n * const S2 = tuple(S.Semigroup, N.SemigroupSum, B.SemigroupAll)\n * assert.deepStrictEqual(S2.concat(['a', 1, true], ['b', 2, false]), ['ab', 3, false])\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var tuple = function tuple() {\n var semigroups = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n semigroups[_i] = arguments[_i];\n }\n\n return {\n concat: function concat(first, second) {\n return semigroups.map(function (s, i) {\n return s.concat(first[i], second[i]);\n });\n }\n };\n};\n/**\n * Between each pair of elements insert `middle`.\n *\n * @example\n * import { intercalate } from 'fp-ts/Semigroup'\n * import * as S from 'fp-ts/string'\n * import { pipe } from 'fp-ts/function'\n *\n * const S1 = pipe(S.Semigroup, intercalate(' + '))\n *\n * assert.strictEqual(S1.concat('a', 'b'), 'a + b')\n *\n * @category combinators\n * @since 2.10.0\n */\n\nexport var intercalate = function intercalate(middle) {\n return function (S) {\n return {\n concat: function concat(x, y) {\n return S.concat(x, S.concat(middle, y));\n }\n };\n };\n}; // -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * Always return the first argument.\n *\n * @example\n * import * as S from 'fp-ts/Semigroup'\n *\n * assert.deepStrictEqual(S.first().concat(1, 2), 1)\n *\n * @category instances\n * @since 2.10.0\n */\n\nexport var first = function first() {\n return {\n concat: identity\n };\n};\n/**\n * Always return the last argument.\n *\n * @example\n * import * as S from 'fp-ts/Semigroup'\n *\n * assert.deepStrictEqual(S.last().concat(1, 2), 2)\n *\n * @category instances\n * @since 2.10.0\n */\n\nexport var last = function last() {\n return {\n concat: function concat(_, y) {\n return y;\n }\n };\n}; // -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n\n/**\n * Given a sequence of `as`, concat them and return the total.\n *\n * If `as` is empty, return the provided `startWith` value.\n *\n * @example\n * import { concatAll } from 'fp-ts/Semigroup'\n * import * as N from 'fp-ts/number'\n *\n * const sum = concatAll(N.SemigroupSum)(0)\n *\n * assert.deepStrictEqual(sum([1, 2, 3]), 6)\n * assert.deepStrictEqual(sum([]), 0)\n *\n * @since 2.10.0\n */\n\nexport var concatAll = M.concatAll; // -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n\n/**\n * Use `void` module instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var semigroupVoid = constant(undefined);\n/**\n * Use [`getAssignSemigroup`](./struct.ts.html#getAssignSemigroup) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getObjectSemigroup = function getObjectSemigroup() {\n return {\n concat: function concat(first, second) {\n return Object.assign({}, first, second);\n }\n };\n};\n/**\n * Use [`last`](#last) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getLastSemigroup = last;\n/**\n * Use [`first`](#first) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getFirstSemigroup = first;\n/**\n * Use [`tuple`](#tuple) instead.\n *\n * @category combinators\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getTupleSemigroup = tuple;\n/**\n * Use [`struct`](#struct) instead.\n *\n * @category combinators\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getStructSemigroup = struct;\n/**\n * Use [`reverse`](#reverse) instead.\n *\n * @category combinators\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getDualSemigroup = reverse;\n/**\n * Use [`max`](#max) instead.\n *\n * @category constructors\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getJoinSemigroup = max;\n/**\n * Use [`min`](#min) instead.\n *\n * @category constructors\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getMeetSemigroup = min;\n/**\n * Use [`intercalate`](#intercalate) instead.\n *\n * @category combinators\n * @since 2.5.0\n * @deprecated\n */\n\nexport var getIntercalateSemigroup = intercalate;\nexport function fold(S) {\n var concatAllS = concatAll(S);\n return function (startWith, as) {\n return as === undefined ? concatAllS(startWith) : concatAllS(startWith)(as);\n };\n}\n/**\n * Use [`SemigroupAll`](./boolean.ts.html#SemigroupAll) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var semigroupAll = {\n concat: function concat(x, y) {\n return x && y;\n }\n};\n/**\n * Use [`SemigroupAny`](./boolean.ts.html#SemigroupAny) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var semigroupAny = {\n concat: function concat(x, y) {\n return x || y;\n }\n};\n/**\n * Use [`getSemigroup`](./function.ts.html#getSemigroup) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getFunctionSemigroup = getSemigroup;\n/**\n * Use [`Semigroup`](./string.ts.html#Semigroup) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var semigroupString = {\n concat: function concat(x, y) {\n return x + y;\n }\n};\n/**\n * Use [`SemigroupSum`](./number.ts.html#SemigroupSum) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var semigroupSum = {\n concat: function concat(x, y) {\n return x + y;\n }\n};\n/**\n * Use [`SemigroupProduct`](./number.ts.html#SemigroupProduct) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var semigroupProduct = {\n concat: function concat(x, y) {\n return x * y;\n }\n};","/**\n * A `Magma` is a pair `(A, concat)` in which `A` is a non-empty set and `concat` is a binary operation on `A`\n *\n * See [Semigroup](https://gcanti.github.io/fp-ts/modules/Semigroup.ts.html) for some instances.\n *\n * @since 2.0.0\n */\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n\n/**\n * The dual of a `Magma`, obtained by swapping the arguments of `concat`.\n *\n * @example\n * import { reverse, concatAll } from 'fp-ts/Magma'\n * import * as N from 'fp-ts/number'\n *\n * const subAll = concatAll(reverse(N.MagmaSub))(0)\n *\n * assert.deepStrictEqual(subAll([1, 2, 3]), 2)\n *\n * @category combinators\n * @since 2.11.0\n */\nexport var reverse = function reverse(M) {\n return {\n concat: function concat(first, second) {\n return M.concat(second, first);\n }\n };\n};\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var filterFirst = function filterFirst(predicate) {\n return function (M) {\n return {\n concat: function concat(first, second) {\n return predicate(first) ? M.concat(first, second) : second;\n }\n };\n };\n};\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var filterSecond = function filterSecond(predicate) {\n return function (M) {\n return {\n concat: function concat(first, second) {\n return predicate(second) ? M.concat(first, second) : first;\n }\n };\n };\n};\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var endo = function endo(f) {\n return function (M) {\n return {\n concat: function concat(first, second) {\n return M.concat(f(first), f(second));\n }\n };\n };\n}; // -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n\n/**\n * Given a sequence of `as`, concat them and return the total.\n *\n * If `as` is empty, return the provided `startWith` value.\n *\n * @example\n * import { concatAll } from 'fp-ts/Magma'\n * import * as N from 'fp-ts/number'\n *\n * const subAll = concatAll(N.MagmaSub)(0)\n *\n * assert.deepStrictEqual(subAll([1, 2, 3]), -6)\n *\n * @since 2.11.0\n */\n\nexport var concatAll = function concatAll(M) {\n return function (startWith) {\n return function (as) {\n return as.reduce(function (a, acc) {\n return M.concat(a, acc);\n }, startWith);\n };\n };\n};","/**\n * ```ts\n * interface Separated {\n * readonly left: E\n * readonly right: A\n * }\n * ```\n *\n * Represents a result of separating a whole into two parts.\n *\n * @since 2.10.0\n */\nimport { pipe } from './function';\nimport { flap as flap_ } from './Functor'; // -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n\n/**\n * @category constructors\n * @since 2.10.0\n */\n\nexport var separated = function separated(left, right) {\n return {\n left: left,\n right: right\n };\n}; // -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\n\nvar _map = function _map(fa, f) {\n return pipe(fa, map(f));\n};\n\nvar _mapLeft = function _mapLeft(fa, f) {\n return pipe(fa, mapLeft(f));\n};\n\nvar _bimap = function _bimap(fa, g, f) {\n return pipe(fa, bimap(g, f));\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.10.0\n */\n\n\nexport var map = function map(f) {\n return function (fa) {\n return separated(left(fa), f(right(fa)));\n };\n};\n/**\n * Map a function over the first type argument of a bifunctor.\n *\n * @category Bifunctor\n * @since 2.10.0\n */\n\nexport var mapLeft = function mapLeft(f) {\n return function (fa) {\n return separated(f(left(fa)), right(fa));\n };\n};\n/**\n * Map a pair of functions over the two type arguments of the bifunctor.\n *\n * @category Bifunctor\n * @since 2.10.0\n */\n\nexport var bimap = function bimap(f, g) {\n return function (fa) {\n return separated(f(left(fa)), g(right(fa)));\n };\n}; // -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var URI = 'Separated';\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Bifunctor = {\n URI: URI,\n mapLeft: _mapLeft,\n bimap: _bimap\n};\n/**\n * @category instances\n * @since 2.10.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// utils\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.10.0\n */\n\nexport var left = function left(s) {\n return s.left;\n};\n/**\n * @since 2.10.0\n */\n\nexport var right = function right(s) {\n return s.right;\n};","/**\n * ```ts\n * interface Task {\n * (): Promise\n * }\n * ```\n *\n * `Task` represents an asynchronous computation that yields a value of type `A` and **never fails**.\n * If you want to represent an asynchronous computation that may fail, please see `TaskEither`.\n *\n * @since 2.0.0\n */\nimport { getApplicativeMonoid } from './Applicative';\nimport { apFirst as apFirst_, apS as apS_, apSecond as apSecond_, getApplySemigroup as getApplySemigroup_ } from './Apply';\nimport { bind as bind_, chainFirst as chainFirst_ } from './Chain';\nimport { chainFirstIOK as chainFirstIOK_, chainIOK as chainIOK_, fromIOK as fromIOK_ } from './FromIO';\nimport { identity, pipe } from './function';\nimport { bindTo as bindTo_, flap as flap_ } from './Functor';\nimport * as _ from './internal'; // -------------------------------------------------------------------------------------\n// natural transformations\n// -------------------------------------------------------------------------------------\n\n/**\n * @category natural transformations\n * @since 2.0.0\n */\n\nexport var fromIO = function fromIO(ma) {\n return function () {\n return Promise.resolve().then(ma);\n };\n}; // -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n\n/**\n * Creates a task that will complete after a time delay\n *\n * @example\n * import { sequenceT } from 'fp-ts/Apply'\n * import * as T from 'fp-ts/Task'\n * import { takeRight } from 'fp-ts/Array'\n *\n * async function test() {\n * const log: Array = []\n * const append = (message: string): T.Task =>\n * T.fromIO(() => {\n * log.push(message)\n * })\n * const fa = append('a')\n * const fb = T.delay(20)(append('b'))\n * const fc = T.delay(10)(append('c'))\n * const fd = append('d')\n * await sequenceT(T.ApplyPar)(fa, fb, fc, fd)()\n * assert.deepStrictEqual(takeRight(2)(log), ['c', 'b'])\n * }\n *\n * test()\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport function delay(millis) {\n return function (ma) {\n return function () {\n return new Promise(function (resolve) {\n setTimeout(function () {\n // tslint:disable-next-line: no-floating-promises\n Promise.resolve().then(ma).then(resolve);\n }, millis);\n });\n };\n };\n} // -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\n\nvar _map = function _map(fa, f) {\n return pipe(fa, map(f));\n};\n\nvar _apPar = function _apPar(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\nvar _chain = function _chain(ma, f) {\n return pipe(ma, chain(f));\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 function () {\n return Promise.resolve().then(fa).then(f);\n };\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 function () {\n return Promise.all([Promise.resolve().then(fab), Promise.resolve().then(fa)]).then(function (_a) {\n var f = _a[0],\n a = _a[1];\n return f(a);\n });\n };\n };\n};\n/**\n * @category Pointed\n * @since 2.0.0\n */\n\nexport var of = function of(a) {\n return function () {\n return Promise.resolve(a);\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 function (ma) {\n return function () {\n return Promise.resolve().then(ma).then(function (a) {\n return f(a)();\n });\n };\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 = 'Task';\n/**\n * Monoid returning the first completed task.\n *\n * Note: uses `Promise.race` internally.\n *\n * @example\n * import * as T from 'fp-ts/Task'\n *\n * async function test() {\n * const S = T.getRaceMonoid()\n * const fa = T.delay(20)(T.of('a'))\n * const fb = T.delay(10)(T.of('b'))\n * assert.deepStrictEqual(await S.concat(fa, fb)(), 'b')\n * }\n *\n * test()\n *\n * @category instances\n * @since 2.0.0\n */\n\nexport function getRaceMonoid() {\n return {\n concat: function concat(x, y) {\n return function () {\n return Promise.race([Promise.resolve().then(x), Promise.resolve().then(y)]);\n };\n },\n empty: never\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 ApplyPar = {\n URI: URI,\n map: _map,\n ap: _apPar\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.7.0\n */\n\nexport var ApplicativePar = {\n URI: URI,\n map: _map,\n ap: _apPar,\n of: of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var ApplySeq = {\n URI: URI,\n map: _map,\n ap: _apSeq\n};\n/**\n * @category instances\n * @since 2.7.0\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: _apPar,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Monad = {\n URI: URI,\n map: _map,\n of: of,\n ap: _apPar,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var MonadIO = {\n URI: URI,\n map: _map,\n of: of,\n ap: _apPar,\n chain: _chain,\n fromIO: fromIO\n};\n/**\n * @category FromTask\n * @since 2.7.0\n * @deprecated\n */\n\nexport var fromTask = identity;\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var MonadTask = {\n URI: URI,\n map: _map,\n of: of,\n ap: _apPar,\n chain: _chain,\n fromIO: fromIO,\n fromTask: fromTask\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.10.0\n */\n\nexport var FromIO = {\n URI: URI,\n fromIO: fromIO\n};\n/**\n * @category combinators\n * @since 2.4.0\n */\n\nexport var fromIOK = /*#__PURE__*/fromIOK_(FromIO);\n/**\n * @category combinators\n * @since 2.4.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 FromTask = {\n URI: URI,\n fromIO: fromIO,\n fromTask: fromTask\n}; // -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n\n/**\n * A `Task` that never completes.\n *\n * @since 2.0.0\n */\n\nexport var never = function never() {\n return new Promise(function (_) {\n return undefined;\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// pipeable sequence S\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.8.0\n */\n\nexport var apS = /*#__PURE__*/apS_(ApplyPar); // -------------------------------------------------------------------------------------\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 function (as) {\n return function () {\n return Promise.all(as.map(function (a, i) {\n return Promise.resolve().then(function () {\n return f(i, a)();\n });\n }));\n };\n };\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 return _.tail(as).reduce(function (acc, a, i) {\n return acc.then(function (bs) {\n return Promise.resolve().then(f(i + 1, a)).then(function (b) {\n bs.push(b);\n return bs;\n });\n });\n }, Promise.resolve().then(f(0, _.head(as))).then(_.singleton));\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 small, specific instances instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var task = {\n URI: URI,\n map: _map,\n of: of,\n ap: _apPar,\n chain: _chain,\n fromIO: fromIO,\n fromTask: fromTask\n};\n/**\n * Use small, specific instances instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var taskSeq = {\n URI: URI,\n map: _map,\n of: of,\n ap: _apSeq,\n chain: _chain,\n fromIO: fromIO,\n fromTask: fromTask\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_(ApplySeq);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.\n *\n * Lift a monoid into 'Task', the inner values are concatenated using the provided `Monoid`.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var getMonoid = /*#__PURE__*/getApplicativeMonoid(ApplicativeSeq);","import { pipe } from './function';\nimport { getFunctorComposition, map } from './Functor';\nimport { getLeft, getRight } from './Option';\nimport * as S from './Separated';\nexport function compact(F, G) {\n return function (fga) {\n return F.map(fga, G.compact);\n };\n}\nexport function separate(F, C, G) {\n var _compact = compact(F, C);\n\n var _map = map(F, G);\n\n return function (fge) {\n return S.separated(_compact(pipe(fge, _map(getLeft))), _compact(pipe(fge, _map(getRight))));\n };\n}\n/** @deprecated */\n\nexport function getCompactableComposition(F, G) {\n var map = getFunctorComposition(F, G).map;\n return {\n map: map,\n compact: compact(F, G),\n separate: separate(F, G, G)\n };\n}","import { ap as ap_ } from './Apply';\nimport * as E from './Either';\nimport { flow, pipe } from './function';\nimport { map as map_ } from './Functor';\nexport function right(F) {\n return flow(E.right, F.of);\n}\nexport function left(F) {\n return flow(E.left, F.of);\n}\nexport function rightF(F) {\n return function (fa) {\n return F.map(fa, E.right);\n };\n}\nexport function leftF(F) {\n return function (fe) {\n return F.map(fe, E.left);\n };\n}\nexport function map(F) {\n return map_(F, E.Functor);\n}\nexport function ap(F) {\n return ap_(F, E.Apply);\n}\nexport function chain(M) {\n return function (f) {\n return function (ma) {\n return M.chain(ma, function (e) {\n return E.isLeft(e) ? M.of(e) : f(e.right);\n });\n };\n };\n}\nexport function alt(M) {\n return function (second) {\n return function (first) {\n return M.chain(first, function (e) {\n return E.isLeft(e) ? second() : M.of(e);\n });\n };\n };\n}\nexport function bimap(F) {\n return function (f, g) {\n return function (fea) {\n return F.map(fea, E.bimap(f, g));\n };\n };\n}\nexport function mapLeft(F) {\n return function (f) {\n return function (fea) {\n return F.map(fea, E.mapLeft(f));\n };\n };\n}\nexport function altValidation(M, S) {\n return function (second) {\n return function (first) {\n return M.chain(first, E.match(function (e1) {\n return M.map(second(), E.mapLeft(function (e2) {\n return S.concat(e1, e2);\n }));\n }, right(M)));\n };\n };\n}\nexport function match(F) {\n return function (onLeft, onRight) {\n return function (ma) {\n return F.map(ma, E.match(onLeft, onRight));\n };\n };\n}\nexport function matchE(M) {\n return function (onLeft, onRight) {\n return function (ma) {\n return M.chain(ma, E.match(onLeft, onRight));\n };\n };\n}\nexport function getOrElse(M) {\n return function (onLeft) {\n return function (ma) {\n return M.chain(ma, E.match(onLeft, M.of));\n };\n };\n}\nexport function orElse(M) {\n return function (onLeft) {\n return function (ma) {\n return M.chain(ma, function (e) {\n return E.isLeft(e) ? onLeft(e.left) : M.of(e);\n });\n };\n };\n}\nexport function orElseFirst(M) {\n var orElseM = orElse(M);\n return function (onLeft) {\n return orElseM(function (e) {\n return M.map(onLeft(e), function (eb) {\n return E.isLeft(eb) ? eb : E.left(e);\n });\n });\n };\n}\nexport function orLeft(M) {\n return function (onLeft) {\n return function (ma) {\n return M.chain(ma, E.match(function (e) {\n return M.map(onLeft(e), E.left);\n }, function (a) {\n return M.of(E.right(a));\n }));\n };\n };\n}\nexport function swap(F) {\n return function (ma) {\n return F.map(ma, E.swap);\n };\n}\nexport function toUnion(F) {\n return function (fa) {\n return F.map(fa, E.toUnion);\n };\n}\n/** @deprecated */\n\n/* istanbul ignore next */\n\nexport function getEitherM(M) {\n var _ap = ap(M);\n\n var _map = map(M);\n\n var _chain = chain(M);\n\n var _alt = alt(M);\n\n var _bimap = bimap(M);\n\n var _mapLeft = mapLeft(M);\n\n var _fold = matchE(M);\n\n var _getOrElse = getOrElse(M);\n\n var _orElse = orElse(M);\n\n return {\n map: function map(fa, f) {\n return pipe(fa, _map(f));\n },\n ap: function ap(fab, fa) {\n return pipe(fab, _ap(fa));\n },\n of: right(M),\n chain: function chain(ma, f) {\n return pipe(ma, _chain(f));\n },\n alt: function alt(fa, that) {\n return pipe(fa, _alt(that));\n },\n bimap: function bimap(fea, f, g) {\n return pipe(fea, _bimap(f, g));\n },\n mapLeft: function mapLeft(fea, f) {\n return pipe(fea, _mapLeft(f));\n },\n fold: function fold(fa, onLeft, onRight) {\n return pipe(fa, _fold(onLeft, onRight));\n },\n getOrElse: function getOrElse(fa, onLeft) {\n return pipe(fa, _getOrElse(onLeft));\n },\n orElse: function orElse(fa, f) {\n return pipe(fa, _orElse(f));\n },\n swap: swap(M),\n rightM: rightF(M),\n leftM: leftF(M),\n left: left(M)\n };\n}","/**\n * `Filterable` represents data structures which can be _partitioned_/_filtered_.\n *\n * Adapted from https://github.com/LiamGoodacre/purescript-filterable/blob/master/src/Data/Filterable.purs\n *\n * @since 2.0.0\n */\nimport { compact, separate } from './Compactable';\nimport { pipe } from './function';\nimport { getFunctorComposition } from './Functor';\nimport { getLeft, getRight } from './Option';\nimport { not } from './Predicate';\nimport { separated } from './Separated';\nexport function filter(F, G) {\n return function (predicate) {\n return function (fga) {\n return F.map(fga, function (ga) {\n return G.filter(ga, predicate);\n });\n };\n };\n}\nexport function filterMap(F, G) {\n return function (f) {\n return function (fga) {\n return F.map(fga, function (ga) {\n return G.filterMap(ga, f);\n });\n };\n };\n}\nexport function partition(F, G) {\n var _filter = filter(F, G);\n\n return function (predicate) {\n var left = _filter(not(predicate));\n\n var right = _filter(predicate);\n\n return function (fgb) {\n return separated(left(fgb), right(fgb));\n };\n };\n}\nexport function partitionMap(F, G) {\n var _filterMap = filterMap(F, G);\n\n return function (f) {\n return function (fga) {\n return separated(pipe(fga, _filterMap(function (a) {\n return getLeft(f(a));\n })), pipe(fga, _filterMap(function (a) {\n return getRight(f(a));\n })));\n };\n };\n}\n/** @deprecated */\n\nexport function getFilterableComposition(F, G) {\n var map = getFunctorComposition(F, G).map;\n\n var _compact = compact(F, G);\n\n var _separate = separate(F, G, G);\n\n var _filter = filter(F, G);\n\n var _filterMap = filterMap(F, G);\n\n var _partition = partition(F, G);\n\n var _partitionMap = partitionMap(F, G);\n\n return {\n map: map,\n compact: _compact,\n separate: _separate,\n filter: function filter(fga, f) {\n return pipe(fga, _filter(f));\n },\n filterMap: function filterMap(fga, f) {\n return pipe(fga, _filterMap(f));\n },\n partition: function partition(fga, p) {\n return pipe(fga, _partition(p));\n },\n partitionMap: function partitionMap(fga, f) {\n return pipe(fga, _partitionMap(f));\n }\n };\n}","/**\n * Lift a computation from the `Task` monad\n *\n * @since 2.10.0\n */\nimport { chainFirst } from './Chain';\nimport { flow } from './function';\nexport function fromTaskK(F) {\n return function (f) {\n return flow(f, F.fromTask);\n };\n}\nexport function chainTaskK(F, M) {\n return function (f) {\n var g = flow(f, F.fromTask);\n return function (first) {\n return M.chain(first, g);\n };\n };\n}\nexport function chainFirstTaskK(F, M) {\n var chainFirstM = chainFirst(M);\n return function (f) {\n return chainFirstM(flow(f, F.fromTask));\n };\n}","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 { chainFirstTaskK as chainFirstTaskK_, chainTaskK as chainTaskK_, fromTaskK as fromTaskK_ } from './FromTask';\nimport { flow, identity, pipe, SK } from './function';\nimport { bindTo as bindTo_, flap as flap_ } from './Functor';\nimport * as _ from './internal';\nimport * as T from './Task'; // -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var left = /*#__PURE__*/ET.left(T.Pointed);\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var right = /*#__PURE__*/ET.right(T.Pointed);\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var rightTask = /*#__PURE__*/ET.rightF(T.Functor);\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var leftTask = /*#__PURE__*/ET.leftF(T.Functor);\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var rightIO = /*#__PURE__*/flow(T.fromIO, rightTask);\n/**\n * @category constructors\n * @since 2.0.0\n */\n\nexport var leftIO = /*#__PURE__*/flow(T.fromIO, leftTask); // -------------------------------------------------------------------------------------\n// natural transformations\n// -------------------------------------------------------------------------------------\n\n/**\n * @category natural transformations\n * @since 2.7.0\n */\n\nexport var fromIO = rightIO;\n/**\n * @category natural transformations\n * @since 2.7.0\n */\n\nexport var fromTask = rightTask;\n/**\n * @category natural transformations\n * @since 2.0.0\n */\n\nexport var fromEither = T.of;\n/**\n * @category natural transformations\n * @since 2.0.0\n */\n\nexport var fromIOEither = T.fromIO;\n/**\n * @category natural transformations\n * @since 2.11.0\n */\n\nexport var fromTaskOption = function fromTaskOption(onNone) {\n return T.map(E.fromOption(onNone));\n}; // -------------------------------------------------------------------------------------\n// destructors\n// -------------------------------------------------------------------------------------\n\n/**\n * @category destructors\n * @since 2.10.0\n */\n\nexport var match = /*#__PURE__*/ET.match(T.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(T.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(T.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 * Transforms a `Promise` that may reject to a `Promise` that never rejects and returns an `Either` instead.\n *\n * Note: `f` should never `throw` errors, they are not caught.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import { left, right } from 'fp-ts/Either'\n * import { tryCatch } from 'fp-ts/TaskEither'\n *\n * tryCatch(() => Promise.resolve(1), String)().then(result => {\n * assert.deepStrictEqual(result, right(1))\n * })\n * tryCatch(() => Promise.reject('error'), String)().then(result => {\n * assert.deepStrictEqual(result, left('error'))\n * })\n *\n * @category interop\n * @since 2.0.0\n */\n\nexport var tryCatch = function tryCatch(f, onRejected) {\n return function () {\n return f().then(_.right, function (reason) {\n return _.left(onRejected(reason));\n });\n };\n};\n/**\n * Converts a function returning a `Promise` to one returning a `TaskEither`.\n *\n * @category interop\n * @since 2.5.0\n */\n\nexport var tryCatchK = function tryCatchK(f, onRejected) {\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 }, onRejected);\n };\n};\n/**\n * @category interop\n * @since 2.10.0\n */\n\nexport var toUnion = /*#__PURE__*/ET.toUnion(T.Functor); // -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n\n/**\n * Returns `ma` if is a `Right` or the value returned by `onLeft` otherwise.\n *\n * See also [alt](#alt).\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as TE from 'fp-ts/TaskEither'\n *\n * async function test() {\n * const errorHandler = TE.orElse((error: string) => TE.right(`recovering from ${error}...`))\n * assert.deepStrictEqual(await pipe(TE.right('ok'), errorHandler)(), E.right('ok'))\n * assert.deepStrictEqual(await pipe(TE.left('ko'), errorHandler)(), E.right('recovering from ko...'))\n * }\n *\n * test()\n *\n * @category combinators\n * @since 2.0.0\n */\n\nexport var orElse = /*#__PURE__*/ET.orElse(T.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(T.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(T.Monad);\n/**\n * @category combinators\n * @since 2.0.0\n */\n\nexport var swap = /*#__PURE__*/ET.swap(T.Functor);\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var fromTaskOptionK = function fromTaskOptionK(onNone) {\n var from = fromTaskOption(onNone);\n return function (f) {\n return flow(f, from);\n };\n};\n/**\n * @category combinators\n * @since 2.11.0\n */\n\nexport var chainTaskOptionK = function chainTaskOptionK(onNone) {\n return flow(fromTaskOptionK(onNone), chain);\n};\n/**\n * @category combinators\n * @since 2.4.0\n */\n\nexport var fromIOEitherK = function fromIOEitherK(f) {\n return flow(f, fromIOEither);\n};\n/**\n * Less strict version of [`chainIOEitherK`](#chainioeitherk).\n *\n * @category combinators\n * @since 2.6.1\n */\n\nexport var chainIOEitherKW = function chainIOEitherKW(f) {\n return chainW(fromIOEitherK(f));\n};\n/**\n * @category combinators\n * @since 2.4.0\n */\n\nexport var chainIOEitherK = chainIOEitherKW; // -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\n\nvar _map = function _map(fa, f) {\n return pipe(fa, map(f));\n};\n\nvar _apPar = function _apPar(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(T.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(T.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(T.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(T.ApplyPar);\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 * 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(T.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 * In case of `TaskEither` returns `fa` if is a `Right` or the value returned by `that` otherwise.\n *\n * See also [orElse](#orelse).\n *\n * @example\n * import * as E from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import * as TE from 'fp-ts/TaskEither'\n *\n * async function test() {\n * assert.deepStrictEqual(\n * await pipe(\n * TE.right(1),\n * TE.alt(() => TE.right(2))\n * )(),\n * E.right(1)\n * )\n * assert.deepStrictEqual(\n * await pipe(\n * TE.left('a'),\n * TE.alt(() => TE.right(2))\n * )(),\n * E.right(2)\n * )\n * assert.deepStrictEqual(\n * await pipe(\n * TE.left('a'),\n * TE.alt(() => TE.left('b'))\n * )(),\n * E.left('b')\n * )\n * }\n *\n * test()\n *\n * @category Alt\n * @since 2.0.0\n */\n\nexport var alt = /*#__PURE__*/ET.alt(T.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 Pointed\n * @since 2.0.0\n */\n\nexport var of = right;\n/**\n * @category MonadTask\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 = 'TaskEither';\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport function getApplicativeTaskValidation(A, S) {\n var _ap = ap_(A, 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, _ap(fa));\n },\n of: of\n };\n}\n/**\n * @category instances\n * @since 2.7.0\n */\n\nexport function getAltTaskValidation(S) {\n var _alt2 = ET.altValidation(T.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_(T.Functor, C),\n separate: separate_(T.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_(T.Functor, F);\n\n var _filterMap = filterMap_(T.Functor, F);\n\n var _partition = partition_(T.Functor, F);\n\n var _partitionMap = partitionMap_(T.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.10.0\n */\n\nexport var ApplyPar = {\n URI: URI,\n map: _map,\n ap: _apPar\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.7.0\n */\n\nexport var ApplicativePar = {\n URI: URI,\n map: _map,\n ap: _apPar,\n of: of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var ApplySeq = {\n URI: URI,\n map: _map,\n ap: _apSeq\n};\n/**\n * @category instances\n * @since 2.7.0\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: _apPar,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _apPar,\n chain: _chain,\n of: of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var MonadIO = {\n URI: URI,\n map: _map,\n ap: _apPar,\n chain: _chain,\n of: of,\n fromIO: fromIO\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var MonadTask = {\n URI: URI,\n map: _map,\n ap: _apPar,\n chain: _chain,\n of: of,\n fromIO: fromIO,\n fromTask: fromTask\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var MonadThrow = {\n URI: URI,\n map: _map,\n ap: _apPar,\n chain: _chain,\n of: of,\n throwError: throwError\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.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/**\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 FromTask = {\n URI: URI,\n fromIO: fromIO,\n fromTask: fromTask\n};\n/**\n * @category combinators\n * @since 2.10.0\n */\n\nexport var fromTaskK = /*#__PURE__*/fromTaskK_(FromTask);\n/**\n * @category combinators\n * @since 2.10.0\n */\n\nexport var chainTaskK = /*#__PURE__*/chainTaskK_(FromTask, Chain);\n/**\n * @category combinators\n * @since 2.10.0\n */\n\nexport var chainFirstTaskK = /*#__PURE__*/chainFirstTaskK_(FromTask, Chain);\nexport function taskify(f) {\n return function () {\n var args = Array.prototype.slice.call(arguments);\n return function () {\n return new Promise(function (resolve) {\n var cbResolver = function cbResolver(e, r) {\n return e != null ? resolve(_.left(e)) : resolve(_.right(r));\n };\n\n f.apply(null, args.concat(cbResolver));\n });\n };\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), T.chain(function (e) {\n return pipe(release(a, e), chain(function () {\n return T.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(T.traverseReadonlyNonEmptyArrayWithIndex(f), T.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 `ReadonlyArray#traverseWithIndex(ApplicativeSeq)`.\n *\n * @since 2.11.0\n */\n\nexport var traverseReadonlyNonEmptyArrayWithIndexSeq = function traverseReadonlyNonEmptyArrayWithIndexSeq(f) {\n return function (as) {\n return function () {\n return _.tail(as).reduce(function (acc, a, i) {\n return acc.then(function (ebs) {\n return _.isLeft(ebs) ? acc : f(i + 1, a)().then(function (eb) {\n if (_.isLeft(eb)) {\n return eb;\n }\n\n ebs.right.push(eb.right);\n return ebs;\n });\n });\n }, f(0, _.head(as))().then(E.map(_.singleton)));\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 small, specific instances instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var taskEither = {\n URI: URI,\n bimap: _bimap,\n mapLeft: _mapLeft,\n map: _map,\n of: of,\n ap: _apPar,\n chain: _chain,\n alt: _alt,\n fromIO: fromIO,\n fromTask: fromTask,\n throwError: throwError\n};\n/**\n * Use small, specific instances instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport var taskEitherSeq = {\n URI: URI,\n bimap: _bimap,\n mapLeft: _mapLeft,\n map: _map,\n of: of,\n ap: _apSeq,\n chain: _chain,\n alt: _alt,\n fromIO: fromIO,\n fromTask: fromTask,\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_(ApplySeq);\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(ApplicativeSeq);\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_(T.ApplySeq)(E.getSemigroup(S));\n};\n/**\n * Use [`getApplicativeTaskValidation`](#getapplicativetaskvalidation) and [`getAltTaskValidation`](#getalttaskvalidation) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\n\nexport function getTaskValidation(SE) {\n var applicativeTaskValidation = getApplicativeTaskValidation(T.ApplicativePar, SE);\n var altTaskValidation = getAltTaskValidation(SE);\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n ap: applicativeTaskValidation.ap,\n of: of,\n chain: _chain,\n bimap: _bimap,\n mapLeft: _mapLeft,\n alt: altTaskValidation.alt,\n fromIO: fromIO,\n fromTask: fromTask,\n throwError: throwError\n };\n}","import * as _ from './internal';\nexport function wiltDefault(T, C) {\n return function (F) {\n var traverseF = T.traverse(F);\n return function (wa, f) {\n return F.map(traverseF(wa, f), C.separate);\n };\n };\n}\nexport function witherDefault(T, C) {\n return function (F) {\n var traverseF = T.traverse(F);\n return function (wa, f) {\n return F.map(traverseF(wa, f), C.compact);\n };\n };\n}\nexport function filterE(W) {\n return function (F) {\n var witherF = W.wither(F);\n return function (predicate) {\n return function (ga) {\n return witherF(ga, function (a) {\n return F.map(predicate(a), function (b) {\n return b ? _.some(a) : _.none;\n });\n });\n };\n };\n };\n}","// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var getBooleanAlgebra = function getBooleanAlgebra(B) {\n return function () {\n return {\n meet: function meet(x, y) {\n return function (a) {\n return B.meet(x(a), y(a));\n };\n },\n join: function join(x, y) {\n return function (a) {\n return B.join(x(a), y(a));\n };\n },\n zero: function zero() {\n return B.zero;\n },\n one: function one() {\n return B.one;\n },\n implies: function implies(x, y) {\n return function (a) {\n return B.implies(x(a), y(a));\n };\n },\n not: function not(x) {\n return function (a) {\n return B.not(x(a));\n };\n }\n };\n };\n};\n/**\n * Unary functions form a semigroup as long as you can provide a semigroup for the codomain.\n *\n * @example\n * import { Predicate, getSemigroup } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate = (n) => n <= 2\n * const g: Predicate = (n) => n >= 0\n *\n * const S1 = getSemigroup(B.SemigroupAll)()\n *\n * assert.deepStrictEqual(S1.concat(f, g)(1), true)\n * assert.deepStrictEqual(S1.concat(f, g)(3), false)\n *\n * const S2 = getSemigroup(B.SemigroupAny)()\n *\n * assert.deepStrictEqual(S2.concat(f, g)(1), true)\n * assert.deepStrictEqual(S2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\n\nexport var getSemigroup = function getSemigroup(S) {\n return function () {\n return {\n concat: function concat(f, g) {\n return function (a) {\n return S.concat(f(a), g(a));\n };\n }\n };\n };\n};\n/**\n * Unary functions form a monoid as long as you can provide a monoid for the codomain.\n *\n * @example\n * import { Predicate } from 'fp-ts/Predicate'\n * import { getMonoid } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate = (n) => n <= 2\n * const g: Predicate = (n) => n >= 0\n *\n * const M1 = getMonoid(B.MonoidAll)()\n *\n * assert.deepStrictEqual(M1.concat(f, g)(1), true)\n * assert.deepStrictEqual(M1.concat(f, g)(3), false)\n *\n * const M2 = getMonoid(B.MonoidAny)()\n *\n * assert.deepStrictEqual(M2.concat(f, g)(1), true)\n * assert.deepStrictEqual(M2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\n\nexport var getMonoid = function getMonoid(M) {\n var getSemigroupM = getSemigroup(M);\n return function () {\n return {\n concat: getSemigroupM().concat,\n empty: function empty() {\n return M.empty;\n }\n };\n };\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var getSemiring = function getSemiring(S) {\n return {\n add: function add(f, g) {\n return function (x) {\n return S.add(f(x), g(x));\n };\n },\n zero: function zero() {\n return S.zero;\n },\n mul: function mul(f, g) {\n return function (x) {\n return S.mul(f(x), g(x));\n };\n },\n one: function one() {\n return S.one;\n }\n };\n};\n/**\n * @category instances\n * @since 2.10.0\n */\n\nexport var getRing = function getRing(R) {\n var S = getSemiring(R);\n return {\n add: S.add,\n mul: S.mul,\n one: S.one,\n zero: S.zero,\n sub: function sub(f, g) {\n return function (x) {\n return R.sub(f(x), g(x));\n };\n }\n };\n}; // -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.11.0\n */\n\nexport var apply = function apply(a) {\n return function (f) {\n return f(a);\n };\n};\n/**\n * @since 2.0.0\n */\n\nexport function identity(a) {\n return a;\n}\n/**\n * @since 2.0.0\n */\n\nexport var unsafeCoerce = identity;\n/**\n * @since 2.0.0\n */\n\nexport function constant(a) {\n return function () {\n return a;\n };\n}\n/**\n * A thunk that returns always `true`.\n *\n * @since 2.0.0\n */\n\nexport var constTrue = /*#__PURE__*/constant(true);\n/**\n * A thunk that returns always `false`.\n *\n * @since 2.0.0\n */\n\nexport var constFalse = /*#__PURE__*/constant(false);\n/**\n * A thunk that returns always `null`.\n *\n * @since 2.0.0\n */\n\nexport var constNull = /*#__PURE__*/constant(null);\n/**\n * A thunk that returns always `undefined`.\n *\n * @since 2.0.0\n */\n\nexport var constUndefined = /*#__PURE__*/constant(undefined);\n/**\n * A thunk that returns always `void`.\n *\n * @since 2.0.0\n */\n\nexport var constVoid = constUndefined;\n/**\n * Flips the order of the arguments of a function of two arguments.\n *\n * @since 2.0.0\n */\n\nexport function flip(f) {\n return function (b, a) {\n return f(a, b);\n };\n}\nexport function flow(ab, bc, cd, de, ef, fg, gh, hi, ij) {\n switch (arguments.length) {\n case 1:\n return ab;\n\n case 2:\n return function () {\n return bc(ab.apply(this, arguments));\n };\n\n case 3:\n return function () {\n return cd(bc(ab.apply(this, arguments)));\n };\n\n case 4:\n return function () {\n return de(cd(bc(ab.apply(this, arguments))));\n };\n\n case 5:\n return function () {\n return ef(de(cd(bc(ab.apply(this, arguments)))));\n };\n\n case 6:\n return function () {\n return fg(ef(de(cd(bc(ab.apply(this, arguments))))));\n };\n\n case 7:\n return function () {\n return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));\n };\n\n case 8:\n return function () {\n return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));\n };\n\n case 9:\n return function () {\n return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));\n };\n }\n\n return;\n}\n/**\n * @since 2.0.0\n */\n\nexport function tuple() {\n var t = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n t[_i] = arguments[_i];\n }\n\n return t;\n}\n/**\n * @since 2.0.0\n */\n\nexport function increment(n) {\n return n + 1;\n}\n/**\n * @since 2.0.0\n */\n\nexport function decrement(n) {\n return n - 1;\n}\n/**\n * @since 2.0.0\n */\n\nexport function absurd(_) {\n throw new Error('Called `absurd` function which should be uncallable');\n}\n/**\n * Creates a tupled version of this function: instead of `n` arguments, it accepts a single tuple argument.\n *\n * @example\n * import { tupled } from 'fp-ts/function'\n *\n * const add = tupled((x: number, y: number): number => x + y)\n *\n * assert.strictEqual(add([1, 2]), 3)\n *\n * @since 2.4.0\n */\n\nexport function tupled(f) {\n return function (a) {\n return f.apply(void 0, a);\n };\n}\n/**\n * Inverse function of `tupled`\n *\n * @since 2.4.0\n */\n\nexport function untupled(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 f(a);\n };\n}\nexport function pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {\n switch (arguments.length) {\n case 1:\n return a;\n\n case 2:\n return ab(a);\n\n case 3:\n return bc(ab(a));\n\n case 4:\n return cd(bc(ab(a)));\n\n case 5:\n return de(cd(bc(ab(a))));\n\n case 6:\n return ef(de(cd(bc(ab(a)))));\n\n case 7:\n return fg(ef(de(cd(bc(ab(a))))));\n\n case 8:\n return gh(fg(ef(de(cd(bc(ab(a)))))));\n\n case 9:\n return hi(gh(fg(ef(de(cd(bc(ab(a))))))));\n\n default:\n var ret = arguments[0];\n\n for (var i = 1; i < arguments.length; i++) {\n ret = arguments[i](ret);\n }\n\n return ret;\n }\n}\n/**\n * Type hole simulation\n *\n * @since 2.7.0\n */\n\nexport var hole = absurd;\n/**\n * @since 2.11.0\n */\n\nexport var SK = function SK(_, b) {\n return b;\n};\n/**\n * Use `Predicate` module instead.\n *\n * @since 2.0.0\n * @deprecated\n */\n\nexport function not(predicate) {\n return function (a) {\n return !predicate(a);\n };\n}\n/**\n * Use `Endomorphism` module instead.\n *\n * @category instances\n * @since 2.10.0\n * @deprecated\n */\n\nexport var getEndomorphismMonoid = function getEndomorphismMonoid() {\n return {\n concat: function concat(first, second) {\n return flow(first, second);\n },\n empty: identity\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// Option\n// -------------------------------------------------------------------------------------\n\n/** @internal */\n\n\nexport var isNone = function isNone(fa) {\n return fa._tag === 'None';\n};\n/** @internal */\n\nexport var isSome = function isSome(fa) {\n return fa._tag === 'Some';\n};\n/** @internal */\n\nexport var none = {\n _tag: 'None'\n};\n/** @internal */\n\nexport var some = function some(a) {\n return {\n _tag: 'Some',\n value: a\n };\n}; // -------------------------------------------------------------------------------------\n// Either\n// -------------------------------------------------------------------------------------\n\n/** @internal */\n\nexport var isLeft = function isLeft(ma) {\n return ma._tag === 'Left';\n};\n/** @internal */\n\nexport var isRight = function isRight(ma) {\n return ma._tag === 'Right';\n};\n/** @internal */\n\nexport var left = function left(e) {\n return {\n _tag: 'Left',\n left: e\n };\n};\n/** @internal */\n\nexport var right = function right(a) {\n return {\n _tag: 'Right',\n right: a\n };\n}; // -------------------------------------------------------------------------------------\n// ReadonlyNonEmptyArray\n// -------------------------------------------------------------------------------------\n\n/** @internal */\n\nexport var singleton = function singleton(a) {\n return [a];\n};\n/** @internal */\n\nexport var isNonEmpty = function isNonEmpty(as) {\n return as.length > 0;\n};\n/** @internal */\n\nexport var head = function head(as) {\n return as[0];\n};\n/** @internal */\n\nexport var tail = function tail(as) {\n return as.slice(1);\n}; // -------------------------------------------------------------------------------------\n// empty\n// -------------------------------------------------------------------------------------\n\n/** @internal */\n\nexport var emptyReadonlyArray = [];\n/** @internal */\n\nexport var emptyRecord = {}; // -------------------------------------------------------------------------------------\n// Record\n// -------------------------------------------------------------------------------------\n\n/** @internal */\n\nexport var has = Object.prototype.hasOwnProperty; // -------------------------------------------------------------------------------------\n// NonEmptyArray\n// -------------------------------------------------------------------------------------\n\n/** @internal */\n\nexport var fromReadonlyNonEmptyArray = function fromReadonlyNonEmptyArray(as) {\n return __spreadArray([as[0]], as.slice(1));\n};","import { identity, pipe as pipeFromFunctionModule } from './function';\n\nvar isFunctor = function isFunctor(I) {\n return typeof I.map === 'function';\n};\n\nvar isContravariant = function isContravariant(I) {\n return typeof I.contramap === 'function';\n};\n\nvar isFunctorWithIndex = function isFunctorWithIndex(I) {\n return typeof I.mapWithIndex === 'function';\n};\n\nvar isApply = function isApply(I) {\n return typeof I.ap === 'function';\n};\n\nvar isChain = function isChain(I) {\n return typeof I.chain === 'function';\n};\n\nvar isBifunctor = function isBifunctor(I) {\n return typeof I.bimap === 'function';\n};\n\nvar isExtend = function isExtend(I) {\n return typeof I.extend === 'function';\n};\n\nvar isFoldable = function isFoldable(I) {\n return typeof I.reduce === 'function';\n};\n\nvar isFoldableWithIndex = function isFoldableWithIndex(I) {\n return typeof I.reduceWithIndex === 'function';\n};\n\nvar isAlt = function isAlt(I) {\n return typeof I.alt === 'function';\n};\n\nvar isCompactable = function isCompactable(I) {\n return typeof I.compact === 'function';\n};\n\nvar isFilterable = function isFilterable(I) {\n return typeof I.filter === 'function';\n};\n\nvar isFilterableWithIndex = function isFilterableWithIndex(I) {\n return typeof I.filterWithIndex === 'function';\n};\n\nvar isProfunctor = function isProfunctor(I) {\n return typeof I.promap === 'function';\n};\n\nvar isSemigroupoid = function isSemigroupoid(I) {\n return typeof I.compose === 'function';\n};\n\nvar isMonadThrow = function isMonadThrow(I) {\n return typeof I.throwError === 'function';\n};\n/** @deprecated */\n\n\nexport function pipeable(I) {\n var r = {};\n\n if (isFunctor(I)) {\n var map = function map(f) {\n return function (fa) {\n return I.map(fa, f);\n };\n };\n\n r.map = map;\n }\n\n if (isContravariant(I)) {\n var contramap = function contramap(f) {\n return function (fa) {\n return I.contramap(fa, f);\n };\n };\n\n r.contramap = contramap;\n }\n\n if (isFunctorWithIndex(I)) {\n var mapWithIndex = function mapWithIndex(f) {\n return function (fa) {\n return I.mapWithIndex(fa, f);\n };\n };\n\n r.mapWithIndex = mapWithIndex;\n }\n\n if (isApply(I)) {\n var ap = function ap(fa) {\n return function (fab) {\n return I.ap(fab, fa);\n };\n };\n\n var apFirst = function apFirst(fb) {\n return function (fa) {\n return I.ap(I.map(fa, function (a) {\n return function () {\n return a;\n };\n }), fb);\n };\n };\n\n r.ap = ap;\n r.apFirst = apFirst;\n\n r.apSecond = function (fb) {\n return function (fa) {\n return I.ap(I.map(fa, function () {\n return function (b) {\n return b;\n };\n }), fb);\n };\n };\n }\n\n if (isChain(I)) {\n var chain = function chain(f) {\n return function (ma) {\n return I.chain(ma, f);\n };\n };\n\n var chainFirst = function chainFirst(f) {\n return function (ma) {\n return I.chain(ma, function (a) {\n return I.map(f(a), function () {\n return a;\n });\n });\n };\n };\n\n var flatten = function flatten(mma) {\n return I.chain(mma, identity);\n };\n\n r.chain = chain;\n r.chainFirst = chainFirst;\n r.flatten = flatten;\n }\n\n if (isBifunctor(I)) {\n var bimap = function bimap(f, g) {\n return function (fa) {\n return I.bimap(fa, f, g);\n };\n };\n\n var mapLeft = function mapLeft(f) {\n return function (fa) {\n return I.mapLeft(fa, f);\n };\n };\n\n r.bimap = bimap;\n r.mapLeft = mapLeft;\n }\n\n if (isExtend(I)) {\n var extend = function extend(f) {\n return function (wa) {\n return I.extend(wa, f);\n };\n };\n\n var duplicate = function duplicate(wa) {\n return I.extend(wa, identity);\n };\n\n r.extend = extend;\n r.duplicate = duplicate;\n }\n\n if (isFoldable(I)) {\n var reduce = function reduce(b, f) {\n return function (fa) {\n return I.reduce(fa, b, f);\n };\n };\n\n var foldMap = function foldMap(M) {\n var foldMapM = I.foldMap(M);\n return function (f) {\n return function (fa) {\n return foldMapM(fa, f);\n };\n };\n };\n\n var reduceRight = function reduceRight(b, f) {\n return function (fa) {\n return I.reduceRight(fa, b, f);\n };\n };\n\n r.reduce = reduce;\n r.foldMap = foldMap;\n r.reduceRight = reduceRight;\n }\n\n if (isFoldableWithIndex(I)) {\n var reduceWithIndex = function reduceWithIndex(b, f) {\n return function (fa) {\n return I.reduceWithIndex(fa, b, f);\n };\n };\n\n var foldMapWithIndex = function foldMapWithIndex(M) {\n var foldMapM = I.foldMapWithIndex(M);\n return function (f) {\n return function (fa) {\n return foldMapM(fa, f);\n };\n };\n };\n\n var reduceRightWithIndex = function reduceRightWithIndex(b, f) {\n return function (fa) {\n return I.reduceRightWithIndex(fa, b, f);\n };\n };\n\n r.reduceWithIndex = reduceWithIndex;\n r.foldMapWithIndex = foldMapWithIndex;\n r.reduceRightWithIndex = reduceRightWithIndex;\n }\n\n if (isAlt(I)) {\n var alt = function alt(that) {\n return function (fa) {\n return I.alt(fa, that);\n };\n };\n\n r.alt = alt;\n }\n\n if (isCompactable(I)) {\n r.compact = I.compact;\n r.separate = I.separate;\n }\n\n if (isFilterable(I)) {\n var filter = function filter(predicate) {\n return function (fa) {\n return I.filter(fa, predicate);\n };\n };\n\n var filterMap = function filterMap(f) {\n return function (fa) {\n return I.filterMap(fa, f);\n };\n };\n\n var partition = function partition(predicate) {\n return function (fa) {\n return I.partition(fa, predicate);\n };\n };\n\n var partitionMap = function partitionMap(f) {\n return function (fa) {\n return I.partitionMap(fa, f);\n };\n };\n\n r.filter = filter;\n r.filterMap = filterMap;\n r.partition = partition;\n r.partitionMap = partitionMap;\n }\n\n if (isFilterableWithIndex(I)) {\n var filterWithIndex = function filterWithIndex(predicateWithIndex) {\n return function (fa) {\n return I.filterWithIndex(fa, predicateWithIndex);\n };\n };\n\n var filterMapWithIndex = function filterMapWithIndex(f) {\n return function (fa) {\n return I.filterMapWithIndex(fa, f);\n };\n };\n\n var partitionWithIndex = function partitionWithIndex(predicateWithIndex) {\n return function (fa) {\n return I.partitionWithIndex(fa, predicateWithIndex);\n };\n };\n\n var partitionMapWithIndex = function partitionMapWithIndex(f) {\n return function (fa) {\n return I.partitionMapWithIndex(fa, f);\n };\n };\n\n r.filterWithIndex = filterWithIndex;\n r.filterMapWithIndex = filterMapWithIndex;\n r.partitionWithIndex = partitionWithIndex;\n r.partitionMapWithIndex = partitionMapWithIndex;\n }\n\n if (isProfunctor(I)) {\n var promap = function promap(f, g) {\n return function (fa) {\n return I.promap(fa, f, g);\n };\n };\n\n r.promap = promap;\n }\n\n if (isSemigroupoid(I)) {\n var compose = function compose(that) {\n return function (fa) {\n return I.compose(fa, that);\n };\n };\n\n r.compose = compose;\n }\n\n if (isMonadThrow(I)) {\n var fromOption = function fromOption(onNone) {\n return function (ma) {\n return ma._tag === 'None' ? I.throwError(onNone()) : I.of(ma.value);\n };\n };\n\n var fromEither = function fromEither(ma) {\n return ma._tag === 'Left' ? I.throwError(ma.left) : I.of(ma.right);\n };\n\n var fromPredicate = function fromPredicate(predicate, onFalse) {\n return function (a) {\n return predicate(a) ? I.of(a) : I.throwError(onFalse(a));\n };\n };\n\n var filterOrElse = function filterOrElse(predicate, onFalse) {\n return function (ma) {\n return I.chain(ma, function (a) {\n return predicate(a) ? I.of(a) : I.throwError(onFalse(a));\n });\n };\n };\n\n r.fromOption = fromOption;\n r.fromEither = fromEither;\n r.fromPredicate = fromPredicate;\n r.filterOrElse = filterOrElse;\n }\n\n return r;\n}\n/**\n * Use [`pipe`](https://gcanti.github.io/fp-ts/modules/function.ts.html#flow) from `function` module instead.\n *\n * @since 2.0.0\n * @deprecated\n */\n\nexport var pipe = pipeFromFunctionModule;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sequenceS = exports.sequenceT = exports.getApplySemigroup = exports.apS = exports.apSecond = exports.apFirst = exports.ap = void 0;\n\nvar function_1 = require(\"./function\");\n\nfunction ap(F, G) {\n return function (fa) {\n return function (fab) {\n return F.ap(F.map(fab, function (gab) {\n return function (ga) {\n return G.ap(gab, ga);\n };\n }), fa);\n };\n };\n}\n\nexports.ap = ap;\n\nfunction apFirst(A) {\n return function (second) {\n return function (first) {\n return A.ap(A.map(first, function (a) {\n return function () {\n return a;\n };\n }), second);\n };\n };\n}\n\nexports.apFirst = apFirst;\n\nfunction apSecond(A) {\n return function (second) {\n return function (first) {\n return A.ap(A.map(first, function () {\n return function (b) {\n return b;\n };\n }), second);\n };\n };\n}\n\nexports.apSecond = apSecond;\n\nfunction apS(F) {\n return function (name, fb) {\n return function (fa) {\n return F.ap(F.map(fa, function (a) {\n return function (b) {\n var _a;\n\n return Object.assign({}, a, (_a = {}, _a[name] = b, _a));\n };\n }), fb);\n };\n };\n}\n\nexports.apS = apS;\n\nfunction getApplySemigroup(F) {\n return function (S) {\n return {\n concat: function concat(first, second) {\n return F.ap(F.map(first, function (x) {\n return function (y) {\n return S.concat(x, y);\n };\n }), second);\n }\n };\n };\n}\n\nexports.getApplySemigroup = getApplySemigroup;\n\nfunction curried(f, n, acc) {\n return function (x) {\n var combined = Array(acc.length + 1);\n\n for (var i = 0; i < acc.length; i++) {\n combined[i] = acc[i];\n }\n\n combined[acc.length] = x;\n return n === 0 ? f.apply(null, combined) : curried(f, n - 1, combined);\n };\n}\n\nvar tupleConstructors = {\n 1: function _(a) {\n return [a];\n },\n 2: function _(a) {\n return function (b) {\n return [a, b];\n };\n },\n 3: function _(a) {\n return function (b) {\n return function (c) {\n return [a, b, c];\n };\n };\n },\n 4: function _(a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return [a, b, c, d];\n };\n };\n };\n },\n 5: function _(a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n return [a, b, c, d, e];\n };\n };\n };\n };\n }\n};\n\nfunction getTupleConstructor(len) {\n if (!tupleConstructors.hasOwnProperty(len)) {\n tupleConstructors[len] = curried(function_1.tuple, len - 1, []);\n }\n\n return tupleConstructors[len];\n}\n\nfunction sequenceT(F) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var len = args.length;\n var f = getTupleConstructor(len);\n var fas = F.map(args[0], f);\n\n for (var i = 1; i < len; i++) {\n fas = F.ap(fas, args[i]);\n }\n\n return fas;\n };\n}\n\nexports.sequenceT = sequenceT;\n\nfunction getRecordConstructor(keys) {\n var len = keys.length;\n\n switch (len) {\n case 1:\n return function (a) {\n var _a;\n\n return _a = {}, _a[keys[0]] = a, _a;\n };\n\n case 2:\n return function (a) {\n return function (b) {\n var _a;\n\n return _a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a;\n };\n };\n\n case 3:\n return function (a) {\n return function (b) {\n return function (c) {\n var _a;\n\n return _a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a[keys[2]] = c, _a;\n };\n };\n };\n\n case 4:\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n var _a;\n\n return _a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a[keys[2]] = c, _a[keys[3]] = d, _a;\n };\n };\n };\n };\n\n case 5:\n return function (a) {\n return function (b) {\n return function (c) {\n return function (d) {\n return function (e) {\n var _a;\n\n return _a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a[keys[2]] = c, _a[keys[3]] = d, _a[keys[4]] = e, _a;\n };\n };\n };\n };\n };\n\n default:\n return curried(function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var r = {};\n\n for (var i = 0; i < len; i++) {\n r[keys[i]] = args[i];\n }\n\n return r;\n }, len - 1, []);\n }\n}\n\nfunction sequenceS(F) {\n return function (r) {\n var keys = Object.keys(r);\n var len = keys.length;\n var f = getRecordConstructor(keys);\n var fr = F.map(r[keys[0]], f);\n\n for (var i = 1; i < len; i++) {\n fr = F.ap(fr, r[keys[i]]);\n }\n\n return fr;\n };\n}\n\nexports.sequenceS = sequenceS;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getEndomorphismMonoid = exports.not = exports.SK = exports.hole = exports.pipe = exports.untupled = exports.tupled = exports.absurd = exports.decrement = exports.increment = exports.tuple = exports.flow = exports.flip = exports.constVoid = exports.constUndefined = exports.constNull = exports.constFalse = exports.constTrue = exports.constant = exports.unsafeCoerce = exports.identity = exports.apply = exports.getRing = exports.getSemiring = exports.getMonoid = exports.getSemigroup = exports.getBooleanAlgebra = void 0; // -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n\n/**\n * @category instances\n * @since 2.10.0\n */\n\nvar getBooleanAlgebra = function getBooleanAlgebra(B) {\n return function () {\n return {\n meet: function meet(x, y) {\n return function (a) {\n return B.meet(x(a), y(a));\n };\n },\n join: function join(x, y) {\n return function (a) {\n return B.join(x(a), y(a));\n };\n },\n zero: function zero() {\n return B.zero;\n },\n one: function one() {\n return B.one;\n },\n implies: function implies(x, y) {\n return function (a) {\n return B.implies(x(a), y(a));\n };\n },\n not: function not(x) {\n return function (a) {\n return B.not(x(a));\n };\n }\n };\n };\n};\n\nexports.getBooleanAlgebra = getBooleanAlgebra;\n/**\n * Unary functions form a semigroup as long as you can provide a semigroup for the codomain.\n *\n * @example\n * import { Predicate, getSemigroup } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate = (n) => n <= 2\n * const g: Predicate = (n) => n >= 0\n *\n * const S1 = getSemigroup(B.SemigroupAll)()\n *\n * assert.deepStrictEqual(S1.concat(f, g)(1), true)\n * assert.deepStrictEqual(S1.concat(f, g)(3), false)\n *\n * const S2 = getSemigroup(B.SemigroupAny)()\n *\n * assert.deepStrictEqual(S2.concat(f, g)(1), true)\n * assert.deepStrictEqual(S2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\n\nvar getSemigroup = function getSemigroup(S) {\n return function () {\n return {\n concat: function concat(f, g) {\n return function (a) {\n return S.concat(f(a), g(a));\n };\n }\n };\n };\n};\n\nexports.getSemigroup = getSemigroup;\n/**\n * Unary functions form a monoid as long as you can provide a monoid for the codomain.\n *\n * @example\n * import { Predicate } from 'fp-ts/Predicate'\n * import { getMonoid } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate = (n) => n <= 2\n * const g: Predicate = (n) => n >= 0\n *\n * const M1 = getMonoid(B.MonoidAll)()\n *\n * assert.deepStrictEqual(M1.concat(f, g)(1), true)\n * assert.deepStrictEqual(M1.concat(f, g)(3), false)\n *\n * const M2 = getMonoid(B.MonoidAny)()\n *\n * assert.deepStrictEqual(M2.concat(f, g)(1), true)\n * assert.deepStrictEqual(M2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\n\nvar getMonoid = function getMonoid(M) {\n var getSemigroupM = exports.getSemigroup(M);\n return function () {\n return {\n concat: getSemigroupM().concat,\n empty: function empty() {\n return M.empty;\n }\n };\n };\n};\n\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.10.0\n */\n\nvar getSemiring = function getSemiring(S) {\n return {\n add: function add(f, g) {\n return function (x) {\n return S.add(f(x), g(x));\n };\n },\n zero: function zero() {\n return S.zero;\n },\n mul: function mul(f, g) {\n return function (x) {\n return S.mul(f(x), g(x));\n };\n },\n one: function one() {\n return S.one;\n }\n };\n};\n\nexports.getSemiring = getSemiring;\n/**\n * @category instances\n * @since 2.10.0\n */\n\nvar getRing = function getRing(R) {\n var S = exports.getSemiring(R);\n return {\n add: S.add,\n mul: S.mul,\n one: S.one,\n zero: S.zero,\n sub: function sub(f, g) {\n return function (x) {\n return R.sub(f(x), g(x));\n };\n }\n };\n};\n\nexports.getRing = getRing; // -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 2.11.0\n */\n\nvar apply = function apply(a) {\n return function (f) {\n return f(a);\n };\n};\n\nexports.apply = apply;\n/**\n * @since 2.0.0\n */\n\nfunction identity(a) {\n return a;\n}\n\nexports.identity = identity;\n/**\n * @since 2.0.0\n */\n\nexports.unsafeCoerce = identity;\n/**\n * @since 2.0.0\n */\n\nfunction constant(a) {\n return function () {\n return a;\n };\n}\n\nexports.constant = constant;\n/**\n * A thunk that returns always `true`.\n *\n * @since 2.0.0\n */\n\nexports.constTrue = /*#__PURE__*/constant(true);\n/**\n * A thunk that returns always `false`.\n *\n * @since 2.0.0\n */\n\nexports.constFalse = /*#__PURE__*/constant(false);\n/**\n * A thunk that returns always `null`.\n *\n * @since 2.0.0\n */\n\nexports.constNull = /*#__PURE__*/constant(null);\n/**\n * A thunk that returns always `undefined`.\n *\n * @since 2.0.0\n */\n\nexports.constUndefined = /*#__PURE__*/constant(undefined);\n/**\n * A thunk that returns always `void`.\n *\n * @since 2.0.0\n */\n\nexports.constVoid = exports.constUndefined;\n/**\n * Flips the order of the arguments of a function of two arguments.\n *\n * @since 2.0.0\n */\n\nfunction flip(f) {\n return function (b, a) {\n return f(a, b);\n };\n}\n\nexports.flip = flip;\n\nfunction flow(ab, bc, cd, de, ef, fg, gh, hi, ij) {\n switch (arguments.length) {\n case 1:\n return ab;\n\n case 2:\n return function () {\n return bc(ab.apply(this, arguments));\n };\n\n case 3:\n return function () {\n return cd(bc(ab.apply(this, arguments)));\n };\n\n case 4:\n return function () {\n return de(cd(bc(ab.apply(this, arguments))));\n };\n\n case 5:\n return function () {\n return ef(de(cd(bc(ab.apply(this, arguments)))));\n };\n\n case 6:\n return function () {\n return fg(ef(de(cd(bc(ab.apply(this, arguments))))));\n };\n\n case 7:\n return function () {\n return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));\n };\n\n case 8:\n return function () {\n return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));\n };\n\n case 9:\n return function () {\n return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));\n };\n }\n\n return;\n}\n\nexports.flow = flow;\n/**\n * @since 2.0.0\n */\n\nfunction tuple() {\n var t = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n t[_i] = arguments[_i];\n }\n\n return t;\n}\n\nexports.tuple = tuple;\n/**\n * @since 2.0.0\n */\n\nfunction increment(n) {\n return n + 1;\n}\n\nexports.increment = increment;\n/**\n * @since 2.0.0\n */\n\nfunction decrement(n) {\n return n - 1;\n}\n\nexports.decrement = decrement;\n/**\n * @since 2.0.0\n */\n\nfunction absurd(_) {\n throw new Error('Called `absurd` function which should be uncallable');\n}\n\nexports.absurd = absurd;\n/**\n * Creates a tupled version of this function: instead of `n` arguments, it accepts a single tuple argument.\n *\n * @example\n * import { tupled } from 'fp-ts/function'\n *\n * const add = tupled((x: number, y: number): number => x + y)\n *\n * assert.strictEqual(add([1, 2]), 3)\n *\n * @since 2.4.0\n */\n\nfunction tupled(f) {\n return function (a) {\n return f.apply(void 0, a);\n };\n}\n\nexports.tupled = tupled;\n/**\n * Inverse function of `tupled`\n *\n * @since 2.4.0\n */\n\nfunction untupled(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 f(a);\n };\n}\n\nexports.untupled = untupled;\n\nfunction pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {\n switch (arguments.length) {\n case 1:\n return a;\n\n case 2:\n return ab(a);\n\n case 3:\n return bc(ab(a));\n\n case 4:\n return cd(bc(ab(a)));\n\n case 5:\n return de(cd(bc(ab(a))));\n\n case 6:\n return ef(de(cd(bc(ab(a)))));\n\n case 7:\n return fg(ef(de(cd(bc(ab(a))))));\n\n case 8:\n return gh(fg(ef(de(cd(bc(ab(a)))))));\n\n case 9:\n return hi(gh(fg(ef(de(cd(bc(ab(a))))))));\n\n default:\n var ret = arguments[0];\n\n for (var i = 1; i < arguments.length; i++) {\n ret = arguments[i](ret);\n }\n\n return ret;\n }\n}\n\nexports.pipe = pipe;\n/**\n * Type hole simulation\n *\n * @since 2.7.0\n */\n\nexports.hole = absurd;\n/**\n * @since 2.11.0\n */\n\nvar SK = function SK(_, b) {\n return b;\n};\n\nexports.SK = SK;\n/**\n * Use `Predicate` module instead.\n *\n * @since 2.0.0\n * @deprecated\n */\n\nfunction not(predicate) {\n return function (a) {\n return !predicate(a);\n };\n}\n\nexports.not = not;\n/**\n * Use `Endomorphism` module instead.\n *\n * @category instances\n * @since 2.10.0\n * @deprecated\n */\n\nvar getEndomorphismMonoid = function getEndomorphismMonoid() {\n return {\n concat: function concat(first, second) {\n return flow(first, second);\n },\n empty: identity\n };\n};\n\nexports.getEndomorphismMonoid = getEndomorphismMonoid;","\"use strict\";\n\nmodule.exports = Object.assign;","var __extends = this && this.__extends || function () {\n var _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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (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}();\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\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\nvar __spreadArrays = this && this.__spreadArrays || function () {\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/**\n * @since 1.0.0\n */\n\n\nimport { isLeft, left, right } from 'fp-ts/es6/Either';\n/**\n * @category Decode error\n * @since 1.0.0\n */\n\nexport var failures = left;\n/**\n * @category Decode error\n * @since 1.0.0\n */\n\nexport var failure = function failure(value, context, message) {\n return failures([{\n value: value,\n context: context,\n message: message\n }]);\n};\n/**\n * @category Decode error\n * @since 1.0.0\n */\n\nexport var success = right;\n/**\n * @category Codec\n * @since 1.0.0\n */\n\nvar Type =\n/** @class */\nfunction () {\n function Type(\n /** a unique name for this codec */\n name,\n /** a custom type guard */\n is,\n /** succeeds if a value of type I can be decoded to a value of type A */\n validate,\n /** converts a value of type A to a value of type O */\n encode) {\n this.name = name;\n this.is = is;\n this.validate = validate;\n this.encode = encode;\n this.decode = this.decode.bind(this);\n }\n /**\n * @since 1.0.0\n */\n\n\n Type.prototype.pipe = function (ab, name) {\n var _this = this;\n\n if (name === void 0) {\n name = \"pipe(\" + this.name + \", \" + ab.name + \")\";\n }\n\n return new Type(name, ab.is, function (i, c) {\n var e = _this.validate(i, c);\n\n if (isLeft(e)) {\n return e;\n }\n\n return ab.validate(e.right, c);\n }, this.encode === identity && ab.encode === identity ? identity : function (b) {\n return _this.encode(ab.encode(b));\n });\n };\n /**\n * @since 1.0.0\n */\n\n\n Type.prototype.asDecoder = function () {\n return this;\n };\n /**\n * @since 1.0.0\n */\n\n\n Type.prototype.asEncoder = function () {\n return this;\n };\n /**\n * a version of `validate` with a default context\n * @since 1.0.0\n */\n\n\n Type.prototype.decode = function (i) {\n return this.validate(i, [{\n key: '',\n type: this,\n actual: i\n }]);\n };\n\n return Type;\n}();\n\nexport { Type }; // -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 1.0.0\n */\n\nexport var identity = function identity(a) {\n return a;\n};\n/**\n * @since 1.0.0\n */\n\nexport function getFunctionName(f) {\n return f.displayName || f.name || \"\";\n}\n/**\n * @since 1.0.0\n */\n\nexport function getContextEntry(key, decoder) {\n return {\n key: key,\n type: decoder\n };\n}\n/**\n * @since 1.0.0\n */\n\nexport function appendContext(c, key, decoder, actual) {\n var len = c.length;\n var r = Array(len + 1);\n\n for (var i = 0; i < len; i++) {\n r[i] = c[i];\n }\n\n r[len] = {\n key: key,\n type: decoder,\n actual: actual\n };\n return r;\n}\n\nfunction pushAll(xs, ys) {\n var l = ys.length;\n\n for (var i = 0; i < l; i++) {\n xs.push(ys[i]);\n }\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction getNameFromProps(props) {\n return Object.keys(props).map(function (k) {\n return k + \": \" + props[k].name;\n }).join(', ');\n}\n\nfunction useIdentity(codecs) {\n for (var i = 0; i < codecs.length; i++) {\n if (codecs[i].encode !== identity) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getInterfaceTypeName(props) {\n return \"{ \" + getNameFromProps(props) + \" }\";\n}\n\nfunction getPartialTypeName(inner) {\n return \"Partial<\" + inner + \">\";\n}\n\nfunction enumerableRecord(keys, domain, codomain, name) {\n if (name === void 0) {\n name = \"{ [K in \" + domain.name + \"]: \" + codomain.name + \" }\";\n }\n\n var len = keys.length;\n return new DictionaryType(name, function (u) {\n return UnknownRecord.is(u) && keys.every(function (k) {\n return codomain.is(u[k]);\n });\n }, function (u, c) {\n var e = UnknownRecord.validate(u, c);\n\n if (isLeft(e)) {\n return e;\n }\n\n var o = e.right;\n var a = {};\n var errors = [];\n var changed = false;\n\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ok = o[k];\n var codomainResult = codomain.validate(ok, appendContext(c, k, codomain, ok));\n\n if (isLeft(codomainResult)) {\n pushAll(errors, codomainResult.left);\n } else {\n var vok = codomainResult.right;\n changed = changed || vok !== ok;\n a[k] = vok;\n }\n }\n\n return errors.length > 0 ? failures(errors) : success(changed || Object.keys(o).length !== len ? a : o);\n }, codomain.encode === identity ? identity : function (a) {\n var s = {};\n\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n s[k] = codomain.encode(a[k]);\n }\n\n return s;\n }, domain, codomain);\n}\n/**\n * @internal\n */\n\n\nexport function getDomainKeys(domain) {\n var _a;\n\n if (isLiteralC(domain)) {\n var literal_1 = domain.value;\n\n if (string.is(literal_1)) {\n return _a = {}, _a[literal_1] = null, _a;\n }\n } else if (isKeyofC(domain)) {\n return domain.keys;\n } else if (isUnionC(domain)) {\n var keys = domain.types.map(function (type) {\n return getDomainKeys(type);\n });\n return keys.some(undefinedType.is) ? undefined : Object.assign.apply(Object, __spreadArrays([{}], keys));\n }\n\n return undefined;\n}\n\nfunction nonEnumerableRecord(domain, codomain, name) {\n if (name === void 0) {\n name = \"{ [K in \" + domain.name + \"]: \" + codomain.name + \" }\";\n }\n\n return new DictionaryType(name, function (u) {\n if (UnknownRecord.is(u)) {\n return Object.keys(u).every(function (k) {\n return domain.is(k) && codomain.is(u[k]);\n });\n }\n\n return isAnyC(codomain) && Array.isArray(u);\n }, function (u, c) {\n if (UnknownRecord.is(u)) {\n var a = {};\n var errors = [];\n var keys = Object.keys(u);\n var len = keys.length;\n var changed = false;\n\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ok = u[k];\n var domainResult = domain.validate(k, appendContext(c, k, domain, k));\n\n if (isLeft(domainResult)) {\n pushAll(errors, domainResult.left);\n } else {\n var vk = domainResult.right;\n changed = changed || vk !== k;\n k = vk;\n var codomainResult = codomain.validate(ok, appendContext(c, k, codomain, ok));\n\n if (isLeft(codomainResult)) {\n pushAll(errors, codomainResult.left);\n } else {\n var vok = codomainResult.right;\n changed = changed || vok !== ok;\n a[k] = vok;\n }\n }\n }\n\n return errors.length > 0 ? failures(errors) : success(changed ? a : u);\n }\n\n if (isAnyC(codomain) && Array.isArray(u)) {\n return success(u);\n }\n\n return failure(u, c);\n }, domain.encode === identity && codomain.encode === identity ? identity : function (a) {\n var s = {};\n var keys = Object.keys(a);\n var len = keys.length;\n\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n s[String(domain.encode(k))] = codomain.encode(a[k]);\n }\n\n return s;\n }, domain, codomain);\n}\n\nfunction getUnionName(codecs) {\n return '(' + codecs.map(function (type) {\n return type.name;\n }).join(' | ') + ')';\n}\n/**\n * @internal\n */\n\n\nexport function mergeAll(base, us) {\n var equal = true;\n var primitive = true;\n var baseIsNotADictionary = !UnknownRecord.is(base);\n\n for (var _i = 0, us_1 = us; _i < us_1.length; _i++) {\n var u = us_1[_i];\n\n if (u !== base) {\n equal = false;\n }\n\n if (UnknownRecord.is(u)) {\n primitive = false;\n }\n }\n\n if (equal) {\n return base;\n } else if (primitive) {\n return us[us.length - 1];\n }\n\n var r = {};\n\n for (var _a = 0, us_2 = us; _a < us_2.length; _a++) {\n var u = us_2[_a];\n\n for (var k in u) {\n if (!r.hasOwnProperty(k) || baseIsNotADictionary || u[k] !== base[k]) {\n r[k] = u[k];\n }\n }\n }\n\n return r;\n}\n\nfunction getProps(codec) {\n switch (codec._tag) {\n case 'RefinementType':\n case 'ReadonlyType':\n return getProps(codec.type);\n\n case 'InterfaceType':\n case 'StrictType':\n case 'PartialType':\n return codec.props;\n\n case 'IntersectionType':\n return codec.types.reduce(function (props, type) {\n return Object.assign(props, getProps(type));\n }, {});\n }\n}\n\nfunction stripKeys(o, props) {\n var keys = Object.getOwnPropertyNames(o);\n var shouldStrip = false;\n var r = {};\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (!hasOwnProperty.call(props, key)) {\n shouldStrip = true;\n } else {\n r[key] = o[key];\n }\n }\n\n return shouldStrip ? r : o;\n}\n\nfunction getExactTypeName(codec) {\n if (isTypeC(codec)) {\n return \"{| \" + getNameFromProps(codec.props) + \" |}\";\n } else if (isPartialC(codec)) {\n return getPartialTypeName(\"{| \" + getNameFromProps(codec.props) + \" |}\");\n }\n\n return \"Exact<\" + codec.name + \">\";\n}\n\nfunction isNonEmpty(as) {\n return as.length > 0;\n}\n/**\n * @internal\n */\n\n\nexport var emptyTags = {};\n\nfunction intersect(a, b) {\n var r = [];\n\n for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {\n var v = a_1[_i];\n\n if (b.indexOf(v) !== -1) {\n r.push(v);\n }\n }\n\n return r;\n}\n\nfunction mergeTags(a, b) {\n if (a === emptyTags) {\n return b;\n }\n\n if (b === emptyTags) {\n return a;\n }\n\n var r = Object.assign({}, a);\n\n for (var k in b) {\n if (a.hasOwnProperty(k)) {\n var intersection_1 = intersect(a[k], b[k]);\n\n if (isNonEmpty(intersection_1)) {\n r[k] = intersection_1;\n } else {\n r = emptyTags;\n break;\n }\n } else {\n r[k] = b[k];\n }\n }\n\n return r;\n}\n\nfunction intersectTags(a, b) {\n if (a === emptyTags || b === emptyTags) {\n return emptyTags;\n }\n\n var r = emptyTags;\n\n for (var k in a) {\n if (b.hasOwnProperty(k)) {\n var intersection_2 = intersect(a[k], b[k]);\n\n if (intersection_2.length === 0) {\n if (r === emptyTags) {\n r = {};\n }\n\n r[k] = a[k].concat(b[k]);\n }\n }\n }\n\n return r;\n} // tslint:disable-next-line: deprecation\n\n\nfunction isAnyC(codec) {\n return codec._tag === 'AnyType';\n}\n\nfunction isLiteralC(codec) {\n return codec._tag === 'LiteralType';\n}\n\nfunction isKeyofC(codec) {\n return codec._tag === 'KeyofType';\n}\n\nfunction isTypeC(codec) {\n return codec._tag === 'InterfaceType';\n}\n\nfunction isPartialC(codec) {\n return codec._tag === 'PartialType';\n} // tslint:disable-next-line: deprecation\n\n\nfunction isStrictC(codec) {\n return codec._tag === 'StrictType';\n}\n\nfunction isExactC(codec) {\n return codec._tag === 'ExactType';\n} // tslint:disable-next-line: deprecation\n\n\nfunction isRefinementC(codec) {\n return codec._tag === 'RefinementType';\n}\n\nfunction isIntersectionC(codec) {\n return codec._tag === 'IntersectionType';\n}\n\nfunction isUnionC(codec) {\n return codec._tag === 'UnionType';\n}\n\nfunction isRecursiveC(codec) {\n return codec._tag === 'RecursiveType';\n}\n\nvar lazyCodecs = [];\n/**\n * @internal\n */\n\nexport function getTags(codec) {\n if (lazyCodecs.indexOf(codec) !== -1) {\n return emptyTags;\n }\n\n if (isTypeC(codec) || isStrictC(codec)) {\n var index = emptyTags; // tslint:disable-next-line: forin\n\n for (var k in codec.props) {\n var prop = codec.props[k];\n\n if (isLiteralC(prop)) {\n if (index === emptyTags) {\n index = {};\n }\n\n index[k] = [prop.value];\n }\n }\n\n return index;\n } else if (isExactC(codec) || isRefinementC(codec)) {\n return getTags(codec.type);\n } else if (isIntersectionC(codec)) {\n return codec.types.reduce(function (tags, codec) {\n return mergeTags(tags, getTags(codec));\n }, emptyTags);\n } else if (isUnionC(codec)) {\n return codec.types.slice(1).reduce(function (tags, codec) {\n return intersectTags(tags, getTags(codec));\n }, getTags(codec.types[0]));\n } else if (isRecursiveC(codec)) {\n lazyCodecs.push(codec);\n var tags = getTags(codec.type);\n lazyCodecs.pop();\n return tags;\n }\n\n return emptyTags;\n}\n/**\n * @internal\n */\n\nexport function getIndex(codecs) {\n var tags = getTags(codecs[0]);\n var keys = Object.keys(tags);\n var len = codecs.length;\n\n var _loop_1 = function _loop_1(k) {\n var all = tags[k].slice();\n var index = [tags[k]];\n\n for (var i = 1; i < len; i++) {\n var codec = codecs[i];\n var ctags = getTags(codec);\n var values = ctags[k]; // tslint:disable-next-line: strict-type-predicates\n\n if (values === undefined) {\n return \"continue-keys\";\n } else {\n if (values.some(function (v) {\n return all.indexOf(v) !== -1;\n })) {\n return \"continue-keys\";\n } else {\n all.push.apply(all, values);\n index.push(values);\n }\n }\n }\n\n return {\n value: [k, index]\n };\n };\n\n keys: for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var k = keys_1[_i];\n\n var state_1 = _loop_1(k);\n\n if (typeof state_1 === \"object\") return state_1.value;\n\n switch (state_1) {\n case \"continue-keys\":\n continue keys;\n }\n }\n\n return undefined;\n} // -------------------------------------------------------------------------------------\n// primitives\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 1.0.0\n */\n\nvar NullType =\n/** @class */\nfunction (_super) {\n __extends(NullType, _super);\n\n function NullType() {\n var _this = _super.call(this, 'null', function (u) {\n return u === null;\n }, function (u, c) {\n return _this.is(u) ? success(u) : failure(u, c);\n }, identity) || this;\n /**\n * @since 1.0.0\n */\n\n\n _this._tag = 'NullType';\n return _this;\n }\n\n return NullType;\n}(Type);\n\nexport { NullType };\n/**\n * @category primitives\n * @since 1.0.0\n */\n\nexport var nullType = new NullType();\n/**\n * @since 1.0.0\n */\n\nvar UndefinedType =\n/** @class */\nfunction (_super) {\n __extends(UndefinedType, _super);\n\n function UndefinedType() {\n var _this = _super.call(this, 'undefined', function (u) {\n return u === void 0;\n }, function (u, c) {\n return _this.is(u) ? success(u) : failure(u, c);\n }, identity) || this;\n /**\n * @since 1.0.0\n */\n\n\n _this._tag = 'UndefinedType';\n return _this;\n }\n\n return UndefinedType;\n}(Type);\n\nexport { UndefinedType };\nvar undefinedType = new UndefinedType();\n/**\n * @since 1.2.0\n */\n\nvar VoidType =\n/** @class */\nfunction (_super) {\n __extends(VoidType, _super);\n\n function VoidType() {\n var _this = _super.call(this, 'void', undefinedType.is, undefinedType.validate, identity) || this;\n /**\n * @since 1.0.0\n */\n\n\n _this._tag = 'VoidType';\n return _this;\n }\n\n return VoidType;\n}(Type);\n\nexport { VoidType };\n/**\n * @category primitives\n * @since 1.2.0\n */\n\nexport var voidType = new VoidType();\n/**\n * @since 1.5.0\n */\n\nvar UnknownType =\n/** @class */\nfunction (_super) {\n __extends(UnknownType, _super);\n\n function UnknownType() {\n var _this = _super.call(this, 'unknown', function (_) {\n return true;\n }, success, identity) || this;\n /**\n * @since 1.0.0\n */\n\n\n _this._tag = 'UnknownType';\n return _this;\n }\n\n return UnknownType;\n}(Type);\n\nexport { UnknownType };\n/**\n * @category primitives\n * @since 1.5.0\n */\n\nexport var unknown = new UnknownType();\n/**\n * @since 1.0.0\n */\n\nvar StringType =\n/** @class */\nfunction (_super) {\n __extends(StringType, _super);\n\n function StringType() {\n var _this = _super.call(this, 'string', function (u) {\n return typeof u === 'string';\n }, function (u, c) {\n return _this.is(u) ? success(u) : failure(u, c);\n }, identity) || this;\n /**\n * @since 1.0.0\n */\n\n\n _this._tag = 'StringType';\n return _this;\n }\n\n return StringType;\n}(Type);\n\nexport { StringType };\n/**\n * @category primitives\n * @since 1.0.0\n */\n\nexport var string = new StringType();\n/**\n * @since 1.0.0\n */\n\nvar NumberType =\n/** @class */\nfunction (_super) {\n __extends(NumberType, _super);\n\n function NumberType() {\n var _this = _super.call(this, 'number', function (u) {\n return typeof u === 'number';\n }, function (u, c) {\n return _this.is(u) ? success(u) : failure(u, c);\n }, identity) || this;\n /**\n * @since 1.0.0\n */\n\n\n _this._tag = 'NumberType';\n return _this;\n }\n\n return NumberType;\n}(Type);\n\nexport { NumberType };\n/**\n * @category primitives\n * @since 1.0.0\n */\n\nexport var number = new NumberType();\n/**\n * @since 2.1.0\n */\n\nvar BigIntType =\n/** @class */\nfunction (_super) {\n __extends(BigIntType, _super);\n\n function BigIntType() {\n var _this = _super.call(this, 'bigint', // tslint:disable-next-line: valid-typeof\n function (u) {\n return typeof u === 'bigint';\n }, function (u, c) {\n return _this.is(u) ? success(u) : failure(u, c);\n }, identity) || this;\n /**\n * @since 1.0.0\n */\n\n\n _this._tag = 'BigIntType';\n return _this;\n }\n\n return BigIntType;\n}(Type);\n\nexport { BigIntType };\n/**\n * @category primitives\n * @since 2.1.0\n */\n\nexport var bigint = new BigIntType();\n/**\n * @since 1.0.0\n */\n\nvar BooleanType =\n/** @class */\nfunction (_super) {\n __extends(BooleanType, _super);\n\n function BooleanType() {\n var _this = _super.call(this, 'boolean', function (u) {\n return typeof u === 'boolean';\n }, function (u, c) {\n return _this.is(u) ? success(u) : failure(u, c);\n }, identity) || this;\n /**\n * @since 1.0.0\n */\n\n\n _this._tag = 'BooleanType';\n return _this;\n }\n\n return BooleanType;\n}(Type);\n\nexport { BooleanType };\n/**\n * @category primitives\n * @since 1.0.0\n */\n\nexport var boolean = new BooleanType();\n/**\n * @since 1.0.0\n */\n\nvar AnyArrayType =\n/** @class */\nfunction (_super) {\n __extends(AnyArrayType, _super);\n\n function AnyArrayType() {\n var _this = _super.call(this, 'UnknownArray', Array.isArray, function (u, c) {\n return _this.is(u) ? success(u) : failure(u, c);\n }, identity) || this;\n /**\n * @since 1.0.0\n */\n\n\n _this._tag = 'AnyArrayType';\n return _this;\n }\n\n return AnyArrayType;\n}(Type);\n\nexport { AnyArrayType };\n/**\n * @category primitives\n * @since 1.7.1\n */\n\nexport var UnknownArray = new AnyArrayType();\n/**\n * @since 1.0.0\n */\n\nvar AnyDictionaryType =\n/** @class */\nfunction (_super) {\n __extends(AnyDictionaryType, _super);\n\n function AnyDictionaryType() {\n var _this = _super.call(this, 'UnknownRecord', function (u) {\n var s = Object.prototype.toString.call(u);\n return s === '[object Object]' || s === '[object Window]';\n }, function (u, c) {\n return _this.is(u) ? success(u) : failure(u, c);\n }, identity) || this;\n /**\n * @since 1.0.0\n */\n\n\n _this._tag = 'AnyDictionaryType';\n return _this;\n }\n\n return AnyDictionaryType;\n}(Type);\n\nexport { AnyDictionaryType };\n/**\n * @category primitives\n * @since 1.7.1\n */\n\nexport var UnknownRecord = new AnyDictionaryType();\nexport {\n/**\n * @category primitives\n * @since 1.0.0\n */\nnullType as null,\n/**\n * @category primitives\n * @since 1.0.0\n */\nundefinedType as undefined,\n/**\n * @category primitives\n * @since 1.0.0\n */\nvoidType as void };\n/**\n * @since 1.0.0\n */\n\nvar LiteralType =\n/** @class */\nfunction (_super) {\n __extends(LiteralType, _super);\n\n function LiteralType(name, is, validate, encode, value) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n\n _this.value = value;\n /**\n * @since 1.0.0\n */\n\n _this._tag = 'LiteralType';\n return _this;\n }\n\n return LiteralType;\n}(Type);\n\nexport { LiteralType };\n/**\n * @category constructors\n * @since 1.0.0\n */\n\nexport function literal(value, name) {\n if (name === void 0) {\n name = JSON.stringify(value);\n }\n\n var is = function is(u) {\n return u === value;\n };\n\n return new LiteralType(name, is, function (u, c) {\n return is(u) ? success(value) : failure(u, c);\n }, identity, value);\n}\n/**\n * @since 1.0.0\n */\n\nvar KeyofType =\n/** @class */\nfunction (_super) {\n __extends(KeyofType, _super);\n\n function KeyofType(name, is, validate, encode, keys) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n\n _this.keys = keys;\n /**\n * @since 1.0.0\n */\n\n _this._tag = 'KeyofType';\n return _this;\n }\n\n return KeyofType;\n}(Type);\n\nexport { KeyofType };\n/**\n * @category constructors\n * @since 1.0.0\n */\n\nexport function keyof(keys, name) {\n if (name === void 0) {\n name = Object.keys(keys).map(function (k) {\n return JSON.stringify(k);\n }).join(' | ');\n }\n\n var is = function is(u) {\n return string.is(u) && hasOwnProperty.call(keys, u);\n };\n\n return new KeyofType(name, is, function (u, c) {\n return is(u) ? success(u) : failure(u, c);\n }, identity, keys);\n} // -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 1.0.0\n */\n\nvar RefinementType =\n/** @class */\nfunction (_super) {\n __extends(RefinementType, _super);\n\n function RefinementType(name, is, validate, encode, type, predicate) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n\n _this.type = type;\n _this.predicate = predicate;\n /**\n * @since 1.0.0\n */\n\n _this._tag = 'RefinementType';\n return _this;\n }\n\n return RefinementType;\n}(Type);\n\nexport { RefinementType };\n/**\n * @category combinators\n * @since 1.8.1\n */\n\nexport function brand(codec, predicate, name) {\n // tslint:disable-next-line: deprecation\n return refinement(codec, predicate, name);\n}\n/**\n * A branded codec representing an integer\n *\n * @category primitives\n * @since 1.8.1\n */\n\nexport var Int = brand(number, function (n) {\n return Number.isInteger(n);\n}, 'Int');\n/**\n * @since 1.0.0\n */\n\nvar RecursiveType =\n/** @class */\nfunction (_super) {\n __extends(RecursiveType, _super);\n\n function RecursiveType(name, is, validate, encode, runDefinition) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n\n _this.runDefinition = runDefinition;\n /**\n * @since 1.0.0\n */\n\n _this._tag = 'RecursiveType';\n return _this;\n }\n\n return RecursiveType;\n}(Type);\n\nexport { RecursiveType };\nObject.defineProperty(RecursiveType.prototype, 'type', {\n get: function get() {\n return this.runDefinition();\n },\n enumerable: true,\n configurable: true\n});\n/**\n * @category combinators\n * @since 1.0.0\n */\n\nexport function recursion(name, definition) {\n var cache;\n\n var runDefinition = function runDefinition() {\n if (!cache) {\n cache = definition(Self);\n cache.name = name;\n }\n\n return cache;\n };\n\n var Self = new RecursiveType(name, function (u) {\n return runDefinition().is(u);\n }, function (u, c) {\n return runDefinition().validate(u, c);\n }, function (a) {\n return runDefinition().encode(a);\n }, runDefinition);\n return Self;\n}\n/**\n * @since 1.0.0\n */\n\nvar ArrayType =\n/** @class */\nfunction (_super) {\n __extends(ArrayType, _super);\n\n function ArrayType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n\n _this.type = type;\n /**\n * @since 1.0.0\n */\n\n _this._tag = 'ArrayType';\n return _this;\n }\n\n return ArrayType;\n}(Type);\n\nexport { ArrayType };\n/**\n * @category combinators\n * @since 1.0.0\n */\n\nexport function array(item, name) {\n if (name === void 0) {\n name = \"Array<\" + item.name + \">\";\n }\n\n return new ArrayType(name, function (u) {\n return UnknownArray.is(u) && u.every(item.is);\n }, function (u, c) {\n var e = UnknownArray.validate(u, c);\n\n if (isLeft(e)) {\n return e;\n }\n\n var us = e.right;\n var len = us.length;\n var as = us;\n var errors = [];\n\n for (var i = 0; i < len; i++) {\n var ui = us[i];\n var result = item.validate(ui, appendContext(c, String(i), item, ui));\n\n if (isLeft(result)) {\n pushAll(errors, result.left);\n } else {\n var ai = result.right;\n\n if (ai !== ui) {\n if (as === us) {\n as = us.slice();\n }\n\n as[i] = ai;\n }\n }\n }\n\n return errors.length > 0 ? failures(errors) : success(as);\n }, item.encode === identity ? identity : function (a) {\n return a.map(item.encode);\n }, item);\n}\n/**\n * @since 1.0.0\n */\n\nvar InterfaceType =\n/** @class */\nfunction (_super) {\n __extends(InterfaceType, _super);\n\n function InterfaceType(name, is, validate, encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n\n _this.props = props;\n /**\n * @since 1.0.0\n */\n\n _this._tag = 'InterfaceType';\n return _this;\n }\n\n return InterfaceType;\n}(Type);\n\nexport { InterfaceType };\n/**\n * @category combinators\n * @since 1.0.0\n */\n\nexport function type(props, name) {\n if (name === void 0) {\n name = getInterfaceTypeName(props);\n }\n\n var keys = Object.keys(props);\n var types = keys.map(function (key) {\n return props[key];\n });\n var len = keys.length;\n return new InterfaceType(name, function (u) {\n if (UnknownRecord.is(u)) {\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var uk = u[k];\n\n if (uk === undefined && !hasOwnProperty.call(u, k) || !types[i].is(uk)) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n }, function (u, c) {\n var e = UnknownRecord.validate(u, c);\n\n if (isLeft(e)) {\n return e;\n }\n\n var o = e.right;\n var a = o;\n var errors = [];\n\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ak = a[k];\n var type_1 = types[i];\n var result = type_1.validate(ak, appendContext(c, k, type_1, ak));\n\n if (isLeft(result)) {\n pushAll(errors, result.left);\n } else {\n var vak = result.right;\n\n if (vak !== ak || vak === undefined && !hasOwnProperty.call(a, k)) {\n /* istanbul ignore next */\n if (a === o) {\n a = __assign({}, o);\n }\n\n a[k] = vak;\n }\n }\n }\n\n return errors.length > 0 ? failures(errors) : success(a);\n }, useIdentity(types) ? identity : function (a) {\n var s = __assign({}, a);\n\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var encode = types[i].encode;\n\n if (encode !== identity) {\n s[k] = encode(a[k]);\n }\n }\n\n return s;\n }, props);\n}\n/**\n * @since 1.0.0\n */\n\nvar PartialType =\n/** @class */\nfunction (_super) {\n __extends(PartialType, _super);\n\n function PartialType(name, is, validate, encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n\n _this.props = props;\n /**\n * @since 1.0.0\n */\n\n _this._tag = 'PartialType';\n return _this;\n }\n\n return PartialType;\n}(Type);\n\nexport { PartialType };\n/**\n * @category combinators\n * @since 1.0.0\n */\n\nexport function partial(props, name) {\n if (name === void 0) {\n name = getPartialTypeName(getInterfaceTypeName(props));\n }\n\n var keys = Object.keys(props);\n var types = keys.map(function (key) {\n return props[key];\n });\n var len = keys.length;\n return new PartialType(name, function (u) {\n if (UnknownRecord.is(u)) {\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var uk = u[k];\n\n if (uk !== undefined && !props[k].is(uk)) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n }, function (u, c) {\n var e = UnknownRecord.validate(u, c);\n\n if (isLeft(e)) {\n return e;\n }\n\n var o = e.right;\n var a = o;\n var errors = [];\n\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ak = a[k];\n var type_2 = props[k];\n var result = type_2.validate(ak, appendContext(c, k, type_2, ak));\n\n if (isLeft(result)) {\n if (ak !== undefined) {\n pushAll(errors, result.left);\n }\n } else {\n var vak = result.right;\n\n if (vak !== ak) {\n /* istanbul ignore next */\n if (a === o) {\n a = __assign({}, o);\n }\n\n a[k] = vak;\n }\n }\n }\n\n return errors.length > 0 ? failures(errors) : success(a);\n }, useIdentity(types) ? identity : function (a) {\n var s = __assign({}, a);\n\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ak = a[k];\n\n if (ak !== undefined) {\n s[k] = types[i].encode(ak);\n }\n }\n\n return s;\n }, props);\n}\n/**\n * @since 1.0.0\n */\n\nvar DictionaryType =\n/** @class */\nfunction (_super) {\n __extends(DictionaryType, _super);\n\n function DictionaryType(name, is, validate, encode, domain, codomain) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n\n _this.domain = domain;\n _this.codomain = codomain;\n /**\n * @since 1.0.0\n */\n\n _this._tag = 'DictionaryType';\n return _this;\n }\n\n return DictionaryType;\n}(Type);\n\nexport { DictionaryType };\n/**\n * @category combinators\n * @since 1.7.1\n */\n\nexport function record(domain, codomain, name) {\n var keys = getDomainKeys(domain);\n return keys ? enumerableRecord(Object.keys(keys), domain, codomain, name) : nonEnumerableRecord(domain, codomain, name);\n}\n/**\n * @since 1.0.0\n */\n\nvar UnionType =\n/** @class */\nfunction (_super) {\n __extends(UnionType, _super);\n\n function UnionType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n\n _this.types = types;\n /**\n * @since 1.0.0\n */\n\n _this._tag = 'UnionType';\n return _this;\n }\n\n return UnionType;\n}(Type);\n\nexport { UnionType };\n/**\n * @category combinators\n * @since 1.0.0\n */\n\nexport function union(codecs, name) {\n if (name === void 0) {\n name = getUnionName(codecs);\n }\n\n var index = getIndex(codecs);\n\n if (index !== undefined && codecs.length > 0) {\n var tag_1 = index[0],\n groups_1 = index[1];\n var len_1 = groups_1.length;\n\n var find_1 = function find_1(value) {\n for (var i = 0; i < len_1; i++) {\n if (groups_1[i].indexOf(value) !== -1) {\n return i;\n }\n }\n\n return undefined;\n }; // tslint:disable-next-line: deprecation\n\n\n return new TaggedUnionType(name, function (u) {\n if (UnknownRecord.is(u)) {\n var i = find_1(u[tag_1]);\n return i !== undefined ? codecs[i].is(u) : false;\n }\n\n return false;\n }, function (u, c) {\n var e = UnknownRecord.validate(u, c);\n\n if (isLeft(e)) {\n return e;\n }\n\n var r = e.right;\n var i = find_1(r[tag_1]);\n\n if (i === undefined) {\n return failure(u, c);\n }\n\n var codec = codecs[i];\n return codec.validate(r, appendContext(c, String(i), codec, r));\n }, useIdentity(codecs) ? identity : function (a) {\n var i = find_1(a[tag_1]);\n\n if (i === undefined) {\n // https://github.com/gcanti/io-ts/pull/305\n throw new Error(\"no codec found to encode value in union codec \" + name);\n } else {\n return codecs[i].encode(a);\n }\n }, codecs, tag_1);\n } else {\n return new UnionType(name, function (u) {\n return codecs.some(function (type) {\n return type.is(u);\n });\n }, function (u, c) {\n var errors = [];\n\n for (var i = 0; i < codecs.length; i++) {\n var codec = codecs[i];\n var result = codec.validate(u, appendContext(c, String(i), codec, u));\n\n if (isLeft(result)) {\n pushAll(errors, result.left);\n } else {\n return success(result.right);\n }\n }\n\n return failures(errors);\n }, useIdentity(codecs) ? identity : function (a) {\n for (var _i = 0, codecs_1 = codecs; _i < codecs_1.length; _i++) {\n var codec = codecs_1[_i];\n\n if (codec.is(a)) {\n return codec.encode(a);\n }\n } // https://github.com/gcanti/io-ts/pull/305\n\n\n throw new Error(\"no codec found to encode value in union type \" + name);\n }, codecs);\n }\n}\n/**\n * @since 1.0.0\n */\n\nvar IntersectionType =\n/** @class */\nfunction (_super) {\n __extends(IntersectionType, _super);\n\n function IntersectionType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n\n _this.types = types;\n /**\n * @since 1.0.0\n */\n\n _this._tag = 'IntersectionType';\n return _this;\n }\n\n return IntersectionType;\n}(Type);\n\nexport { IntersectionType };\nexport function intersection(codecs, name) {\n if (name === void 0) {\n name = \"(\" + codecs.map(function (type) {\n return type.name;\n }).join(' & ') + \")\";\n }\n\n var len = codecs.length;\n return new IntersectionType(name, function (u) {\n return codecs.every(function (type) {\n return type.is(u);\n });\n }, codecs.length === 0 ? success : function (u, c) {\n var us = [];\n var errors = [];\n\n for (var i = 0; i < len; i++) {\n var codec = codecs[i];\n var result = codec.validate(u, appendContext(c, String(i), codec, u));\n\n if (isLeft(result)) {\n pushAll(errors, result.left);\n } else {\n us.push(result.right);\n }\n }\n\n return errors.length > 0 ? failures(errors) : success(mergeAll(u, us));\n }, codecs.length === 0 ? identity : function (a) {\n return mergeAll(a, codecs.map(function (codec) {\n return codec.encode(a);\n }));\n }, codecs);\n}\n/**\n * @since 1.0.0\n */\n\nvar TupleType =\n/** @class */\nfunction (_super) {\n __extends(TupleType, _super);\n\n function TupleType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n\n _this.types = types;\n /**\n * @since 1.0.0\n */\n\n _this._tag = 'TupleType';\n return _this;\n }\n\n return TupleType;\n}(Type);\n\nexport { TupleType };\nexport function tuple(codecs, name) {\n if (name === void 0) {\n name = \"[\" + codecs.map(function (type) {\n return type.name;\n }).join(', ') + \"]\";\n }\n\n var len = codecs.length;\n return new TupleType(name, function (u) {\n return UnknownArray.is(u) && u.length === len && codecs.every(function (type, i) {\n return type.is(u[i]);\n });\n }, function (u, c) {\n var e = UnknownArray.validate(u, c);\n\n if (isLeft(e)) {\n return e;\n }\n\n var us = e.right;\n var as = us.length > len ? us.slice(0, len) : us; // strip additional components\n\n var errors = [];\n\n for (var i = 0; i < len; i++) {\n var a = us[i];\n var type_3 = codecs[i];\n var result = type_3.validate(a, appendContext(c, String(i), type_3, a));\n\n if (isLeft(result)) {\n pushAll(errors, result.left);\n } else {\n var va = result.right;\n\n if (va !== a) {\n /* istanbul ignore next */\n if (as === us) {\n as = us.slice();\n }\n\n as[i] = va;\n }\n }\n }\n\n return errors.length > 0 ? failures(errors) : success(as);\n }, useIdentity(codecs) ? identity : function (a) {\n return codecs.map(function (type, i) {\n return type.encode(a[i]);\n });\n }, codecs);\n}\n/**\n * @since 1.0.0\n */\n\nvar ReadonlyType =\n/** @class */\nfunction (_super) {\n __extends(ReadonlyType, _super);\n\n function ReadonlyType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n\n _this.type = type;\n /**\n * @since 1.0.0\n */\n\n _this._tag = 'ReadonlyType';\n return _this;\n }\n\n return ReadonlyType;\n}(Type);\n\nexport { ReadonlyType };\n/**\n * @category combinators\n * @since 1.0.0\n */\n\nexport function readonly(codec, name) {\n if (name === void 0) {\n name = \"Readonly<\" + codec.name + \">\";\n }\n\n return new ReadonlyType(name, codec.is, codec.validate, codec.encode, codec);\n}\n/**\n * @since 1.0.0\n */\n\nvar ReadonlyArrayType =\n/** @class */\nfunction (_super) {\n __extends(ReadonlyArrayType, _super);\n\n function ReadonlyArrayType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n\n _this.type = type;\n /**\n * @since 1.0.0\n */\n\n _this._tag = 'ReadonlyArrayType';\n return _this;\n }\n\n return ReadonlyArrayType;\n}(Type);\n\nexport { ReadonlyArrayType };\n/**\n * @category combinators\n * @since 1.0.0\n */\n\nexport function readonlyArray(item, name) {\n if (name === void 0) {\n name = \"ReadonlyArray<\" + item.name + \">\";\n }\n\n var codec = array(item);\n return new ReadonlyArrayType(name, codec.is, codec.validate, codec.encode, item);\n}\n/**\n * Strips additional properties, equivalent to `exact(type(props))`.\n *\n * @category combinators\n * @since 1.0.0\n */\n\nexport var strict = function strict(props, name) {\n return exact(type(props), name);\n};\n/**\n * @since 1.1.0\n */\n\nvar ExactType =\n/** @class */\nfunction (_super) {\n __extends(ExactType, _super);\n\n function ExactType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n\n _this.type = type;\n /**\n * @since 1.0.0\n */\n\n _this._tag = 'ExactType';\n return _this;\n }\n\n return ExactType;\n}(Type);\n\nexport { ExactType };\n/**\n * Strips additional properties.\n *\n * @category combinators\n * @since 1.1.0\n */\n\nexport function exact(codec, name) {\n if (name === void 0) {\n name = getExactTypeName(codec);\n }\n\n var props = getProps(codec);\n return new ExactType(name, codec.is, function (u, c) {\n var e = UnknownRecord.validate(u, c);\n\n if (isLeft(e)) {\n return e;\n }\n\n var ce = codec.validate(u, c);\n\n if (isLeft(ce)) {\n return ce;\n }\n\n return right(stripKeys(ce.right, props));\n }, function (a) {\n return codec.encode(stripKeys(a, props));\n }, codec);\n} // -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n\n/**\n * @since 1.0.0\n * @deprecated\n */\n\nvar FunctionType =\n/** @class */\nfunction (_super) {\n __extends(FunctionType, _super);\n\n function FunctionType() {\n var _this = _super.call(this, 'Function', // tslint:disable-next-line:strict-type-predicates\n function (u) {\n return typeof u === 'function';\n }, function (u, c) {\n return _this.is(u) ? success(u) : failure(u, c);\n }, identity) || this;\n /**\n * @since 1.0.0\n */\n\n\n _this._tag = 'FunctionType';\n return _this;\n }\n\n return FunctionType;\n}(Type);\n\nexport { FunctionType };\n/**\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\n\nexport var Function = new FunctionType();\n/**\n * @since 1.3.0\n * @deprecated\n */\n\nvar TaggedUnionType =\n/** @class */\nfunction (_super) {\n __extends(TaggedUnionType, _super);\n\n function TaggedUnionType(name, // tslint:disable-next-line: deprecation\n is, // tslint:disable-next-line: deprecation\n validate, // tslint:disable-next-line: deprecation\n encode, codecs, tag) {\n var _this = _super.call(this, name, is, validate, encode, codecs)\n /* istanbul ignore next */\n // <= workaround for https://github.com/Microsoft/TypeScript/issues/13455\n || this;\n\n _this.tag = tag;\n return _this;\n }\n\n return TaggedUnionType;\n}(UnionType);\n\nexport { TaggedUnionType };\n/**\n * Use `union` instead.\n *\n * @category combinators\n * @since 1.3.0\n * @deprecated\n */\n\nexport var taggedUnion = function taggedUnion(tag, codecs, name // tslint:disable-next-line: deprecation\n) {\n if (name === void 0) {\n name = getUnionName(codecs);\n }\n\n var U = union(codecs, name); // tslint:disable-next-line: deprecation\n\n if (U instanceof TaggedUnionType) {\n return U;\n } else {\n console.warn(\"[io-ts] Cannot build a tagged union for \" + name + \", returning a de-optimized union\"); // tslint:disable-next-line: deprecation\n\n return new TaggedUnionType(name, U.is, U.validate, U.encode, codecs, tag);\n }\n};\nexport {\n/**\n * Use `UnknownArray` instead.\n *\n * @category primitives\n * @deprecated\n * @since 1.0.0\n */\nUnknownArray as Array };\nexport {\n/**\n * Use `type` instead.\n *\n * @category combinators\n * @deprecated\n * @since 1.0.0\n */\ntype as interface };\n/**\n * @since 1.0.0\n * @deprecated\n */\n\nexport var getValidationError\n/* istanbul ignore next */\n= function getValidationError\n/* istanbul ignore next */\n(value, context) {\n return {\n value: value,\n context: context\n };\n};\n/**\n * @since 1.0.0\n * @deprecated\n */\n\nexport var getDefaultContext\n/* istanbul ignore next */\n= function getDefaultContext\n/* istanbul ignore next */\n(decoder) {\n return [{\n key: '',\n type: decoder\n }];\n};\n/**\n * @since 1.0.0\n * @deprecated\n */\n\nvar NeverType =\n/** @class */\nfunction (_super) {\n __extends(NeverType, _super);\n\n function NeverType() {\n var _this = _super.call(this, 'never', function (_) {\n return false;\n }, function (u, c) {\n return failure(u, c);\n },\n /* istanbul ignore next */\n function () {\n throw new Error('cannot encode never');\n }) || this;\n /**\n * @since 1.0.0\n */\n\n\n _this._tag = 'NeverType';\n return _this;\n }\n\n return NeverType;\n}(Type);\n\nexport { NeverType };\n/**\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\n\nexport var never = new NeverType();\n/**\n * @since 1.0.0\n * @deprecated\n */\n\nvar AnyType =\n/** @class */\nfunction (_super) {\n __extends(AnyType, _super);\n\n function AnyType() {\n var _this = _super.call(this, 'any', function (_) {\n return true;\n }, success, identity) || this;\n /**\n * @since 1.0.0\n */\n\n\n _this._tag = 'AnyType';\n return _this;\n }\n\n return AnyType;\n}(Type);\n\nexport { AnyType };\n/**\n * Use `unknown` instead.\n *\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\n\nexport var any = new AnyType();\n/**\n * Use `UnknownRecord` instead.\n *\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n\nexport var Dictionary = UnknownRecord;\n/**\n * @since 1.0.0\n * @deprecated\n */\n\nvar ObjectType =\n/** @class */\nfunction (_super) {\n __extends(ObjectType, _super);\n\n function ObjectType() {\n var _this = _super.call(this, 'object', function (u) {\n return u !== null && typeof u === 'object';\n }, function (u, c) {\n return _this.is(u) ? success(u) : failure(u, c);\n }, identity) || this;\n /**\n * @since 1.0.0\n */\n\n\n _this._tag = 'ObjectType';\n return _this;\n }\n\n return ObjectType;\n}(Type);\n\nexport { ObjectType };\n/**\n * Use `UnknownRecord` instead.\n *\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\n\nexport var object = new ObjectType();\n/**\n * Use `brand` instead.\n *\n * @category combinators\n * @since 1.0.0\n * @deprecated\n */\n\nexport function refinement(codec, predicate, name) {\n if (name === void 0) {\n name = \"(\" + codec.name + \" | \" + getFunctionName(predicate) + \")\";\n }\n\n return new RefinementType(name, function (u) {\n return codec.is(u) && predicate(u);\n }, function (i, c) {\n var e = codec.validate(i, c);\n\n if (isLeft(e)) {\n return e;\n }\n\n var a = e.right;\n return predicate(a) ? success(a) : failure(a, c);\n }, codec.encode, codec, predicate);\n}\n/**\n * Use `Int` instead.\n *\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\n\nexport var Integer = refinement(number, Number.isInteger, 'Integer');\n/**\n * Use `record` instead.\n *\n * @category combinators\n * @since 1.0.0\n * @deprecated\n */\n\nexport var dictionary = record;\n/**\n * @since 1.0.0\n * @deprecated\n */\n\nvar StrictType =\n/** @class */\nfunction (_super) {\n __extends(StrictType, _super);\n\n function StrictType(name, // tslint:disable-next-line: deprecation\n is, // tslint:disable-next-line: deprecation\n validate, // tslint:disable-next-line: deprecation\n encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n\n _this.props = props;\n /**\n * @since 1.0.0\n */\n\n _this._tag = 'StrictType';\n return _this;\n }\n\n return StrictType;\n}(Type);\n\nexport { StrictType };\n/**\n * Drops the codec \"kind\".\n *\n * @category combinators\n * @since 1.1.0\n * @deprecated\n */\n\nexport function clean(codec) {\n return codec;\n}\nexport function alias(codec) {\n return function () {\n return codec;\n };\n}","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer);\n};\n\nfunction isBuffer(obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n} // For Node v0.10 support. Remove this eventually.\n\n\nfunction isSlowBuffer(obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0));\n}","/*!\n * jsUri\n * https://github.com/derek-watson/jsUri\n *\n * Copyright 2013, Derek Watson\n * Released under the MIT license.\n *\n * Includes parseUri regular expressions\n * http://blog.stevenlevithan.com/archives/parseuri\n * Copyright 2007, Steven Levithan\n * Released under the MIT license.\n */\n\n/*globals define, module */\n(function (global) {\n var re = {\n starts_with_slashes: /^\\/+/,\n ends_with_slashes: /\\/+$/,\n pluses: /\\+/g,\n query_separator: /[&;]/,\n uri_parser: /^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@\\/]*)(?::([^:@]*))?)?@)?(\\[[0-9a-fA-F:.]+\\]|[^:\\/?#]*)(?::(\\d+|(?=:)))?(:)?)((((?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/\n };\n /**\n * Define forEach for older js environments\n * @see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEach#Compatibility\n */\n\n if (!Array.prototype.forEach) {\n Array.prototype.forEach = function (callback, thisArg) {\n var T, k;\n\n if (this == null) {\n throw new TypeError(' this is null or not defined');\n }\n\n var O = Object(this);\n var len = O.length >>> 0;\n\n if (typeof callback !== \"function\") {\n throw new TypeError(callback + ' is not a function');\n }\n\n if (arguments.length > 1) {\n T = thisArg;\n }\n\n k = 0;\n\n while (k < len) {\n var kValue;\n\n if (k in O) {\n kValue = O[k];\n callback.call(T, kValue, k, O);\n }\n\n k++;\n }\n };\n }\n /**\n * unescape a query param value\n * @param {string} s encoded value\n * @return {string} decoded value\n */\n\n\n function decode(s) {\n if (s) {\n s = s.toString().replace(re.pluses, '%20');\n s = decodeURIComponent(s);\n }\n\n return s;\n }\n /**\n * Breaks a uri string down into its individual parts\n * @param {string} str uri\n * @return {object} parts\n */\n\n\n function parseUri(str) {\n var parser = re.uri_parser;\n var parserKeys = [\"source\", \"protocol\", \"authority\", \"userInfo\", \"user\", \"password\", \"host\", \"port\", \"isColonUri\", \"relative\", \"path\", \"directory\", \"file\", \"query\", \"anchor\"];\n var m = parser.exec(str || '');\n var parts = {};\n parserKeys.forEach(function (key, i) {\n parts[key] = m[i] || '';\n });\n return parts;\n }\n /**\n * Breaks a query string down into an array of key/value pairs\n * @param {string} str query\n * @return {array} array of arrays (key/value pairs)\n */\n\n\n function parseQuery(str) {\n var i, ps, p, n, k, v, l;\n var pairs = [];\n\n if (typeof str === 'undefined' || str === null || str === '') {\n return pairs;\n }\n\n if (str.indexOf('?') === 0) {\n str = str.substring(1);\n }\n\n ps = str.toString().split(re.query_separator);\n\n for (i = 0, l = ps.length; i < l; i++) {\n p = ps[i];\n n = p.indexOf('=');\n\n if (n !== 0) {\n k = decode(p.substring(0, n));\n v = decode(p.substring(n + 1));\n pairs.push(n === -1 ? [p, null] : [k, v]);\n }\n }\n\n return pairs;\n }\n /**\n * Creates a new Uri object\n * @constructor\n * @param {string} str\n */\n\n\n function Uri(str) {\n this.uriParts = parseUri(str);\n this.queryPairs = parseQuery(this.uriParts.query);\n this.hasAuthorityPrefixUserPref = null;\n }\n /**\n * Define getter/setter methods\n */\n\n\n ['protocol', 'userInfo', 'host', 'port', 'path', 'anchor'].forEach(function (key) {\n Uri.prototype[key] = function (val) {\n if (typeof val !== 'undefined') {\n this.uriParts[key] = val;\n }\n\n return this.uriParts[key];\n };\n });\n /**\n * if there is no protocol, the leading // can be enabled or disabled\n * @param {Boolean} val\n * @return {Boolean}\n */\n\n Uri.prototype.hasAuthorityPrefix = function (val) {\n if (typeof val !== 'undefined') {\n this.hasAuthorityPrefixUserPref = val;\n }\n\n if (this.hasAuthorityPrefixUserPref === null) {\n return this.uriParts.source.indexOf('//') !== -1;\n } else {\n return this.hasAuthorityPrefixUserPref;\n }\n };\n\n Uri.prototype.isColonUri = function (val) {\n if (typeof val !== 'undefined') {\n this.uriParts.isColonUri = !!val;\n } else {\n return !!this.uriParts.isColonUri;\n }\n };\n /**\n * Serializes the internal state of the query pairs\n * @param {string} [val] set a new query string\n * @return {string} query string\n */\n\n\n Uri.prototype.query = function (val) {\n var s = '',\n i,\n param,\n l;\n\n if (typeof val !== 'undefined') {\n this.queryPairs = parseQuery(val);\n }\n\n for (i = 0, l = this.queryPairs.length; i < l; i++) {\n param = this.queryPairs[i];\n\n if (s.length > 0) {\n s += '&';\n }\n\n if (param[1] === null) {\n s += param[0];\n } else {\n s += param[0];\n s += '=';\n\n if (typeof param[1] !== 'undefined') {\n s += encodeURIComponent(param[1]);\n }\n }\n }\n\n return s.length > 0 ? '?' + s : s;\n };\n /**\n * returns the first query param value found for the key\n * @param {string} key query key\n * @return {string} first value found for key\n */\n\n\n Uri.prototype.getQueryParamValue = function (key) {\n var param, i, l;\n\n for (i = 0, l = this.queryPairs.length; i < l; i++) {\n param = this.queryPairs[i];\n\n if (key === param[0]) {\n return param[1];\n }\n }\n };\n /**\n * returns an array of query param values for the key\n * @param {string} key query key\n * @return {array} array of values\n */\n\n\n Uri.prototype.getQueryParamValues = function (key) {\n var arr = [],\n i,\n param,\n l;\n\n for (i = 0, l = this.queryPairs.length; i < l; i++) {\n param = this.queryPairs[i];\n\n if (key === param[0]) {\n arr.push(param[1]);\n }\n }\n\n return arr;\n };\n /**\n * removes query parameters\n * @param {string} key remove values for key\n * @param {val} [val] remove a specific value, otherwise removes all\n * @return {Uri} returns self for fluent chaining\n */\n\n\n Uri.prototype.deleteQueryParam = function (key, val) {\n var arr = [],\n i,\n param,\n keyMatchesFilter,\n valMatchesFilter,\n l;\n\n for (i = 0, l = this.queryPairs.length; i < l; i++) {\n param = this.queryPairs[i];\n keyMatchesFilter = decode(param[0]) === decode(key);\n valMatchesFilter = param[1] === val;\n\n if (arguments.length === 1 && !keyMatchesFilter || arguments.length === 2 && (!keyMatchesFilter || !valMatchesFilter)) {\n arr.push(param);\n }\n }\n\n this.queryPairs = arr;\n return this;\n };\n /**\n * adds a query parameter\n * @param {string} key add values for key\n * @param {string} val value to add\n * @param {integer} [index] specific index to add the value at\n * @return {Uri} returns self for fluent chaining\n */\n\n\n Uri.prototype.addQueryParam = function (key, val, index) {\n if (arguments.length === 3 && index !== -1) {\n index = Math.min(index, this.queryPairs.length);\n this.queryPairs.splice(index, 0, [key, val]);\n } else if (arguments.length > 0) {\n this.queryPairs.push([key, val]);\n }\n\n return this;\n };\n /**\n * test for the existence of a query parameter\n * @param {string} key add values for key\n * @param {string} val value to add\n * @param {integer} [index] specific index to add the value at\n * @return {Uri} returns self for fluent chaining\n */\n\n\n Uri.prototype.hasQueryParam = function (key) {\n var i,\n len = this.queryPairs.length;\n\n for (i = 0; i < len; i++) {\n if (this.queryPairs[i][0] == key) return true;\n }\n\n return false;\n };\n /**\n * replaces query param values\n * @param {string} key key to replace value for\n * @param {string} newVal new value\n * @param {string} [oldVal] replace only one specific value (otherwise replaces all)\n * @return {Uri} returns self for fluent chaining\n */\n\n\n Uri.prototype.replaceQueryParam = function (key, newVal, oldVal) {\n var index = -1,\n len = this.queryPairs.length,\n i,\n param;\n\n if (arguments.length === 3) {\n for (i = 0; i < len; i++) {\n param = this.queryPairs[i];\n\n if (decode(param[0]) === decode(key) && decodeURIComponent(param[1]) === decode(oldVal)) {\n index = i;\n break;\n }\n }\n\n if (index >= 0) {\n this.deleteQueryParam(key, decode(oldVal)).addQueryParam(key, newVal, index);\n }\n } else {\n for (i = 0; i < len; i++) {\n param = this.queryPairs[i];\n\n if (decode(param[0]) === decode(key)) {\n index = i;\n break;\n }\n }\n\n this.deleteQueryParam(key);\n this.addQueryParam(key, newVal, index);\n }\n\n return this;\n };\n /**\n * Define fluent setter methods (setProtocol, setHasAuthorityPrefix, etc)\n */\n\n\n ['protocol', 'hasAuthorityPrefix', 'isColonUri', 'userInfo', 'host', 'port', 'path', 'query', 'anchor'].forEach(function (key) {\n var method = 'set' + key.charAt(0).toUpperCase() + key.slice(1);\n\n Uri.prototype[method] = function (val) {\n this[key](val);\n return this;\n };\n });\n /**\n * Scheme name, colon and doubleslash, as required\n * @return {string} http:// or possibly just //\n */\n\n Uri.prototype.scheme = function () {\n var s = '';\n\n if (this.protocol()) {\n s += this.protocol();\n\n if (this.protocol().indexOf(':') !== this.protocol().length - 1) {\n s += ':';\n }\n\n s += '//';\n } else {\n if (this.hasAuthorityPrefix() && this.host()) {\n s += '//';\n }\n }\n\n return s;\n };\n /**\n * Same as Mozilla nsIURI.prePath\n * @return {string} scheme://user:password@host:port\n * @see https://developer.mozilla.org/en/nsIURI\n */\n\n\n Uri.prototype.origin = function () {\n var s = this.scheme();\n\n if (this.userInfo() && this.host()) {\n s += this.userInfo();\n\n if (this.userInfo().indexOf('@') !== this.userInfo().length - 1) {\n s += '@';\n }\n }\n\n if (this.host()) {\n s += this.host();\n\n if (this.port() || this.path() && this.path().substr(0, 1).match(/[0-9]/)) {\n s += ':' + this.port();\n }\n }\n\n return s;\n };\n /**\n * Adds a trailing slash to the path\n */\n\n\n Uri.prototype.addTrailingSlash = function () {\n var path = this.path() || '';\n\n if (path.substr(-1) !== '/') {\n this.path(path + '/');\n }\n\n return this;\n };\n /**\n * Serializes the internal state of the Uri object\n * @return {string}\n */\n\n\n Uri.prototype.toString = function () {\n var path,\n s = this.origin();\n\n if (this.isColonUri()) {\n if (this.path()) {\n s += ':' + this.path();\n }\n } else if (this.path()) {\n path = this.path();\n\n if (!(re.ends_with_slashes.test(s) || re.starts_with_slashes.test(path))) {\n s += '/';\n } else {\n if (s) {\n s.replace(re.ends_with_slashes, '/');\n }\n\n path = path.replace(re.starts_with_slashes, '/');\n }\n\n s += path;\n } else {\n if (this.host() && (this.query().toString() || this.anchor())) {\n s += '/';\n }\n }\n\n if (this.query().toString()) {\n s += this.query().toString();\n }\n\n if (this.anchor()) {\n if (this.anchor().indexOf('#') !== 0) {\n s += '#';\n }\n\n s += this.anchor();\n }\n\n return s;\n };\n /**\n * Clone a Uri object\n * @return {Uri} duplicate copy of the Uri\n */\n\n\n Uri.prototype.clone = function () {\n return new Uri(this.toString());\n };\n /**\n * export via AMD or CommonJS, otherwise leak a global\n */\n\n\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return Uri;\n });\n } else if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = Uri;\n } else {\n global.Uri = Uri;\n }\n})(this);","(function () {\n var crypt = require('crypt'),\n utf8 = require('charenc').utf8,\n isBuffer = require('is-buffer'),\n bin = require('charenc').bin,\n // The core\n md5 = function md5(message, options) {\n // Convert to byte array\n if (message.constructor == String) {\n if (options && options.encoding === 'binary') message = bin.stringToBytes(message);else message = utf8.stringToBytes(message);\n } else if (isBuffer(message)) message = Array.prototype.slice.call(message, 0);else if (!Array.isArray(message) && message.constructor !== Uint8Array) message = message.toString(); // else, assume byte array already\n\n var m = crypt.bytesToWords(message),\n l = message.length * 8,\n a = 1732584193,\n b = -271733879,\n c = -1732584194,\n d = 271733878; // Swap endian\n\n for (var i = 0; i < m.length; i++) {\n m[i] = (m[i] << 8 | m[i] >>> 24) & 0x00FF00FF | (m[i] << 24 | m[i] >>> 8) & 0xFF00FF00;\n } // Padding\n\n\n m[l >>> 5] |= 0x80 << l % 32;\n m[(l + 64 >>> 9 << 4) + 14] = l; // Method shortcuts\n\n var FF = md5._ff,\n GG = md5._gg,\n HH = md5._hh,\n II = md5._ii;\n\n for (var i = 0; i < m.length; i += 16) {\n var aa = a,\n bb = b,\n cc = c,\n dd = d;\n a = FF(a, b, c, d, m[i + 0], 7, -680876936);\n d = FF(d, a, b, c, m[i + 1], 12, -389564586);\n c = FF(c, d, a, b, m[i + 2], 17, 606105819);\n b = FF(b, c, d, a, m[i + 3], 22, -1044525330);\n a = FF(a, b, c, d, m[i + 4], 7, -176418897);\n d = FF(d, a, b, c, m[i + 5], 12, 1200080426);\n c = FF(c, d, a, b, m[i + 6], 17, -1473231341);\n b = FF(b, c, d, a, m[i + 7], 22, -45705983);\n a = FF(a, b, c, d, m[i + 8], 7, 1770035416);\n d = FF(d, a, b, c, m[i + 9], 12, -1958414417);\n c = FF(c, d, a, b, m[i + 10], 17, -42063);\n b = FF(b, c, d, a, m[i + 11], 22, -1990404162);\n a = FF(a, b, c, d, m[i + 12], 7, 1804603682);\n d = FF(d, a, b, c, m[i + 13], 12, -40341101);\n c = FF(c, d, a, b, m[i + 14], 17, -1502002290);\n b = FF(b, c, d, a, m[i + 15], 22, 1236535329);\n a = GG(a, b, c, d, m[i + 1], 5, -165796510);\n d = GG(d, a, b, c, m[i + 6], 9, -1069501632);\n c = GG(c, d, a, b, m[i + 11], 14, 643717713);\n b = GG(b, c, d, a, m[i + 0], 20, -373897302);\n a = GG(a, b, c, d, m[i + 5], 5, -701558691);\n d = GG(d, a, b, c, m[i + 10], 9, 38016083);\n c = GG(c, d, a, b, m[i + 15], 14, -660478335);\n b = GG(b, c, d, a, m[i + 4], 20, -405537848);\n a = GG(a, b, c, d, m[i + 9], 5, 568446438);\n d = GG(d, a, b, c, m[i + 14], 9, -1019803690);\n c = GG(c, d, a, b, m[i + 3], 14, -187363961);\n b = GG(b, c, d, a, m[i + 8], 20, 1163531501);\n a = GG(a, b, c, d, m[i + 13], 5, -1444681467);\n d = GG(d, a, b, c, m[i + 2], 9, -51403784);\n c = GG(c, d, a, b, m[i + 7], 14, 1735328473);\n b = GG(b, c, d, a, m[i + 12], 20, -1926607734);\n a = HH(a, b, c, d, m[i + 5], 4, -378558);\n d = HH(d, a, b, c, m[i + 8], 11, -2022574463);\n c = HH(c, d, a, b, m[i + 11], 16, 1839030562);\n b = HH(b, c, d, a, m[i + 14], 23, -35309556);\n a = HH(a, b, c, d, m[i + 1], 4, -1530992060);\n d = HH(d, a, b, c, m[i + 4], 11, 1272893353);\n c = HH(c, d, a, b, m[i + 7], 16, -155497632);\n b = HH(b, c, d, a, m[i + 10], 23, -1094730640);\n a = HH(a, b, c, d, m[i + 13], 4, 681279174);\n d = HH(d, a, b, c, m[i + 0], 11, -358537222);\n c = HH(c, d, a, b, m[i + 3], 16, -722521979);\n b = HH(b, c, d, a, m[i + 6], 23, 76029189);\n a = HH(a, b, c, d, m[i + 9], 4, -640364487);\n d = HH(d, a, b, c, m[i + 12], 11, -421815835);\n c = HH(c, d, a, b, m[i + 15], 16, 530742520);\n b = HH(b, c, d, a, m[i + 2], 23, -995338651);\n a = II(a, b, c, d, m[i + 0], 6, -198630844);\n d = II(d, a, b, c, m[i + 7], 10, 1126891415);\n c = II(c, d, a, b, m[i + 14], 15, -1416354905);\n b = II(b, c, d, a, m[i + 5], 21, -57434055);\n a = II(a, b, c, d, m[i + 12], 6, 1700485571);\n d = II(d, a, b, c, m[i + 3], 10, -1894986606);\n c = II(c, d, a, b, m[i + 10], 15, -1051523);\n b = II(b, c, d, a, m[i + 1], 21, -2054922799);\n a = II(a, b, c, d, m[i + 8], 6, 1873313359);\n d = II(d, a, b, c, m[i + 15], 10, -30611744);\n c = II(c, d, a, b, m[i + 6], 15, -1560198380);\n b = II(b, c, d, a, m[i + 13], 21, 1309151649);\n a = II(a, b, c, d, m[i + 4], 6, -145523070);\n d = II(d, a, b, c, m[i + 11], 10, -1120210379);\n c = II(c, d, a, b, m[i + 2], 15, 718787259);\n b = II(b, c, d, a, m[i + 9], 21, -343485551);\n a = a + aa >>> 0;\n b = b + bb >>> 0;\n c = c + cc >>> 0;\n d = d + dd >>> 0;\n }\n\n return crypt.endian([a, b, c, d]);\n }; // Auxiliary functions\n\n\n md5._ff = function (a, b, c, d, x, s, t) {\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\n return (n << s | n >>> 32 - s) + b;\n };\n\n md5._gg = function (a, b, c, d, x, s, t) {\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\n return (n << s | n >>> 32 - s) + b;\n };\n\n md5._hh = function (a, b, c, d, x, s, t) {\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\n return (n << s | n >>> 32 - s) + b;\n };\n\n md5._ii = function (a, b, c, d, x, s, t) {\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\n return (n << s | n >>> 32 - s) + b;\n }; // Package private blocksize\n\n\n md5._blocksize = 16;\n md5._digestsize = 16;\n\n module.exports = function (message, options) {\n if (message === undefined || message === null) throw new Error('Illegal argument ' + message);\n var digestbytes = crypt.wordsToBytes(md5(message, options));\n return options && options.asBytes ? digestbytes : options && options.asString ? bin.bytesToString(digestbytes) : crypt.bytesToHex(digestbytes);\n };\n})();","/**\n * Helpers.\n */\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n\n throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(val));\n};\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\n\nfunction parse(str) {\n str = String(str);\n\n if (str.length > 100) {\n return;\n }\n\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str);\n\n if (!match) {\n return;\n }\n\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n\n default:\n return undefined;\n }\n}\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n\n return ms + 'ms';\n}\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n\n return ms + ' ms';\n}\n/**\n * Pluralization helper.\n */\n\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}","\"use strict\"; // ref: https://github.com/tc39/proposal-global\n\nvar getGlobal = function getGlobal() {\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n throw new Error('unable to locate global object');\n};\n\nvar global = getGlobal();\nmodule.exports = exports = global.fetch; // Needed for TypeScript and Webpack.\n\nif (global.fetch) {\n exports.default = global.fetch.bind(global);\n}\n\nexports.Headers = global.Headers;\nexports.Request = global.Request;\nexports.Response = global.Response;","/*! *****************************************************************************\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\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 var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, 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}\n/** @deprecated */\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}\n/** @deprecated */\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}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\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;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}","/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nvar SUPPORTED_LOCALE = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"i\",\n I: \"\\u0131\",\n İ: \"i\"\n }\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"i\",\n I: \"\\u0131\",\n İ: \"i\"\n }\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"i\\u0307\",\n J: \"j\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"i\\u0307\\u0300\",\n Í: \"i\\u0307\\u0301\",\n Ĩ: \"i\\u0307\\u0303\"\n }\n }\n};\n/**\n * Localized lower case.\n */\n\nexport function localeLowerCase(str, locale) {\n var lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang) return lowerCase(str.replace(lang.regexp, function (m) {\n return lang.map[m];\n }));\n return lowerCase(str);\n}\n/**\n * Lower case as a function.\n */\n\nexport function lowerCase(str) {\n return str.toLowerCase();\n}","import { lowerCase } from \"lower-case\"; // Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\n\nvar DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g]; // Remove all non-word characters.\n\nvar DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\n\nexport function noCase(input, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _a = options.splitRegexp,\n splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a,\n _b = options.stripRegexp,\n stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b,\n _c = options.transform,\n transform = _c === void 0 ? lowerCase : _c,\n _d = options.delimiter,\n delimiter = _d === void 0 ? \" \" : _d;\n var result = replace(replace(input, splitRegexp, \"$1\\0$2\"), stripRegexp, \"\\0\");\n var start = 0;\n var end = result.length; // Trim the delimiter from around the output string.\n\n while (result.charAt(start) === \"\\0\") {\n start++;\n }\n\n while (result.charAt(end - 1) === \"\\0\") {\n end--;\n } // Transform each token independently.\n\n\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n/**\n * Replace `re` in the input string with the replacement value.\n */\n\nfunction replace(input, re, value) {\n if (re instanceof RegExp) return input.replace(re, value);\n return re.reduce(function (input, re) {\n return input.replace(re, value);\n }, input);\n}","import { __assign } from \"tslib\";\nimport { noCase } from \"no-case\";\nexport function pascalCaseTransform(input, index) {\n var firstChar = input.charAt(0);\n var lowerChars = input.substr(1).toLowerCase();\n\n if (index > 0 && firstChar >= \"0\" && firstChar <= \"9\") {\n return \"_\" + firstChar + lowerChars;\n }\n\n return \"\" + firstChar.toUpperCase() + lowerChars;\n}\nexport function pascalCaseTransformMerge(input) {\n return input.charAt(0).toUpperCase() + input.slice(1).toLowerCase();\n}\nexport function pascalCase(input, options) {\n if (options === void 0) {\n options = {};\n }\n\n return noCase(input, __assign({\n delimiter: \"\",\n transform: pascalCaseTransform\n }, options));\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = all;\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction all() {\n for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) {\n validators[_key] = arguments[_key];\n }\n\n function allPropTypes() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var error = null;\n validators.forEach(function (validator) {\n if (error != null) {\n return;\n }\n\n var result = validator.apply(undefined, args);\n\n if (result != null) {\n error = result;\n }\n });\n return error;\n }\n\n return (0, _createChainableTypeChecker2.default)(allPropTypes);\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createChainableTypeChecker;\n/**\n * Copyright 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// Mostly taken from ReactPropTypes.\n\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<>';\n var propFullNameSafe = propFullName || propName;\n\n if (props[propName] == null) {\n if (isRequired) {\n return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));\n }\n\n return null;\n }\n\n for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n args[_key - 6] = arguments[_key];\n }\n\n return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n}\n\nmodule.exports = exports['default'];","/**\n * A function that always returns `false`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.T\n * @example\n *\n * R.F(); //=> false\n */\nvar F = function F() {\n return false;\n};\n\nexport default F;","/**\n * A function that always returns `true`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.F\n * @example\n *\n * R.T(); //=> true\n */\nvar T = function T() {\n return true;\n};\n\nexport default T;","/**\n * A special placeholder value used to specify \"gaps\" within curried functions,\n * allowing partial application of any combination of arguments, regardless of\n * their positions.\n *\n * If `g` is a curried ternary function and `_` is `R.__`, the following are\n * equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2, _)(1, 3)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @name __\n * @constant\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @example\n *\n * const greet = R.replace('{name}', R.__, 'Hello, {name}!');\n * greet('Alice'); //=> 'Hello, Alice!'\n */\nexport default {\n '@@functional/placeholder': true\n};","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Adds two values.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a\n * @param {Number} b\n * @return {Number}\n * @see R.subtract\n * @example\n *\n * R.add(2, 3); //=> 5\n * R.add(7)(10); //=> 17\n */\n\nvar add = /*#__PURE__*/_curry2(function add(a, b) {\n return Number(a) + Number(b);\n});\n\nexport default add;","/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nexport default function _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n idx = 0;\n\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n\n idx = 0;\n\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n\n return result;\n}","export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}","import _arity from \"./_arity.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n\n combined[combinedIdx] = result;\n\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n\n combinedIdx += 1;\n }\n\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _curryN from \"./internal/_curryN.js\";\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curryN = /*#__PURE__*/_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n\n return _arity(length, _curryN(length, [], fn));\n});\n\nexport default curryN;","import _concat from \"./internal/_concat.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Creates a new list iteration function from an existing one by adding two new\n * parameters to its callback function: the current index, and the entire list.\n *\n * This would turn, for instance, [`R.map`](#map) function into one that\n * more closely resembles `Array.prototype.map`. Note that this will only work\n * for functions in which the iteration callback function is the first\n * parameter, and where the list is the last parameter. (This latter might be\n * unimportant if the list parameter is not used.)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Function\n * @category List\n * @sig ((a ... -> b) ... -> [a] -> *) -> ((a ..., Int, [a] -> b) ... -> [a] -> *)\n * @param {Function} fn A list iteration function that does not pass index or list to its callback\n * @return {Function} An altered list iteration function that passes (item, index, list) to its callback\n * @example\n *\n * const mapIndexed = R.addIndex(R.map);\n * mapIndexed((val, idx) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']);\n * //=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r']\n */\n\nvar addIndex = /*#__PURE__*/_curry1(function addIndex(fn) {\n return curryN(fn.length, function () {\n var idx = 0;\n var origFn = arguments[0];\n var list = arguments[arguments.length - 1];\n var args = Array.prototype.slice.call(arguments, 0);\n\n args[0] = function () {\n var result = origFn.apply(this, _concat(arguments, [idx, list]));\n idx += 1;\n return result;\n };\n\n return fn.apply(this, args);\n });\n});\n\nexport default addIndex;","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","import _concat from \"./internal/_concat.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Applies a function to the value at the given index of an array, returning a\n * new copy of the array with the element at the given index replaced with the\n * result of the function application.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> (a -> a) -> [a] -> [a]\n * @param {Number} idx The index.\n * @param {Function} fn The function to apply.\n * @param {Array|Arguments} list An array-like object whose value\n * at the supplied index will be replaced.\n * @return {Array} A copy of the supplied array-like object with\n * the element at index `idx` replaced with the value\n * returned by applying `fn` to the existing element.\n * @see R.update\n * @example\n *\n * R.adjust(1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'B', 'c', 'd']\n * R.adjust(-1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c', 'D']\n * @symb R.adjust(-1, f, [a, b]) = [a, f(b)]\n * @symb R.adjust(0, f, [a, b]) = [f(a), b]\n */\n\nvar adjust = /*#__PURE__*/_curry3(function adjust(idx, fn, list) {\n if (idx >= list.length || idx < -list.length) {\n return list;\n }\n\n var start = idx < 0 ? list.length : 0;\n\n var _idx = start + idx;\n\n var _list = _concat(list);\n\n _list[_idx] = fn(list[_idx]);\n return _list;\n});\n\nexport default adjust;","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}","import _isArray from \"./_isArray.js\";\nimport _isTransformer from \"./_isTransformer.js\";\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\nexport default function _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n\n if (!_isArray(obj)) {\n var idx = 0;\n\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n\n idx += 1;\n }\n\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n\n return fn.apply(this, arguments);\n };\n}","export default function _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","export default {\n init: function init() {\n return this.xf['@@transducer/init']();\n },\n result: function result(_result) {\n return this.xf['@@transducer/result'](_result);\n }\n};","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XAll = /*#__PURE__*/function () {\n function XAll(f, xf) {\n this.xf = xf;\n this.f = f;\n this.all = true;\n }\n\n XAll.prototype['@@transducer/init'] = _xfBase.init;\n\n XAll.prototype['@@transducer/result'] = function (result) {\n if (this.all) {\n result = this.xf['@@transducer/step'](result, true);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAll.prototype['@@transducer/step'] = function (result, input) {\n if (!this.f(input)) {\n this.all = false;\n result = _reduced(this.xf['@@transducer/step'](result, false));\n }\n\n return result;\n };\n\n return XAll;\n}();\n\nvar _xall = /*#__PURE__*/_curry2(function _xall(f, xf) {\n return new XAll(f, xf);\n});\n\nexport default _xall;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xall from \"./internal/_xall.js\";\n/**\n * Returns `true` if all elements of the list match the predicate, `false` if\n * there are any that don't.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by every element, `false`\n * otherwise.\n * @see R.any, R.none, R.transduce\n * @example\n *\n * const equals3 = R.equals(3);\n * R.all(equals3)([3, 3, 3, 3]); //=> true\n * R.all(equals3)([3, 3, 1, 3]); //=> false\n */\n\nvar all = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['all'], _xall, function all(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (!fn(list[idx])) {\n return false;\n }\n\n idx += 1;\n }\n\n return true;\n}));\n\nexport default all;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\n\nvar max = /*#__PURE__*/_curry2(function max(a, b) {\n return b > a ? b : a;\n});\n\nexport default max;","export default function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n\n return result;\n}","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import _curry1 from \"./_curry1.js\";\nimport _isArray from \"./_isArray.js\";\nimport _isString from \"./_isString.js\";\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\nvar _isArrayLike = /*#__PURE__*/_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n\n if (!x) {\n return false;\n }\n\n if (typeof x !== 'object') {\n return false;\n }\n\n if (_isString(x)) {\n return false;\n }\n\n if (x.nodeType === 1) {\n return !!x.length;\n }\n\n if (x.length === 0) {\n return true;\n }\n\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n\n return false;\n});\n\nexport default _isArrayLike;","var XWrap = /*#__PURE__*/function () {\n function XWrap(fn) {\n this.f = fn;\n }\n\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\nvar bind = /*#__PURE__*/_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\n\nexport default bind;","import _isArrayLike from \"./_isArrayLike.js\";\nimport _xwrap from \"./_xwrap.js\";\nimport bind from \"../bind.js\";\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n idx += 1;\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n step = iter.next();\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XMap = /*#__PURE__*/function () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap = /*#__PURE__*/_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\n\nexport default _xmap;","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\n\nvar _isArguments = /*#__PURE__*/function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\"; // cover IE < 9 keys issues\n\nvar hasEnumBug = ! /*#__PURE__*/{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\nexport default keys;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _map from \"./internal/_map.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xmap from \"./internal/_xmap.js\";\nimport curryN from \"./curryN.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\nvar map = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n\n default:\n return _map(fn, functor);\n }\n}));\n\nexport default map;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","import _curry2 from \"./internal/_curry2.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\n\nvar nth = /*#__PURE__*/_curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\n\nexport default nth;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport nth from \"./nth.js\";\n/**\n * Retrieves the values at given paths of an object.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Object\n * @typedefn Idx = [String | Int]\n * @sig [Idx] -> {a} -> [a | Undefined]\n * @param {Array} pathsArray The array of paths to be fetched.\n * @param {Object} obj The object to retrieve the nested properties from.\n * @return {Array} A list consisting of values at paths specified by \"pathsArray\".\n * @see R.path\n * @example\n *\n * R.paths([['a', 'b'], ['p', 0, 'q']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, 3]\n * R.paths([['a', 'b'], ['p', 'r']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, undefined]\n */\n\nvar paths = /*#__PURE__*/_curry2(function paths(pathsArray, obj) {\n return pathsArray.map(function (paths) {\n var val = obj;\n var idx = 0;\n var p;\n\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n\n p = paths[idx];\n val = _isInteger(p) ? nth(p, val) : val[p];\n idx += 1;\n }\n\n return val;\n });\n});\n\nexport default paths;","import _curry2 from \"./internal/_curry2.js\";\nimport paths from \"./paths.js\";\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop, R.nth\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n * R.path(['a', 'b', 0], {a: {b: [1, 2, 3]}}); //=> 1\n * R.path(['a', 'b', -2], {a: {b: [1, 2, 3]}}); //=> 2\n */\n\nvar path = /*#__PURE__*/_curry2(function path(pathAr, obj) {\n return paths([pathAr], obj)[0];\n});\n\nexport default path;","import _curry2 from \"./internal/_curry2.js\";\nimport path from \"./path.js\";\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig Idx -> {s: a} -> a | Undefined\n * @param {String|Number} p The property name or array index\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path, R.nth\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.prop(0, [100]); //=> 100\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop = /*#__PURE__*/_curry2(function prop(p, obj) {\n return path([p], obj);\n});\n\nexport default prop;","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\nimport prop from \"./prop.js\";\n/**\n * Returns a new list by plucking the same named property off all objects in\n * the list supplied.\n *\n * `pluck` will work on\n * any [functor](https://github.com/fantasyland/fantasy-land#functor) in\n * addition to arrays, as it is equivalent to `R.map(R.prop(k), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => k -> f {k: v} -> f v\n * @param {Number|String} key The key name to pluck off of each object.\n * @param {Array} f The array or functor to consider.\n * @return {Array} The list of values for the given key.\n * @see R.props\n * @example\n *\n * var getAges = R.pluck('age');\n * getAges([{name: 'fred', age: 29}, {name: 'wilma', age: 27}]); //=> [29, 27]\n *\n * R.pluck(0, [[1, 2], [3, 4]]); //=> [1, 3]\n * R.pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5}\n * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]\n * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]\n */\n\nvar pluck = /*#__PURE__*/_curry2(function pluck(p, list) {\n return map(prop(p), list);\n});\n\nexport default pluck;","import _curry3 from \"./internal/_curry3.js\";\nimport _reduce from \"./internal/_reduce.js\";\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\nvar reduce = /*#__PURE__*/_curry3(_reduce);\n\nexport default reduce;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if every one of the provided predicates is satisfied\n * by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.anyPass\n * @example\n *\n * const isQueen = R.propEq('rank', 'Q');\n * const isSpade = R.propEq('suit', '♠︎');\n * const isQueenOfSpades = R.allPass([isQueen, isSpade]);\n *\n * isQueenOfSpades({rank: 'Q', suit: '♣︎'}); //=> false\n * isQueenOfSpades({rank: 'Q', suit: '♠︎'}); //=> true\n */\n\nvar allPass = /*#__PURE__*/_curry1(function allPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n\n while (idx < len) {\n if (!preds[idx].apply(this, arguments)) {\n return false;\n }\n\n idx += 1;\n }\n\n return true;\n });\n});\n\nexport default allPass;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Returns a function that always returns the given value. Note that for\n * non-primitives the value returned is a reference to the original value.\n *\n * This function is known as `const`, `constant`, or `K` (for K combinator) in\n * other languages and libraries.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> (* -> a)\n * @param {*} val The value to wrap in a function\n * @return {Function} A Function :: * -> val.\n * @example\n *\n * const t = R.always('Tee');\n * t(); //=> 'Tee'\n */\n\nvar always = /*#__PURE__*/_curry1(function always(val) {\n return function () {\n return val;\n };\n});\n\nexport default always;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if both arguments are `true`; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if it is falsy, otherwise the second argument.\n * @see R.both, R.xor\n * @example\n *\n * R.and(true, true); //=> true\n * R.and(true, false); //=> false\n * R.and(false, true); //=> false\n * R.and(false, false); //=> false\n */\n\nvar and = /*#__PURE__*/_curry2(function and(a, b) {\n return a && b;\n});\n\nexport default and;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XAny = /*#__PURE__*/function () {\n function XAny(f, xf) {\n this.xf = xf;\n this.f = f;\n this.any = false;\n }\n\n XAny.prototype['@@transducer/init'] = _xfBase.init;\n\n XAny.prototype['@@transducer/result'] = function (result) {\n if (!this.any) {\n result = this.xf['@@transducer/step'](result, false);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XAny.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.any = true;\n result = _reduced(this.xf['@@transducer/step'](result, true));\n }\n\n return result;\n };\n\n return XAny;\n}();\n\nvar _xany = /*#__PURE__*/_curry2(function _xany(f, xf) {\n return new XAny(f, xf);\n});\n\nexport default _xany;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xany from \"./internal/_xany.js\";\n/**\n * Returns `true` if at least one of the elements of the list match the predicate,\n * `false` otherwise.\n *\n * Dispatches to the `any` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by at least one element, `false`\n * otherwise.\n * @see R.all, R.none, R.transduce\n * @example\n *\n * const lessThan0 = R.flip(R.lt)(0);\n * const lessThan2 = R.flip(R.lt)(2);\n * R.any(lessThan0)([1, 2]); //=> false\n * R.any(lessThan2)([1, 2]); //=> true\n */\n\nvar any = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['any'], _xany, function any(fn, list) {\n var idx = 0;\n\n while (idx < list.length) {\n if (fn(list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}));\n\nexport default any;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if at least one of the provided predicates is\n * satisfied by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.allPass\n * @example\n *\n * const isClub = R.propEq('suit', '♣');\n * const isSpade = R.propEq('suit', '♠');\n * const isBlackCard = R.anyPass([isClub, isSpade]);\n *\n * isBlackCard({rank: '10', suit: '♣'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♠'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♦'}); //=> false\n */\n\nvar anyPass = /*#__PURE__*/_curry1(function anyPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n\n while (idx < len) {\n if (preds[idx].apply(this, arguments)) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n });\n});\n\nexport default anyPass;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport map from \"./map.js\";\n/**\n * ap applies a list of functions to a list of values.\n *\n * Dispatches to the `ap` method of the second argument, if present. Also\n * treats curried functions as applicatives.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig [a -> b] -> [a] -> [b]\n * @sig Apply f => f (a -> b) -> f a -> f b\n * @sig (r -> a -> b) -> (r -> a) -> (r -> b)\n * @param {*} applyF\n * @param {*} applyX\n * @return {*}\n * @example\n *\n * R.ap([R.multiply(2), R.add(3)], [1,2,3]); //=> [2, 4, 6, 4, 5, 6]\n * R.ap([R.concat('tasty '), R.toUpper], ['pizza', 'salad']); //=> [\"tasty pizza\", \"tasty salad\", \"PIZZA\", \"SALAD\"]\n *\n * // R.ap can also be used as S combinator\n * // when only two functions are passed\n * R.ap(R.concat, R.toUpper)('Ramda') //=> 'RamdaRAMDA'\n * @symb R.ap([f, g], [a, b]) = [f(a), f(b), g(a), g(b)]\n */\n\nvar ap = /*#__PURE__*/_curry2(function ap(applyF, applyX) {\n return typeof applyX['fantasy-land/ap'] === 'function' ? applyX['fantasy-land/ap'](applyF) : typeof applyF.ap === 'function' ? applyF.ap(applyX) : typeof applyF === 'function' ? function (x) {\n return applyF(x)(applyX(x));\n } : _reduce(function (acc, f) {\n return _concat(acc, map(f, applyX));\n }, [], applyF);\n});\n\nexport default ap;","export default function _aperture(n, list) {\n var idx = 0;\n var limit = list.length - (n - 1);\n var acc = new Array(limit >= 0 ? limit : 0);\n\n while (idx < limit) {\n acc[idx] = Array.prototype.slice.call(list, idx, idx + n);\n idx += 1;\n }\n\n return acc;\n}","import _concat from \"./_concat.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XAperture = /*#__PURE__*/function () {\n function XAperture(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n\n XAperture.prototype['@@transducer/init'] = _xfBase.init;\n\n XAperture.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XAperture.prototype['@@transducer/step'] = function (result, input) {\n this.store(input);\n return this.full ? this.xf['@@transducer/step'](result, this.getCopy()) : result;\n };\n\n XAperture.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n XAperture.prototype.getCopy = function () {\n return _concat(Array.prototype.slice.call(this.acc, this.pos), Array.prototype.slice.call(this.acc, 0, this.pos));\n };\n\n return XAperture;\n}();\n\nvar _xaperture = /*#__PURE__*/_curry2(function _xaperture(n, xf) {\n return new XAperture(n, xf);\n});\n\nexport default _xaperture;","import _aperture from \"./internal/_aperture.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xaperture from \"./internal/_xaperture.js\";\n/**\n * Returns a new list, composed of n-tuples of consecutive elements. If `n` is\n * greater than the length of the list, an empty list is returned.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @param {Number} n The size of the tuples to create\n * @param {Array} list The list to split into `n`-length tuples\n * @return {Array} The resulting list of `n`-length tuples\n * @see R.transduce\n * @example\n *\n * R.aperture(2, [1, 2, 3, 4, 5]); //=> [[1, 2], [2, 3], [3, 4], [4, 5]]\n * R.aperture(3, [1, 2, 3, 4, 5]); //=> [[1, 2, 3], [2, 3, 4], [3, 4, 5]]\n * R.aperture(7, [1, 2, 3, 4, 5]); //=> []\n */\n\nvar aperture = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xaperture, _aperture));\n\nexport default aperture;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list containing the contents of the given list, followed by\n * the given element.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The element to add to the end of the new list.\n * @param {Array} list The list of elements to add a new item to.\n * list.\n * @return {Array} A new list containing the elements of the old list followed by `el`.\n * @see R.prepend\n * @example\n *\n * R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']\n * R.append('tests', []); //=> ['tests']\n * R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]\n */\n\nvar append = /*#__PURE__*/_curry2(function append(el, list) {\n return _concat(list, [el]);\n});\n\nexport default append;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Applies function `fn` to the argument list `args`. This is useful for\n * creating a fixed-arity function from a variadic function. `fn` should be a\n * bound function if context is significant.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> a) -> [*] -> a\n * @param {Function} fn The function which will be called with `args`\n * @param {Array} args The arguments to call `fn` with\n * @return {*} result The result, equivalent to `fn(...args)`\n * @see R.call, R.unapply\n * @example\n *\n * const nums = [1, 2, 3, -99, 42, 6, 7];\n * R.apply(Math.max, nums); //=> 42\n * @symb R.apply(f, [a, b, c]) = f(a, b, c)\n */\n\nvar apply = /*#__PURE__*/_curry2(function apply(fn, args) {\n return fn.apply(this, args);\n});\n\nexport default apply;","import _curry1 from \"./internal/_curry1.js\";\nimport keys from \"./keys.js\";\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\n\nvar values = /*#__PURE__*/_curry1(function values(obj) {\n var props = keys(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n\n return vals;\n});\n\nexport default values;","import _curry1 from \"./internal/_curry1.js\";\nimport apply from \"./apply.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\nimport keys from \"./keys.js\";\nimport values from \"./values.js\"; // Use custom mapValues function to avoid issues with specs that include a \"map\" key and R.map\n// delegating calls to .map\n\nfunction mapValues(fn, obj) {\n return keys(obj).reduce(function (acc, key) {\n acc[key] = fn(obj[key]);\n return acc;\n }, {});\n}\n/**\n * Given a spec object recursively mapping properties to functions, creates a\n * function producing an object of the same structure, by mapping each property\n * to the result of calling its associated function with the supplied arguments.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig {k: ((a, b, ..., m) -> v)} -> ((a, b, ..., m) -> {k: v})\n * @param {Object} spec an object recursively mapping properties to functions for\n * producing the values for these properties.\n * @return {Function} A function that returns an object of the same structure\n * as `spec', with each property set to the value returned by calling its\n * associated function with the supplied arguments.\n * @see R.converge, R.juxt\n * @example\n *\n * const getMetrics = R.applySpec({\n * sum: R.add,\n * nested: { mul: R.multiply }\n * });\n * getMetrics(2, 4); // => { sum: 6, nested: { mul: 8 } }\n * @symb R.applySpec({ x: f, y: { z: g } })(a, b) = { x: f(a, b), y: { z: g(a, b) } }\n */\n\n\nvar applySpec = /*#__PURE__*/_curry1(function applySpec(spec) {\n spec = mapValues(function (v) {\n return typeof v == 'function' ? v : applySpec(v);\n }, spec);\n return curryN(reduce(max, 0, pluck('length', values(spec))), function () {\n var args = arguments;\n return mapValues(function (f) {\n return apply(f, args);\n }, spec);\n });\n});\n\nexport default applySpec;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes a value and applies a function to it.\n *\n * This function is also known as the `thrush` combinator.\n *\n * @func\n * @memberOf R\n * @since v0.25.0\n * @category Function\n * @sig a -> (a -> b) -> b\n * @param {*} x The value\n * @param {Function} f The function to apply\n * @return {*} The result of applying `f` to `x`\n * @example\n *\n * const t42 = R.applyTo(42);\n * t42(R.identity); //=> 42\n * t42(R.add(1)); //=> 43\n */\n\nvar applyTo = /*#__PURE__*/_curry2(function applyTo(x, f) {\n return f(x);\n});\n\nexport default applyTo;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Makes an ascending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) < fn(b), `1` if fn(b) < fn(a), otherwise `0`\n * @see R.descend\n * @example\n *\n * const byAge = R.ascend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByYoungestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\nvar ascend = /*#__PURE__*/_curry3(function ascend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n});\n\nexport default ascend;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig String -> a -> {k: v} -> {k: v}\n * @param {String} prop The property name to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except for the changed property.\n * @see R.dissoc, R.pick\n * @example\n *\n * R.assoc('c', 3, {a: 1, b: 2}); //=> {a: 1, b: 2, c: 3}\n */\n\nvar assoc = /*#__PURE__*/_curry3(function assoc(prop, val, obj) {\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n result[prop] = val;\n return result;\n});\n\nexport default assoc;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\nvar isNil = /*#__PURE__*/_curry1(function isNil(x) {\n return x == null;\n});\n\nexport default isNil;","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport assoc from \"./assoc.js\";\nimport isNil from \"./isNil.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\n\nvar assocPath = /*#__PURE__*/_curry3(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n\n var idx = path[0];\n\n if (path.length > 1) {\n var nextObj = !isNil(obj) && _has(idx, obj) ? obj[idx] : _isInteger(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n\n if (_isInteger(idx) && _isArray(obj)) {\n var arr = [].concat(obj);\n arr[idx] = val;\n return arr;\n } else {\n return assoc(idx, val, obj);\n }\n});\n\nexport default assocPath;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly `n` parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} n The desired arity of the new function.\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity `n`.\n * @see R.binary, R.unary\n * @example\n *\n * const takesTwoArgs = (a, b) => [a, b];\n *\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.nAry(1, takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only `n` arguments are passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.nAry(0, f)(a, b) = f()\n * @symb R.nAry(1, f)(a, b) = f(a)\n * @symb R.nAry(2, f)(a, b) = f(a, b)\n */\n\nvar nAry = /*#__PURE__*/_curry2(function nAry(n, fn) {\n switch (n) {\n case 0:\n return function () {\n return fn.call(this);\n };\n\n case 1:\n return function (a0) {\n return fn.call(this, a0);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.call(this, a0, a1);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.call(this, a0, a1, a2);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.call(this, a0, a1, a2, a3);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.call(this, a0, a1, a2, a3, a4);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.call(this, a0, a1, a2, a3, a4, a5);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n };\n\n default:\n throw new Error('First argument to nAry must be a non-negative integer no greater than ten');\n }\n});\n\nexport default nAry;","import _curry1 from \"./internal/_curry1.js\";\nimport nAry from \"./nAry.js\";\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 2 parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> c) -> (a, b -> c)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 2.\n * @see R.nAry, R.unary\n * @example\n *\n * const takesThreeArgs = function(a, b, c) {\n * return [a, b, c];\n * };\n * takesThreeArgs.length; //=> 3\n * takesThreeArgs(1, 2, 3); //=> [1, 2, 3]\n *\n * const takesTwoArgs = R.binary(takesThreeArgs);\n * takesTwoArgs.length; //=> 2\n * // Only 2 arguments are passed to the wrapped function\n * takesTwoArgs(1, 2, 3); //=> [1, 2, undefined]\n * @symb R.binary(f)(a, b, c) = f(a, b)\n */\n\nvar binary = /*#__PURE__*/_curry1(function binary(fn) {\n return nAry(2, fn);\n});\n\nexport default binary;","export default function _isFunction(x) {\n var type = Object.prototype.toString.call(x);\n return type === '[object Function]' || type === '[object AsyncFunction]' || type === '[object GeneratorFunction]' || type === '[object AsyncGeneratorFunction]';\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport ap from \"./ap.js\";\nimport curryN from \"./curryN.js\";\nimport map from \"./map.js\";\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" that\n * many lists, Functions or other objects that satisfy the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig Number -> (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.lift, R.ap\n * @example\n *\n * const madd3 = R.liftN(3, (...args) => R.sum(args));\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n */\n\nvar liftN = /*#__PURE__*/_curry2(function liftN(arity, fn) {\n var lifted = curryN(arity, fn);\n return curryN(arity, function () {\n return _reduce(ap, map(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));\n });\n});\n\nexport default liftN;","import _curry1 from \"./internal/_curry1.js\";\nimport liftN from \"./liftN.js\";\n/**\n * \"lifts\" a function of arity > 1 so that it may \"map over\" a list, Function or other\n * object that satisfies the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.liftN\n * @example\n *\n * const madd3 = R.lift((a, b, c) => a + b + c);\n *\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n *\n * const madd5 = R.lift((a, b, c, d, e) => a + b + c + d + e);\n *\n * madd5([1,2], [3], [4, 5], [6], [7, 8]); //=> [21, 22, 22, 23, 22, 23, 23, 24]\n */\n\nvar lift = /*#__PURE__*/_curry1(function lift(fn) {\n return liftN(fn.length, fn);\n});\n\nexport default lift;","import _curry2 from \"./internal/_curry2.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport and from \"./and.js\";\nimport lift from \"./lift.js\";\n/**\n * A function which calls the two provided functions and returns the `&&`\n * of the results.\n * It returns the result of the first function if it is false-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * false-y value.\n *\n * In addition to functions, `R.both` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f A predicate\n * @param {Function} g Another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `&&`s their outputs together.\n * @see R.and\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const lt20 = R.lt(R.__, 20)\n * const f = R.both(gt10, lt20);\n * f(15); //=> true\n * f(30); //=> false\n *\n * R.both(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(false)\n * R.both([false, false, 'a'], [11]); //=> [false, false, 11]\n */\n\nvar both = /*#__PURE__*/_curry2(function both(f, g) {\n return _isFunction(f) ? function _both() {\n return f.apply(this, arguments) && g.apply(this, arguments);\n } : lift(and)(f, g);\n});\n\nexport default both;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Returns a curried equivalent of the provided function. The curried function\n * has two unusual capabilities. First, its arguments needn't be provided one\n * at a time. If `f` is a ternary function and `g` is `R.curry(f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> a) -> (* -> a)\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curryN, R.partial\n * @example\n *\n * const addFourNumbers = (a, b, c, d) => a + b + c + d;\n *\n * const curriedAddFourNumbers = R.curry(addFourNumbers);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curry = /*#__PURE__*/_curry1(function curry(fn) {\n return curryN(fn.length, fn);\n});\n\nexport default curry;","import curry from \"./curry.js\";\n/**\n * Returns the result of calling its first argument with the remaining\n * arguments. This is occasionally useful as a converging function for\n * [`R.converge`](#converge): the first branch can produce a function while the\n * remaining branches produce values to be passed to that function as its\n * arguments.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig (*... -> a),*... -> a\n * @param {Function} fn The function to apply to the remaining arguments.\n * @param {...*} args Any number of positional arguments.\n * @return {*}\n * @see R.apply\n * @example\n *\n * R.call(R.add, 1, 2); //=> 3\n *\n * const indentN = R.pipe(R.repeat(' '),\n * R.join(''),\n * R.replace(/^(?!$)/gm));\n *\n * const format = R.converge(R.call, [\n * R.pipe(R.prop('indent'), indentN),\n * R.prop('value')\n * ]);\n *\n * format({indent: 2, value: 'foo\\nbar\\nbaz\\n'}); //=> ' foo\\n bar\\n baz\\n'\n * @symb R.call(f, a, b) = f(a, b)\n */\n\nvar call = /*#__PURE__*/curry(function call(fn) {\n return fn.apply(this, Array.prototype.slice.call(arguments, 1));\n});\nexport default call;","import _isArrayLike from \"./_isArrayLike.js\";\n/**\n * `_makeFlat` is a helper function that returns a one-level or fully recursive\n * function based on the flag passed in.\n *\n * @private\n */\n\nexport default function _makeFlat(recursive) {\n return function flatt(list) {\n var value, jlen, j;\n var result = [];\n var idx = 0;\n var ilen = list.length;\n\n while (idx < ilen) {\n if (_isArrayLike(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n };\n}","import _forceReduced from \"./_forceReduced.js\";\nimport _isArrayLike from \"./_isArrayLike.js\";\nimport _reduce from \"./_reduce.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar preservingReduced = function preservingReduced(xf) {\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function transducerResult(result) {\n return xf['@@transducer/result'](result);\n },\n '@@transducer/step': function transducerStep(result, input) {\n var ret = xf['@@transducer/step'](result, input);\n return ret['@@transducer/reduced'] ? _forceReduced(ret) : ret;\n }\n };\n};\n\nvar _flatCat = function _xcat(xf) {\n var rxf = preservingReduced(xf);\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function transducerResult(result) {\n return rxf['@@transducer/result'](result);\n },\n '@@transducer/step': function transducerStep(result, input) {\n return !_isArrayLike(input) ? _reduce(rxf, result, [input]) : _reduce(rxf, result, input);\n }\n };\n};\n\nexport default _flatCat;","export default function _forceReduced(x) {\n return {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _makeFlat from \"./internal/_makeFlat.js\";\nimport _xchain from \"./internal/_xchain.js\";\nimport map from \"./map.js\";\n/**\n * `chain` maps a function over a list and concatenates the results. `chain`\n * is also known as `flatMap` in some libraries.\n *\n * Dispatches to the `chain` method of the second argument, if present,\n * according to the [FantasyLand Chain spec](https://github.com/fantasyland/fantasy-land#chain).\n *\n * If second argument is a function, `chain(f, g)(x)` is equivalent to `f(g(x), x)`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain m => (a -> m b) -> m a -> m b\n * @param {Function} fn The function to map with\n * @param {Array} list The list to map over\n * @return {Array} The result of flat-mapping `list` with `fn`\n * @example\n *\n * const duplicate = n => [n, n];\n * R.chain(duplicate, [1, 2, 3]); //=> [1, 1, 2, 2, 3, 3]\n *\n * R.chain(R.append, R.head)([1, 2, 3]); //=> [1, 2, 3, 1]\n */\n\nvar chain = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['fantasy-land/chain', 'chain'], _xchain, function chain(fn, monad) {\n if (typeof monad === 'function') {\n return function (x) {\n return fn(monad(x))(x);\n };\n }\n\n return _makeFlat(false)(map(fn, monad));\n}));\n\nexport default chain;","import _curry2 from \"./_curry2.js\";\nimport _flatCat from \"./_flatCat.js\";\nimport map from \"../map.js\";\n\nvar _xchain = /*#__PURE__*/_curry2(function _xchain(f, xf) {\n return map(f, _flatCat(xf));\n});\n\nexport default _xchain;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Restricts a number to be within a range.\n *\n * Also works for other ordered types such as Strings and Dates.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Relation\n * @sig Ord a => a -> a -> a -> a\n * @param {Number} minimum The lower limit of the clamp (inclusive)\n * @param {Number} maximum The upper limit of the clamp (inclusive)\n * @param {Number} value Value to be clamped\n * @return {Number} Returns `minimum` when `val < minimum`, `maximum` when `val > maximum`, returns `val` otherwise\n * @example\n *\n * R.clamp(1, 10, -5) // => 1\n * R.clamp(1, 10, 15) // => 10\n * R.clamp(1, 10, 4) // => 4\n */\n\nvar clamp = /*#__PURE__*/_curry3(function clamp(min, max, value) {\n if (min > max) {\n throw new Error('min must not be greater than max in clamp(min, max, value)');\n }\n\n return value < min ? min : value > max ? max : value;\n});\n\nexport default clamp;","export default function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));\n}","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\n\nexport default type;","import _cloneRegExp from \"./_cloneRegExp.js\";\nimport type from \"../type.js\";\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Array} refFrom Array containing the source references\n * @param {Array} refTo Array containing the copied source references\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\n\nexport default function _clone(value, refFrom, refTo, deep) {\n var copy = function copy(copiedValue) {\n var len = refFrom.length;\n var idx = 0;\n\n while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n\n idx += 1;\n }\n\n refFrom[idx + 1] = value;\n refTo[idx + 1] = copiedValue;\n\n for (var key in value) {\n copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];\n }\n\n return copiedValue;\n };\n\n switch (type(value)) {\n case 'Object':\n return copy({});\n\n case 'Array':\n return copy([]);\n\n case 'Date':\n return new Date(value.valueOf());\n\n case 'RegExp':\n return _cloneRegExp(value);\n\n default:\n return value;\n }\n}","import _clone from \"./internal/_clone.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Creates a deep copy of the value which may contain (nested) `Array`s and\n * `Object`s, `Number`s, `String`s, `Boolean`s and `Date`s. `Function`s are\n * assigned by reference rather than copied\n *\n * Dispatches to a `clone` method if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\n\nvar clone = /*#__PURE__*/_curry1(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : _clone(value, [], [], true);\n});\n\nexport default clone;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Makes a comparator function out of a function that reports whether the first\n * element is less than the second.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b) -> Boolean) -> ((a, b) -> Number)\n * @param {Function} pred A predicate function of arity two which will return `true` if the first argument\n * is less than the second, `false` otherwise\n * @return {Function} A Function :: a -> b -> Int that returns `-1` if a < b, `1` if b < a, otherwise `0`\n * @example\n *\n * const byAge = R.comparator((a, b) => a.age < b.age);\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByIncreasingAge = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\nvar comparator = /*#__PURE__*/_curry1(function comparator(pred) {\n return function (a, b) {\n return pred(a, b) ? -1 : pred(b, a) ? 1 : 0;\n };\n});\n\nexport default comparator;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\n\nvar not = /*#__PURE__*/_curry1(function not(a) {\n return !a;\n});\n\nexport default not;","import lift from \"./lift.js\";\nimport not from \"./not.js\";\n/**\n * Takes a function `f` and returns a function `g` such that if called with the same arguments\n * when `f` returns a \"truthy\" value, `g` returns `false` and when `f` returns a \"falsy\" value `g` returns `true`.\n *\n * `R.complement` may be applied to any functor\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> *) -> (*... -> Boolean)\n * @param {Function} f\n * @return {Function}\n * @see R.not\n * @example\n *\n * const isNotNil = R.complement(R.isNil);\n * isNil(null); //=> true\n * isNotNil(null); //=> false\n * isNil(7); //=> false\n * isNotNil(7); //=> true\n */\n\nvar complement = /*#__PURE__*/lift(not);\nexport default complement;","export default function _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}","import _isArray from \"./_isArray.js\";\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implemtation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\n\nexport default function _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n\n if (length === 0) {\n return fn();\n }\n\n var obj = arguments[length - 1];\n return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\n\nvar slice = /*#__PURE__*/_curry3( /*#__PURE__*/_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\n\nexport default slice;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\n\nvar tail = /*#__PURE__*/_curry1( /*#__PURE__*/_checkForMethod('tail', /*#__PURE__*/slice(1, Infinity)));\n\nexport default tail;","import _arity from \"./internal/_arity.js\";\nimport _pipe from \"./internal/_pipe.js\";\nimport reduce from \"./reduce.js\";\nimport tail from \"./tail.js\";\n/**\n * Performs left-to-right function composition. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n */\n\nexport default function pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n\n return _arity(arguments[0].length, reduce(_pipe, arguments[0], tail(arguments)));\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\nvar reverse = /*#__PURE__*/_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\nexport default reverse;","import pipe from \"./pipe.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left function composition. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * const classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * const yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n */\n\nexport default function compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n\n return pipe.apply(this, reverse(arguments));\n}","import chain from \"./chain.js\";\nimport compose from \"./compose.js\";\nimport map from \"./map.js\";\n/**\n * Returns the right-to-left Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.composeK(h, g, f)` is equivalent to `R.compose(R.chain(h), R.chain(g), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((y -> m z), (x -> m y), ..., (a -> m b)) -> (a -> m z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipeK\n * @deprecated since v0.26.0\n * @example\n *\n * // get :: String -> Object -> Maybe *\n * const get = R.curry((propName, obj) => Maybe(obj[propName]))\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.composeK(\n * R.compose(Maybe.of, R.toUpper),\n * get('state'),\n * get('address'),\n * get('user'),\n * );\n * getStateCode({\"user\":{\"address\":{\"state\":\"ny\"}}}); //=> Maybe.Just(\"NY\")\n * getStateCode({}); //=> Maybe.Nothing()\n * @symb R.composeK(f, g, h)(a) = R.chain(f, R.chain(g, h(a)))\n */\n\nexport default function composeK() {\n if (arguments.length === 0) {\n throw new Error('composeK requires at least one argument');\n }\n\n var init = Array.prototype.slice.call(arguments);\n var last = init.pop();\n return compose(compose.apply(this, map(chain, init)), last);\n}","export default function _pipeP(f, g) {\n return function () {\n var ctx = this;\n return f.apply(ctx, arguments).then(function (x) {\n return g.call(ctx, x);\n });\n };\n}","import _arity from \"./internal/_arity.js\";\nimport _pipeP from \"./internal/_pipeP.js\";\nimport reduce from \"./reduce.js\";\nimport tail from \"./tail.js\";\n/**\n * Performs left-to-right composition of one or more Promise-returning\n * functions. The first argument may have any arity; the remaining arguments\n * must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a -> Promise b), (b -> Promise c), ..., (y -> Promise z)) -> (a -> Promise z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeP\n * @deprecated since v0.26.0\n * @example\n *\n * // followersForUser :: String -> Promise [User]\n * const followersForUser = R.pipeP(db.getUserById, db.getFollowers);\n */\n\nexport default function pipeP() {\n if (arguments.length === 0) {\n throw new Error('pipeP requires at least one argument');\n }\n\n return _arity(arguments[0].length, reduce(_pipeP, arguments[0], tail(arguments)));\n}","import pipeP from \"./pipeP.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left composition of one or more Promise-returning\n * functions. The last arguments may have any arity; the remaining\n * arguments must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((y -> Promise z), (x -> Promise y), ..., (a -> Promise b)) -> (a -> Promise z)\n * @param {...Function} functions The functions to compose\n * @return {Function}\n * @see R.pipeP\n * @deprecated since v0.26.0\n * @example\n *\n * const db = {\n * users: {\n * JOE: {\n * name: 'Joe',\n * followers: ['STEVE', 'SUZY']\n * }\n * }\n * }\n *\n * // We'll pretend to do a db lookup which returns a promise\n * const lookupUser = (userId) => Promise.resolve(db.users[userId])\n * const lookupFollowers = (user) => Promise.resolve(user.followers)\n * lookupUser('JOE').then(lookupFollowers)\n *\n * // followersForUser :: String -> Promise [UserId]\n * const followersForUser = R.composeP(lookupFollowers, lookupUser);\n * followersForUser('JOE').then(followers => console.log('Followers:', followers))\n * // Followers: [\"STEVE\",\"SUZY\"]\n */\n\nexport default function composeP() {\n if (arguments.length === 0) {\n throw new Error('composeP requires at least one argument');\n }\n\n return pipeP.apply(this, reverse(arguments));\n}","import nth from \"./nth.js\";\n/**\n * Returns the first element of the given list or string. In some libraries\n * this function is named `first`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {Array|String} list\n * @return {*}\n * @see R.tail, R.init, R.last\n * @example\n *\n * R.head(['fi', 'fo', 'fum']); //=> 'fi'\n * R.head([]); //=> undefined\n *\n * R.head('abc'); //=> 'a'\n * R.head(''); //=> ''\n */\n\nvar head = /*#__PURE__*/nth(0);\nexport default head;","export default function _identity(x) {\n return x;\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _identity from \"./internal/_identity.js\";\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\nvar identity = /*#__PURE__*/_curry1(_identity);\n\nexport default identity;","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport head from \"./head.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport tail from \"./tail.js\";\nimport identity from \"./identity.js\";\n/**\n * Performs left-to-right function composition using transforming function. The first argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of pipeWith is not automatically curried. Transforming function is not used on the\n * first argument.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((* -> *), [((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeWith, R.pipe\n * @example\n *\n * const pipeWhileNotNil = R.pipeWith((f, res) => R.isNil(res) ? res : f(res));\n * const f = pipeWhileNotNil([Math.pow, R.negate, R.inc])\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipeWith(f)([g, h, i])(...args) = f(i, f(h, g(...args)))\n */\n\nvar pipeWith = /*#__PURE__*/_curry2(function pipeWith(xf, list) {\n if (list.length <= 0) {\n return identity;\n }\n\n var headList = head(list);\n var tailList = tail(list);\n return _arity(headList.length, function () {\n return _reduce(function (result, f) {\n return xf.call(this, f, result);\n }, headList.apply(this, arguments), tailList);\n });\n});\n\nexport default pipeWith;","import _curry2 from \"./internal/_curry2.js\";\nimport pipeWith from \"./pipeWith.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Performs right-to-left function composition using transforming function. The last argument may have\n * any arity; the remaining arguments must be unary.\n *\n * **Note:** The result of compose is not automatically curried. Transforming function is not used on the\n * last argument.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((* -> *), [(y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.compose, R.pipeWith\n * @example\n *\n * const composeWhileNotNil = R.composeWith((f, res) => R.isNil(res) ? res : f(res));\n *\n * composeWhileNotNil([R.inc, R.prop('age')])({age: 1}) //=> 2\n * composeWhileNotNil([R.inc, R.prop('age')])({}) //=> undefined\n *\n * @symb R.composeWith(f)([g, h, i])(...args) = f(g, f(h, i(...args)))\n */\n\nvar composeWith = /*#__PURE__*/_curry2(function composeWith(xf, list) {\n return pipeWith.apply(this, [xf, reverse(list)]);\n});\n\nexport default composeWith;","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _arrayFromIterator from \"./_arrayFromIterator.js\";\nimport _includesWith from \"./_includesWith.js\";\nimport _functionName from \"./_functionName.js\";\nimport _has from \"./_has.js\";\nimport _objectIs from \"./_objectIs.js\";\nimport keys from \"../keys.js\";\nimport type from \"../type.js\";\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparision of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n } // if *a* array contains any element that is not included in *b*\n\n\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n\n var typeA = type(a);\n\n if (typeA !== type(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n\n break;\n\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n\n break;\n\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n\n break;\n\n case 'Error':\n return a.name === b.name && a.message === b.message;\n\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n\n break;\n }\n\n var idx = stackA.length - 1;\n\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\n\n if (keysA.length !== keys(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n\n while (idx >= 0) {\n var key = keysA[idx];\n\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n\n idx -= 1;\n }\n\n return true;\n}","export default function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _equals from \"./internal/_equals.js\";\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\n\nvar equals = /*#__PURE__*/_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\n\nexport default equals;","import equals from \"../equals.js\";\nexport default function _indexOf(list, a, idx) {\n var inf, item; // Array.prototype.indexOf doesn't exist below IE9\n\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n\n while (idx < list.length) {\n item = list[idx];\n\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n } // non-zero numbers can utilise Set\n\n\n return list.indexOf(a, idx);\n // all these types can utilise Set\n\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n\n }\n } // anything else not covered above, defer to R.equals\n\n\n while (idx < list.length) {\n if (equals(list[idx], a)) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}","import _indexOf from \"./_indexOf.js\";\nexport default function _includes(a, list) {\n return _indexOf(list, a, 0) >= 0;\n}","export default function _quote(s) {\n var escaped = s.replace(/\\\\/g, '\\\\\\\\').replace(/[\\b]/g, '\\\\b') // \\b matches word boundary; [\\b] matches backspace\n .replace(/\\f/g, '\\\\f').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\t/g, '\\\\t').replace(/\\v/g, '\\\\v').replace(/\\0/g, '\\\\0');\n return '\"' + escaped.replace(/\"/g, '\\\\\"') + '\"';\n}","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","export default function _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}","export default function _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n\n return result;\n}","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFilter = /*#__PURE__*/function () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFilter.prototype['@@transducer/init'] = _xfBase.init;\n XFilter.prototype['@@transducer/result'] = _xfBase.result;\n\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n\n return XFilter;\n}();\n\nvar _xfilter = /*#__PURE__*/_curry2(function _xfilter(f, xf) {\n return new XFilter(f, xf);\n});\n\nexport default _xfilter;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _filter from \"./internal/_filter.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xfilter from \"./internal/_xfilter.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar filter = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['filter'], _xfilter, function (pred, filterable) {\n return _isObject(filterable) ? _reduce(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n\n return acc;\n }, {}, keys(filterable)) : // else\n _filter(pred, filterable);\n}));\n\nexport default filter;","import _complement from \"./internal/_complement.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport filter from \"./filter.js\";\n/**\n * The complement of [`filter`](#filter).\n *\n * Acts as a transducer if a transformer is given in list position. Filterable\n * objects include plain objects or any object that has a filter method such\n * as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * const isOdd = (n) => n % 2 === 1;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\nvar reject = /*#__PURE__*/_curry2(function reject(pred, filterable) {\n return filter(_complement(pred), filterable);\n});\n\nexport default reject;","import _includes from \"./_includes.js\";\nimport _map from \"./_map.js\";\nimport _quote from \"./_quote.js\";\nimport _toISOString from \"./_toISOString.js\";\nimport keys from \"../keys.js\";\nimport reject from \"../reject.js\";\nexport default function _toString(x, seen) {\n var recur = function recur(y) {\n var xs = seen.concat([x]);\n return _includes(y, xs) ? '' : _toString(y, xs);\n }; // mapPairs :: (Object, [String]) -> [String]\n\n\n var mapPairs = function mapPairs(obj, keys) {\n return _map(function (k) {\n return _quote(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + _map(recur, x).join(', ') + '))';\n\n case '[object Array]':\n return '[' + _map(recur, x).concat(mapPairs(x, reject(function (k) {\n return /^\\d+$/.test(k);\n }, keys(x)))).join(', ') + ']';\n\n case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : _quote(_toISOString(x))) + ')';\n\n case '[object Null]':\n return 'null';\n\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : _quote(x);\n\n case '[object Undefined]':\n return 'undefined';\n\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n\n if (repr !== '[object Object]') {\n return repr;\n }\n }\n\n return '{' + mapPairs(x, keys(x)).join(', ') + '}';\n }\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _toString from \"./internal/_toString.js\";\n/**\n * Returns the string representation of the given value. `eval`'ing the output\n * should result in a value equivalent to the input value. Many of the built-in\n * `toString` methods do not satisfy this requirement.\n *\n * If the given value is an `[object Object]` with a `toString` method other\n * than `Object.prototype.toString`, this method is invoked with no arguments\n * to produce the return value. This means user-defined constructor functions\n * can provide a suitable `toString` method. For example:\n *\n * function Point(x, y) {\n * this.x = x;\n * this.y = y;\n * }\n *\n * Point.prototype.toString = function() {\n * return 'new Point(' + this.x + ', ' + this.y + ')';\n * };\n *\n * R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category String\n * @sig * -> String\n * @param {*} val\n * @return {String}\n * @example\n *\n * R.toString(42); //=> '42'\n * R.toString('abc'); //=> '\"abc\"'\n * R.toString([1, 2, 3]); //=> '[1, 2, 3]'\n * R.toString({foo: 1, bar: 2, baz: 3}); //=> '{\"bar\": 2, \"baz\": 3, \"foo\": 1}'\n * R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date(\"2001-02-03T04:05:06.000Z\")'\n */\n\nvar toString = /*#__PURE__*/_curry1(function toString(val) {\n return _toString(val, []);\n});\n\nexport default toString;","import _curry2 from \"./internal/_curry2.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport _isString from \"./internal/_isString.js\";\nimport toString from \"./toString.js\";\n/**\n * Returns the result of concatenating the given lists or strings.\n *\n * Note: `R.concat` expects both arguments to be of the same type,\n * unlike the native `Array.prototype.concat` method. It will throw\n * an error if you `concat` an Array with a non-Array value.\n *\n * Dispatches to the `concat` method of the first argument, if present.\n * Can also concatenate two members of a [fantasy-land\n * compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @sig String -> String -> String\n * @param {Array|String} firstList The first list\n * @param {Array|String} secondList The second list\n * @return {Array|String} A list consisting of the elements of `firstList` followed by the elements of\n * `secondList`.\n *\n * @example\n *\n * R.concat('ABC', 'DEF'); // 'ABCDEF'\n * R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n * R.concat([], []); //=> []\n */\n\nvar concat = /*#__PURE__*/_curry2(function concat(a, b) {\n if (_isArray(a)) {\n if (_isArray(b)) {\n return a.concat(b);\n }\n\n throw new TypeError(toString(b) + ' is not an array');\n }\n\n if (_isString(a)) {\n if (_isString(b)) {\n return a + b;\n }\n\n throw new TypeError(toString(b) + ' is not a string');\n }\n\n if (a != null && _isFunction(a['fantasy-land/concat'])) {\n return a['fantasy-land/concat'](b);\n }\n\n if (a != null && _isFunction(a.concat)) {\n return a.concat(b);\n }\n\n throw new TypeError(toString(a) + ' does not have a method named \"concat\" or \"fantasy-land/concat\"');\n});\n\nexport default concat;","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport map from \"./map.js\";\nimport max from \"./max.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Returns a function, `fn`, which encapsulates `if/else, if/else, ...` logic.\n * `R.cond` takes a list of [predicate, transformer] pairs. All of the arguments\n * to `fn` are applied to each of the predicates in turn until one returns a\n * \"truthy\" value, at which point `fn` returns the result of applying its\n * arguments to the corresponding transformer. If none of the predicates\n * matches, `fn` returns undefined.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Logic\n * @sig [[(*... -> Boolean),(*... -> *)]] -> (*... -> *)\n * @param {Array} pairs A list of [predicate, transformer]\n * @return {Function}\n * @see R.ifElse, R.unless, R.when\n * @example\n *\n * const fn = R.cond([\n * [R.equals(0), R.always('water freezes at 0°C')],\n * [R.equals(100), R.always('water boils at 100°C')],\n * [R.T, temp => 'nothing special happens at ' + temp + '°C']\n * ]);\n * fn(0); //=> 'water freezes at 0°C'\n * fn(50); //=> 'nothing special happens at 50°C'\n * fn(100); //=> 'water boils at 100°C'\n */\n\nvar cond = /*#__PURE__*/_curry1(function cond(pairs) {\n var arity = reduce(max, 0, map(function (pair) {\n return pair[0].length;\n }, pairs));\n return _arity(arity, function () {\n var idx = 0;\n\n while (idx < pairs.length) {\n if (pairs[idx][0].apply(this, arguments)) {\n return pairs[idx][1].apply(this, arguments);\n }\n\n idx += 1;\n }\n });\n});\n\nexport default cond;","import _curry2 from \"./internal/_curry2.js\";\nimport curry from \"./curry.js\";\nimport nAry from \"./nAry.js\";\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type. The arity of the function\n * returned is specified to allow using variadic constructor functions.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Function\n * @sig Number -> (* -> {*}) -> (* -> {*})\n * @param {Number} n The arity of the constructor function.\n * @param {Function} Fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @example\n *\n * // Variadic Constructor function\n * function Salad() {\n * this.ingredients = arguments;\n * }\n *\n * Salad.prototype.recipe = function() {\n * const instructions = R.map(ingredient => 'Add a dollop of ' + ingredient, this.ingredients);\n * return R.join('\\n', instructions);\n * };\n *\n * const ThreeLayerSalad = R.constructN(3, Salad);\n *\n * // Notice we no longer need the 'new' keyword, and the constructor is curried for 3 arguments.\n * const salad = ThreeLayerSalad('Mayonnaise')('Potato Chips')('Ketchup');\n *\n * console.log(salad.recipe());\n * // Add a dollop of Mayonnaise\n * // Add a dollop of Potato Chips\n * // Add a dollop of Ketchup\n */\n\nvar constructN = /*#__PURE__*/_curry2(function constructN(n, Fn) {\n if (n > 10) {\n throw new Error('Constructor with greater than ten arguments');\n }\n\n if (n === 0) {\n return function () {\n return new Fn();\n };\n }\n\n return curry(nAry(n, function ($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {\n switch (arguments.length) {\n case 1:\n return new Fn($0);\n\n case 2:\n return new Fn($0, $1);\n\n case 3:\n return new Fn($0, $1, $2);\n\n case 4:\n return new Fn($0, $1, $2, $3);\n\n case 5:\n return new Fn($0, $1, $2, $3, $4);\n\n case 6:\n return new Fn($0, $1, $2, $3, $4, $5);\n\n case 7:\n return new Fn($0, $1, $2, $3, $4, $5, $6);\n\n case 8:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7);\n\n case 9:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8);\n\n case 10:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8, $9);\n }\n }));\n});\n\nexport default constructN;","import _curry1 from \"./internal/_curry1.js\";\nimport constructN from \"./constructN.js\";\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> {*}) -> (* -> {*})\n * @param {Function} fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @see R.invoker\n * @example\n *\n * // Constructor function\n * function Animal(kind) {\n * this.kind = kind;\n * };\n * Animal.prototype.sighting = function() {\n * return \"It's a \" + this.kind + \"!\";\n * }\n *\n * const AnimalConstructor = R.construct(Animal)\n *\n * // Notice we no longer need the 'new' keyword:\n * AnimalConstructor('Pig'); //=> {\"kind\": \"Pig\", \"sighting\": function (){...}};\n *\n * const animalTypes = [\"Lion\", \"Tiger\", \"Bear\"];\n * const animalSighting = R.invoker(0, 'sighting');\n * const sightNewAnimal = R.compose(animalSighting, AnimalConstructor);\n * R.map(sightNewAnimal, animalTypes); //=> [\"It's a Lion!\", \"It's a Tiger!\", \"It's a Bear!\"]\n */\n\nvar construct = /*#__PURE__*/_curry1(function construct(Fn) {\n return constructN(Fn.length, Fn);\n});\n\nexport default construct;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.includes\n * @deprecated since v0.26.0\n * @example\n *\n * R.contains(3, [1, 2, 3]); //=> true\n * R.contains(4, [1, 2, 3]); //=> false\n * R.contains({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.contains([42], [[42]]); //=> true\n * R.contains('ba', 'banana'); //=>true\n */\n\nvar contains = /*#__PURE__*/_curry2(_includes);\n\nexport default contains;","import _curry2 from \"./internal/_curry2.js\";\nimport _map from \"./internal/_map.js\";\nimport curryN from \"./curryN.js\";\nimport max from \"./max.js\";\nimport pluck from \"./pluck.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Accepts a converging function and a list of branching functions and returns\n * a new function. The arity of the new function is the same as the arity of\n * the longest branching function. When invoked, this new function is applied\n * to some arguments, and each branching function is applied to those same\n * arguments. The results of each branching function are passed as arguments\n * to the converging function to produce the return value.\n *\n * @func\n * @memberOf R\n * @since v0.4.2\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [((a, b, ...) -> x1), ((a, b, ...) -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} after A function. `after` will be invoked with the return values of\n * `fn1` and `fn2` as its arguments.\n * @param {Array} functions A list of functions.\n * @return {Function} A new function.\n * @see R.useWith\n * @example\n *\n * const average = R.converge(R.divide, [R.sum, R.length])\n * average([1, 2, 3, 4, 5, 6, 7]) //=> 4\n *\n * const strangeConcat = R.converge(R.concat, [R.toUpper, R.toLower])\n * strangeConcat(\"Yodel\") //=> \"YODELyodel\"\n *\n * @symb R.converge(f, [g, h])(a, b) = f(g(a, b), h(a, b))\n */\n\nvar converge = /*#__PURE__*/_curry2(function converge(after, fns) {\n return curryN(reduce(max, 0, pluck('length', fns)), function () {\n var args = arguments;\n var context = this;\n return after.apply(context, _map(function (fn) {\n return fn.apply(context, args);\n }, fns));\n });\n});\n\nexport default converge;","import _curryN from \"./_curryN.js\";\nimport _has from \"./_has.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XReduceBy = /*#__PURE__*/function () {\n function XReduceBy(valueFn, valueAcc, keyFn, xf) {\n this.valueFn = valueFn;\n this.valueAcc = valueAcc;\n this.keyFn = keyFn;\n this.xf = xf;\n this.inputs = {};\n }\n\n XReduceBy.prototype['@@transducer/init'] = _xfBase.init;\n\n XReduceBy.prototype['@@transducer/result'] = function (result) {\n var key;\n\n for (key in this.inputs) {\n if (_has(key, this.inputs)) {\n result = this.xf['@@transducer/step'](result, this.inputs[key]);\n\n if (result['@@transducer/reduced']) {\n result = result['@@transducer/value'];\n break;\n }\n }\n }\n\n this.inputs = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XReduceBy.prototype['@@transducer/step'] = function (result, input) {\n var key = this.keyFn(input);\n this.inputs[key] = this.inputs[key] || [key, this.valueAcc];\n this.inputs[key][1] = this.valueFn(this.inputs[key][1], input);\n return result;\n };\n\n return XReduceBy;\n}();\n\nvar _xreduceBy = /*#__PURE__*/_curryN(4, [], function _xreduceBy(valueFn, valueAcc, keyFn, xf) {\n return new XReduceBy(valueFn, valueAcc, keyFn, xf);\n});\n\nexport default _xreduceBy;","import _clone from \"./internal/_clone.js\";\nimport _curryN from \"./internal/_curryN.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _has from \"./internal/_has.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xreduceBy from \"./internal/_xreduceBy.js\";\n/**\n * Groups the elements of the list according to the result of calling\n * the String-returning function `keyFn` on each element and reduces the elements\n * of each group to a single value via the reducer function `valueFn`.\n *\n * This function is basically a more general [`groupBy`](#groupBy) function.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category List\n * @sig ((a, b) -> a) -> a -> (b -> String) -> [b] -> {String: a}\n * @param {Function} valueFn The function that reduces the elements of each group to a single\n * value. Receives two values, accumulator for a particular group and the current element.\n * @param {*} acc The (initial) accumulator value for each group.\n * @param {Function} keyFn The function that maps the list's element into a key.\n * @param {Array} list The array to group.\n * @return {Object} An object with the output of `keyFn` for keys, mapped to the output of\n * `valueFn` for elements which produced that key when passed to `keyFn`.\n * @see R.groupBy, R.reduce\n * @example\n *\n * const groupNames = (acc, {name}) => acc.concat(name)\n * const toGrade = ({score}) =>\n * score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A'\n *\n * var students = [\n * {name: 'Abby', score: 83},\n * {name: 'Bart', score: 62},\n * {name: 'Curt', score: 88},\n * {name: 'Dora', score: 92},\n * ]\n *\n * reduceBy(groupNames, [], toGrade, students)\n * //=> {\"A\": [\"Dora\"], \"B\": [\"Abby\", \"Curt\"], \"F\": [\"Bart\"]}\n */\n\nvar reduceBy = /*#__PURE__*/_curryN(4, [], /*#__PURE__*/_dispatchable([], _xreduceBy, function reduceBy(valueFn, valueAcc, keyFn, list) {\n return _reduce(function (acc, elt) {\n var key = keyFn(elt);\n acc[key] = valueFn(_has(key, acc) ? acc[key] : _clone(valueAcc, [], [], false), elt);\n return acc;\n }, {}, list);\n}));\n\nexport default reduceBy;","import reduceBy from \"./reduceBy.js\";\n/**\n * Counts the elements of a list according to how many match each value of a\n * key generated by the supplied function. Returns an object mapping the keys\n * produced by `fn` to the number of occurrences in the list. Note that all\n * keys are coerced to strings because of how JavaScript objects work.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig (a -> String) -> [a] -> {*}\n * @param {Function} fn The function used to map values to keys.\n * @param {Array} list The list to count elements from.\n * @return {Object} An object mapping keys to number of occurrences in the list.\n * @example\n *\n * const numbers = [1.0, 1.1, 1.2, 2.0, 3.0, 2.2];\n * R.countBy(Math.floor)(numbers); //=> {'1': 3, '2': 2, '3': 1}\n *\n * const letters = ['a', 'b', 'A', 'a', 'B', 'c'];\n * R.countBy(R.toLower)(letters); //=> {'a': 3, 'b': 2, 'c': 1}\n */\n\nvar countBy = /*#__PURE__*/reduceBy(function (acc, elem) {\n return acc + 1;\n}, 0);\nexport default countBy;","import add from \"./add.js\";\n/**\n * Decrements its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n - 1\n * @see R.inc\n * @example\n *\n * R.dec(42); //=> 41\n */\n\nvar dec = /*#__PURE__*/add(-1);\nexport default dec;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the second argument if it is not `null`, `undefined` or `NaN`;\n * otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {a} default The default value.\n * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.\n * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value\n * @example\n *\n * const defaultTo42 = R.defaultTo(42);\n *\n * defaultTo42(null); //=> 42\n * defaultTo42(undefined); //=> 42\n * defaultTo42(false); //=> false\n * defaultTo42('Ramda'); //=> 'Ramda'\n * // parseInt('string') results in NaN\n * defaultTo42(parseInt('string')); //=> 42\n */\n\nvar defaultTo = /*#__PURE__*/_curry2(function defaultTo(d, v) {\n return v == null || v !== v ? d : v;\n});\n\nexport default defaultTo;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Makes a descending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) > fn(b), `1` if fn(b) > fn(a), otherwise `0`\n * @see R.ascend\n * @example\n *\n * const byAge = R.descend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByOldestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Peter', age: 78 }, { name: 'Emma', age: 70 }, { name: 'Mikhail', age: 62 }]\n */\n\nvar descend = /*#__PURE__*/_curry3(function descend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa > bb ? -1 : aa < bb ? 1 : 0;\n});\n\nexport default descend;","import _includes from \"./_includes.js\";\n\nvar _Set = /*#__PURE__*/function () {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n } // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n\n\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n }; //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n\n\n _Set.prototype.has = function (item) {\n return hasOrAdd(item, false, this);\n }; //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n\n\n return _Set;\n}();\n\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n\n return false;\n }\n } // these types can all utilise the native Set\n\n\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n\n return false;\n }\n }\n\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n\n return false;\n }\n\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n\n set._nativeSet.add(item);\n\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n }\n\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n\n return false;\n }\n\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n\n return false;\n }\n\n return true;\n }\n\n /* falls through */\n\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n\n return false;\n } // scan through all previously applied items\n\n\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n\n return false;\n }\n\n return true;\n }\n} // A simple Set type that honours R.equals semantics\n\n\nexport default _Set;","import _curry2 from \"./internal/_curry2.js\";\nimport _Set from \"./internal/_Set.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Objects and Arrays are compared in terms of\n * value equality, not reference equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.differenceWith, R.symmetricDifference, R.symmetricDifferenceWith, R.without\n * @example\n *\n * R.difference([1,2,3,4], [7,6,5,4,3]); //=> [1,2]\n * R.difference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5]\n * R.difference([{a: 1}, {b: 2}], [{a: 1}, {c: 3}]) //=> [{b: 2}]\n */\n\nvar difference = /*#__PURE__*/_curry2(function difference(first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n var secondLen = second.length;\n var toFilterOut = new _Set();\n\n for (var i = 0; i < secondLen; i += 1) {\n toFilterOut.add(second[i]);\n }\n\n while (idx < firstLen) {\n if (toFilterOut.add(first[idx])) {\n out[out.length] = first[idx];\n }\n\n idx += 1;\n }\n\n return out;\n});\n\nexport default difference;","import _includesWith from \"./internal/_includesWith.js\";\nimport _curry3 from \"./internal/_curry3.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Duplication is determined according to the\n * value returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.difference, R.symmetricDifference, R.symmetricDifferenceWith\n * @example\n *\n * const cmp = (x, y) => x.a === y.a;\n * const l1 = [{a: 1}, {a: 2}, {a: 3}];\n * const l2 = [{a: 3}, {a: 4}];\n * R.differenceWith(cmp, l1, l2); //=> [{a: 1}, {a: 2}]\n */\n\nvar differenceWith = /*#__PURE__*/_curry3(function differenceWith(pred, first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n\n while (idx < firstLen) {\n if (!_includesWith(pred, first[idx], second) && !_includesWith(pred, first[idx], out)) {\n out.push(first[idx]);\n }\n\n idx += 1;\n }\n\n return out;\n});\n\nexport default differenceWith;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new object that does not contain a `prop` property.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Object\n * @sig String -> {k: v} -> {k: v}\n * @param {String} prop The name of the property to dissociate\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original but without the specified property\n * @see R.assoc, R.omit\n * @example\n *\n * R.dissoc('b', {a: 1, b: 2, c: 3}); //=> {a: 1, c: 3}\n */\n\nvar dissoc = /*#__PURE__*/_curry2(function dissoc(prop, obj) {\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n delete result[prop];\n return result;\n});\n\nexport default dissoc;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Removes the sub-list of `list` starting at index `start` and containing\n * `count` elements. _Note that this is not destructive_: it returns a copy of\n * the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} start The position to start removing elements\n * @param {Number} count The number of elements to remove\n * @param {Array} list The list to remove from\n * @return {Array} A new Array with `count` elements from `start` removed.\n * @see R.without\n * @example\n *\n * R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8]\n */\n\nvar remove = /*#__PURE__*/_curry3(function remove(start, count, list) {\n var result = Array.prototype.slice.call(list, 0);\n result.splice(start, count);\n return result;\n});\n\nexport default remove;","import _curry3 from \"./internal/_curry3.js\";\nimport adjust from \"./adjust.js\";\nimport always from \"./always.js\";\n/**\n * Returns a new copy of the array with the element at the provided index\n * replaced with the given value.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} idx The index to update.\n * @param {*} x The value to exist at the given index of the returned array.\n * @param {Array|Arguments} list The source array-like object to be updated.\n * @return {Array} A copy of `list` with the value at index `idx` replaced with `x`.\n * @see R.adjust\n * @example\n *\n * R.update(1, '_', ['a', 'b', 'c']); //=> ['a', '_', 'c']\n * R.update(-1, '_', ['a', 'b', 'c']); //=> ['a', 'b', '_']\n * @symb R.update(-1, a, [b, c]) = [b, a]\n * @symb R.update(0, a, [b, c]) = [a, c]\n * @symb R.update(1, a, [b, c]) = [b, a]\n */\n\nvar update = /*#__PURE__*/_curry3(function update(idx, x, list) {\n return adjust(idx, always(x), list);\n});\n\nexport default update;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport assoc from \"./assoc.js\";\nimport dissoc from \"./dissoc.js\";\nimport remove from \"./remove.js\";\nimport update from \"./update.js\";\n/**\n * Makes a shallow clone of an object, omitting the property at the given path.\n * Note that this copies and flattens prototype properties onto the new object\n * as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.11.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {Array} path The path to the value to omit\n * @param {Object} obj The object to clone\n * @return {Object} A new object without the property at path\n * @see R.assocPath\n * @example\n *\n * R.dissocPath(['a', 'b', 'c'], {a: {b: {c: 42}}}); //=> {a: {b: {}}}\n */\n\nvar dissocPath = /*#__PURE__*/_curry2(function dissocPath(path, obj) {\n switch (path.length) {\n case 0:\n return obj;\n\n case 1:\n return _isInteger(path[0]) && _isArray(obj) ? remove(path[0], 1, obj) : dissoc(path[0], obj);\n\n default:\n var head = path[0];\n var tail = Array.prototype.slice.call(path, 1);\n\n if (obj[head] == null) {\n return obj;\n } else if (_isInteger(head) && _isArray(obj)) {\n return update(head, dissocPath(tail, obj[head]), obj);\n } else {\n return assoc(head, dissocPath(tail, obj[head]), obj);\n }\n\n }\n});\n\nexport default dissocPath;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Divides two numbers. Equivalent to `a / b`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a / b`.\n * @see R.multiply\n * @example\n *\n * R.divide(71, 100); //=> 0.71\n *\n * const half = R.divide(R.__, 2);\n * half(42); //=> 21\n *\n * const reciprocal = R.divide(1);\n * reciprocal(4); //=> 0.25\n */\n\nvar divide = /*#__PURE__*/_curry2(function divide(a, b) {\n return a / b;\n});\n\nexport default divide;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDrop = /*#__PURE__*/function () {\n function XDrop(n, xf) {\n this.xf = xf;\n this.n = n;\n }\n\n XDrop.prototype['@@transducer/init'] = _xfBase.init;\n XDrop.prototype['@@transducer/result'] = _xfBase.result;\n\n XDrop.prototype['@@transducer/step'] = function (result, input) {\n if (this.n > 0) {\n this.n -= 1;\n return result;\n }\n\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDrop;\n}();\n\nvar _xdrop = /*#__PURE__*/_curry2(function _xdrop(n, xf) {\n return new XDrop(n, xf);\n});\n\nexport default _xdrop;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdrop from \"./internal/_xdrop.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns all but the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `drop` method).\n *\n * Dispatches to the `drop` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*} A copy of list without the first `n` elements\n * @see R.take, R.transduce, R.dropLast, R.dropWhile\n * @example\n *\n * R.drop(1, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.drop(2, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.drop(3, ['foo', 'bar', 'baz']); //=> []\n * R.drop(4, ['foo', 'bar', 'baz']); //=> []\n * R.drop(3, 'ramda'); //=> 'da'\n */\n\nvar drop = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['drop'], _xdrop, function drop(n, xs) {\n return slice(Math.max(0, n), Infinity, xs);\n}));\n\nexport default drop;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XTake = /*#__PURE__*/function () {\n function XTake(n, xf) {\n this.xf = xf;\n this.n = n;\n this.i = 0;\n }\n\n XTake.prototype['@@transducer/init'] = _xfBase.init;\n XTake.prototype['@@transducer/result'] = _xfBase.result;\n\n XTake.prototype['@@transducer/step'] = function (result, input) {\n this.i += 1;\n var ret = this.n === 0 ? result : this.xf['@@transducer/step'](result, input);\n return this.n >= 0 && this.i >= this.n ? _reduced(ret) : ret;\n };\n\n return XTake;\n}();\n\nvar _xtake = /*#__PURE__*/_curry2(function _xtake(n, xf) {\n return new XTake(n, xf);\n});\n\nexport default _xtake;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xtake from \"./internal/_xtake.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `take` method).\n *\n * Dispatches to the `take` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*}\n * @see R.drop\n * @example\n *\n * R.take(1, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.take(2, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.take(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(3, 'ramda'); //=> 'ram'\n *\n * const personnel = [\n * 'Dave Brubeck',\n * 'Paul Desmond',\n * 'Eugene Wright',\n * 'Joe Morello',\n * 'Gerry Mulligan',\n * 'Bob Bates',\n * 'Joe Dodge',\n * 'Ron Crotty'\n * ];\n *\n * const takeFive = R.take(5);\n * takeFive(personnel);\n * //=> ['Dave Brubeck', 'Paul Desmond', 'Eugene Wright', 'Joe Morello', 'Gerry Mulligan']\n * @symb R.take(-1, [a, b]) = [a, b]\n * @symb R.take(0, [a, b]) = []\n * @symb R.take(1, [a, b]) = [a]\n * @symb R.take(2, [a, b]) = [a, b]\n */\n\nvar take = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['take'], _xtake, function take(n, xs) {\n return slice(0, n < 0 ? Infinity : n, xs);\n}));\n\nexport default take;","import take from \"../take.js\";\nexport default function dropLast(n, xs) {\n return take(n < xs.length ? xs.length - n : 0, xs);\n}","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropLast = /*#__PURE__*/function () {\n function XDropLast(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n\n XDropLast.prototype['@@transducer/init'] = _xfBase.init;\n\n XDropLast.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XDropLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.full) {\n result = this.xf['@@transducer/step'](result, this.acc[this.pos]);\n }\n\n this.store(input);\n return result;\n };\n\n XDropLast.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n return XDropLast;\n}();\n\nvar _xdropLast = /*#__PURE__*/_curry2(function _xdropLast(n, xf) {\n return new XDropLast(n, xf);\n});\n\nexport default _xdropLast;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _dropLast from \"./internal/_dropLast.js\";\nimport _xdropLast from \"./internal/_xdropLast.js\";\n/**\n * Returns a list containing all but the last `n` elements of the given `list`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements of `list` to skip.\n * @param {Array} list The list of elements to consider.\n * @return {Array} A copy of the list with only the first `list.length - n` elements\n * @see R.takeLast, R.drop, R.dropWhile, R.dropLastWhile\n * @example\n *\n * R.dropLast(1, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.dropLast(2, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.dropLast(3, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(4, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(3, 'ramda'); //=> 'ra'\n */\n\nvar dropLast = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xdropLast, _dropLast));\n\nexport default dropLast;","import slice from \"../slice.js\";\nexport default function dropLastWhile(pred, xs) {\n var idx = xs.length - 1;\n\n while (idx >= 0 && pred(xs[idx])) {\n idx -= 1;\n }\n\n return slice(0, idx + 1, xs);\n}","import _curry2 from \"./_curry2.js\";\nimport _reduce from \"./_reduce.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropLastWhile = /*#__PURE__*/function () {\n function XDropLastWhile(fn, xf) {\n this.f = fn;\n this.retained = [];\n this.xf = xf;\n }\n\n XDropLastWhile.prototype['@@transducer/init'] = _xfBase.init;\n\n XDropLastWhile.prototype['@@transducer/result'] = function (result) {\n this.retained = null;\n return this.xf['@@transducer/result'](result);\n };\n\n XDropLastWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.retain(result, input) : this.flush(result, input);\n };\n\n XDropLastWhile.prototype.flush = function (result, input) {\n result = _reduce(this.xf['@@transducer/step'], result, this.retained);\n this.retained = [];\n return this.xf['@@transducer/step'](result, input);\n };\n\n XDropLastWhile.prototype.retain = function (result, input) {\n this.retained.push(input);\n return result;\n };\n\n return XDropLastWhile;\n}();\n\nvar _xdropLastWhile = /*#__PURE__*/_curry2(function _xdropLastWhile(fn, xf) {\n return new XDropLastWhile(fn, xf);\n});\n\nexport default _xdropLastWhile;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _dropLastWhile from \"./internal/_dropLastWhile.js\";\nimport _xdropLastWhile from \"./internal/_xdropLastWhile.js\";\n/**\n * Returns a new list excluding all the tailing elements of a given list which\n * satisfy the supplied predicate function. It passes each value from the right\n * to the supplied predicate function, skipping elements until the predicate\n * function returns a `falsy` value. The predicate function is applied to one argument:\n * *(value)*.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} predicate The function to be called on each element\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array without any trailing elements that return `falsy` values from the `predicate`.\n * @see R.takeLastWhile, R.addIndex, R.drop, R.dropWhile\n * @example\n *\n * const lteThree = x => x <= 3;\n *\n * R.dropLastWhile(lteThree, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3, 4]\n *\n * R.dropLastWhile(x => x !== 'd' , 'Ramda'); //=> 'Ramd'\n */\n\nvar dropLastWhile = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xdropLastWhile, _dropLastWhile));\n\nexport default dropLastWhile;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropRepeatsWith = /*#__PURE__*/function () {\n function XDropRepeatsWith(pred, xf) {\n this.xf = xf;\n this.pred = pred;\n this.lastValue = undefined;\n this.seenFirstValue = false;\n }\n\n XDropRepeatsWith.prototype['@@transducer/init'] = _xfBase.init;\n XDropRepeatsWith.prototype['@@transducer/result'] = _xfBase.result;\n\n XDropRepeatsWith.prototype['@@transducer/step'] = function (result, input) {\n var sameAsLast = false;\n\n if (!this.seenFirstValue) {\n this.seenFirstValue = true;\n } else if (this.pred(this.lastValue, input)) {\n sameAsLast = true;\n }\n\n this.lastValue = input;\n return sameAsLast ? result : this.xf['@@transducer/step'](result, input);\n };\n\n return XDropRepeatsWith;\n}();\n\nvar _xdropRepeatsWith = /*#__PURE__*/_curry2(function _xdropRepeatsWith(pred, xf) {\n return new XDropRepeatsWith(pred, xf);\n});\n\nexport default _xdropRepeatsWith;","import nth from \"./nth.js\";\n/**\n * Returns the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.init, R.head, R.tail\n * @example\n *\n * R.last(['fi', 'fo', 'fum']); //=> 'fum'\n * R.last([]); //=> undefined\n *\n * R.last('abc'); //=> 'c'\n * R.last(''); //=> ''\n */\n\nvar last = /*#__PURE__*/nth(-1);\nexport default last;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdropRepeatsWith from \"./internal/_xdropRepeatsWith.js\";\nimport last from \"./last.js\";\n/**\n * Returns a new list without any consecutively repeating elements. Equality is\n * determined by applying the supplied predicate to each pair of consecutive elements. The\n * first element in a series of equal elements will be preserved.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * const l = [1, -1, 1, 3, 4, -4, -4, -5, 5, 3, 3];\n * R.dropRepeatsWith(R.eqBy(Math.abs), l); //=> [1, 3, 4, -5, 3]\n */\n\nvar dropRepeatsWith = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xdropRepeatsWith, function dropRepeatsWith(pred, list) {\n var result = [];\n var idx = 1;\n var len = list.length;\n\n if (len !== 0) {\n result[0] = list[0];\n\n while (idx < len) {\n if (!pred(last(result), list[idx])) {\n result[result.length] = list[idx];\n }\n\n idx += 1;\n }\n }\n\n return result;\n}));\n\nexport default dropRepeatsWith;","import _curry1 from \"./internal/_curry1.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdropRepeatsWith from \"./internal/_xdropRepeatsWith.js\";\nimport dropRepeatsWith from \"./dropRepeatsWith.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns a new list without any consecutively repeating elements.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * R.dropRepeats([1, 1, 1, 2, 3, 4, 4, 2, 2]); //=> [1, 2, 3, 4, 2]\n */\n\nvar dropRepeats = /*#__PURE__*/_curry1( /*#__PURE__*/_dispatchable([], /*#__PURE__*/_xdropRepeatsWith(equals), /*#__PURE__*/dropRepeatsWith(equals)));\n\nexport default dropRepeats;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XDropWhile = /*#__PURE__*/function () {\n function XDropWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XDropWhile.prototype['@@transducer/init'] = _xfBase.init;\n XDropWhile.prototype['@@transducer/result'] = _xfBase.result;\n\n XDropWhile.prototype['@@transducer/step'] = function (result, input) {\n if (this.f) {\n if (this.f(input)) {\n return result;\n }\n\n this.f = null;\n }\n\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDropWhile;\n}();\n\nvar _xdropWhile = /*#__PURE__*/_curry2(function _xdropWhile(f, xf) {\n return new XDropWhile(f, xf);\n});\n\nexport default _xdropWhile;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdropWhile from \"./internal/_xdropWhile.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns a new list excluding the leading elements of a given list which\n * satisfy the supplied predicate function. It passes each value to the supplied\n * predicate function, skipping elements while the predicate function returns\n * `true`. The predicate function is applied to one argument: *(value)*.\n *\n * Dispatches to the `dropWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.takeWhile, R.transduce, R.addIndex\n * @example\n *\n * const lteTwo = x => x <= 2;\n *\n * R.dropWhile(lteTwo, [1, 2, 3, 4, 3, 2, 1]); //=> [3, 4, 3, 2, 1]\n *\n * R.dropWhile(x => x !== 'd' , 'Ramda'); //=> 'da'\n */\n\nvar dropWhile = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['dropWhile'], _xdropWhile, function dropWhile(pred, xs) {\n var idx = 0;\n var len = xs.length;\n\n while (idx < len && pred(xs[idx])) {\n idx += 1;\n }\n\n return slice(idx, Infinity, xs);\n}));\n\nexport default dropWhile;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if one or both of its arguments are `true`. Returns `false`\n * if both arguments are `false`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if truthy, otherwise the second argument.\n * @see R.either, R.xor\n * @example\n *\n * R.or(true, true); //=> true\n * R.or(true, false); //=> true\n * R.or(false, true); //=> true\n * R.or(false, false); //=> false\n */\n\nvar or = /*#__PURE__*/_curry2(function or(a, b) {\n return a || b;\n});\n\nexport default or;","import _curry2 from \"./internal/_curry2.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport lift from \"./lift.js\";\nimport or from \"./or.js\";\n/**\n * A function wrapping calls to the two functions in an `||` operation,\n * returning the result of the first function if it is truth-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * truth-y value.\n *\n * In addition to functions, `R.either` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f a predicate\n * @param {Function} g another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `||`s their outputs together.\n * @see R.or\n * @example\n *\n * const gt10 = x => x > 10;\n * const even = x => x % 2 === 0;\n * const f = R.either(gt10, even);\n * f(101); //=> true\n * f(8); //=> true\n *\n * R.either(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(55)\n * R.either([false, false, 'a'], [11]) // => [11, 11, \"a\"]\n */\n\nvar either = /*#__PURE__*/_curry2(function either(f, g) {\n return _isFunction(f) ? function _either() {\n return f.apply(this, arguments) || g.apply(this, arguments);\n } : lift(or)(f, g);\n});\n\nexport default either;","import _curry1 from \"./internal/_curry1.js\";\nimport _isArguments from \"./internal/_isArguments.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns the empty value of its argument's type. Ramda defines the empty\n * value of Array (`[]`), Object (`{}`), String (`''`), and Arguments. Other\n * types are supported if they define `.empty`,\n * `.prototype.empty` or implement the\n * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).\n *\n * Dispatches to the `empty` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> a\n * @param {*} x\n * @return {*}\n * @example\n *\n * R.empty(Just(42)); //=> Nothing()\n * R.empty([1, 2, 3]); //=> []\n * R.empty('unicorns'); //=> ''\n * R.empty({x: 1, y: 2}); //=> {}\n */\n\nvar empty = /*#__PURE__*/_curry1(function empty(x) {\n return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : _isArray(x) ? [] : _isString(x) ? '' : _isObject(x) ? {} : _isArguments(x) ? function () {\n return arguments;\n }() : void 0 // else\n ;\n});\n\nexport default empty;","import _curry2 from \"./internal/_curry2.js\";\nimport drop from \"./drop.js\";\n/**\n * Returns a new list containing the last `n` elements of the given list.\n * If `n > list.length`, returns a list of `list.length` elements.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements to return.\n * @param {Array} xs The collection to consider.\n * @return {Array}\n * @see R.dropLast\n * @example\n *\n * R.takeLast(1, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.takeLast(2, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.takeLast(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(3, 'ramda'); //=> 'mda'\n */\n\nvar takeLast = /*#__PURE__*/_curry2(function takeLast(n, xs) {\n return drop(n >= 0 ? xs.length - n : 0, xs);\n});\n\nexport default takeLast;","import _curry2 from \"./internal/_curry2.js\";\nimport equals from \"./equals.js\";\nimport takeLast from \"./takeLast.js\";\n/**\n * Checks if a list ends with the provided sublist.\n *\n * Similarly, checks if a string ends with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} suffix\n * @param {*} list\n * @return {Boolean}\n * @see R.startsWith\n * @example\n *\n * R.endsWith('c', 'abc') //=> true\n * R.endsWith('b', 'abc') //=> false\n * R.endsWith(['c'], ['a', 'b', 'c']) //=> true\n * R.endsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\nvar endsWith = /*#__PURE__*/_curry2(function (suffix, list) {\n return equals(takeLast(suffix.length, list), suffix);\n});\n\nexport default endsWith;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\n/**\n * Takes a function and two values in its domain and returns `true` if the\n * values map to the same value in the codomain; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Relation\n * @sig (a -> b) -> a -> a -> Boolean\n * @param {Function} f\n * @param {*} x\n * @param {*} y\n * @return {Boolean}\n * @example\n *\n * R.eqBy(Math.abs, 5, -5); //=> true\n */\n\nvar eqBy = /*#__PURE__*/_curry3(function eqBy(f, x, y) {\n return equals(f(x), f(y));\n});\n\nexport default eqBy;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\n/**\n * Reports whether two objects have the same value, in [`R.equals`](#equals)\n * terms, for the specified property. Useful as a curried predicate.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig k -> {k: v} -> {k: v} -> Boolean\n * @param {String} prop The name of the property to compare\n * @param {Object} obj1\n * @param {Object} obj2\n * @return {Boolean}\n *\n * @example\n *\n * const o1 = { a: 1, b: 2, c: 3, d: 4 };\n * const o2 = { a: 10, b: 20, c: 3, d: 40 };\n * R.eqProps('a', o1, o2); //=> false\n * R.eqProps('c', o1, o2); //=> true\n */\n\nvar eqProps = /*#__PURE__*/_curry3(function eqProps(prop, obj1, obj2) {\n return equals(obj1[prop], obj2[prop]);\n});\n\nexport default eqProps;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new object by recursively evolving a shallow copy of `object`,\n * according to the `transformation` functions. All non-primitive properties\n * are copied by reference.\n *\n * A `transformation` function will not be invoked if its corresponding key\n * does not exist in the evolved object.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {k: (v -> v)} -> {k: v} -> {k: v}\n * @param {Object} transformations The object specifying transformation functions to apply\n * to the object.\n * @param {Object} object The object to be transformed.\n * @return {Object} The transformed object.\n * @example\n *\n * const tomato = {firstName: ' Tomato ', data: {elapsed: 100, remaining: 1400}, id:123};\n * const transformations = {\n * firstName: R.trim,\n * lastName: R.trim, // Will not get invoked.\n * data: {elapsed: R.add(1), remaining: R.add(-1)}\n * };\n * R.evolve(transformations, tomato); //=> {firstName: 'Tomato', data: {elapsed: 101, remaining: 1399}, id:123}\n */\n\nvar evolve = /*#__PURE__*/_curry2(function evolve(transformations, object) {\n var result = object instanceof Array ? [] : {};\n var transformation, key, type;\n\n for (key in object) {\n transformation = transformations[key];\n type = typeof transformation;\n result[key] = type === 'function' ? transformation(object[key]) : transformation && type === 'object' ? evolve(transformation, object[key]) : object[key];\n }\n\n return result;\n});\n\nexport default evolve;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFind = /*#__PURE__*/function () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n\n XFind.prototype['@@transducer/init'] = _xfBase.init;\n\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, input));\n }\n\n return result;\n };\n\n return XFind;\n}();\n\nvar _xfind = /*#__PURE__*/_curry2(function _xfind(f, xf) {\n return new XFind(f, xf);\n});\n\nexport default _xfind;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfind from \"./internal/_xfind.js\";\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar find = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['find'], _xfind, function find(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx += 1;\n }\n}));\n\nexport default find;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFindIndex = /*#__PURE__*/function () {\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n\n XFindIndex.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindIndex.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n\n return this.xf['@@transducer/result'](result);\n };\n\n XFindIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, this.idx));\n }\n\n return result;\n };\n\n return XFindIndex;\n}();\n\nvar _xfindIndex = /*#__PURE__*/_curry2(function _xfindIndex(f, xf) {\n return new XFindIndex(f, xf);\n});\n\nexport default _xfindIndex;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindIndex from \"./internal/_xfindIndex.js\";\n/**\n * Returns the index of the first element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.findIndex(R.propEq('a', 2))(xs); //=> 1\n * R.findIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findIndex = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xfindIndex, function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx += 1;\n }\n\n return -1;\n}));\n\nexport default findIndex;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFindLast = /*#__PURE__*/function () {\n function XFindLast(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XFindLast.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindLast.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));\n };\n\n XFindLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.last = input;\n }\n\n return result;\n };\n\n return XFindLast;\n}();\n\nvar _xfindLast = /*#__PURE__*/_curry2(function _xfindLast(f, xf) {\n return new XFindLast(f, xf);\n});\n\nexport default _xfindLast;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindLast from \"./internal/_xfindLast.js\";\n/**\n * Returns the last element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLast(R.propEq('a', 1))(xs); //=> {a: 1, b: 1}\n * R.findLast(R.propEq('a', 4))(xs); //=> undefined\n */\n\nvar findLast = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xfindLast, function findLast(fn, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n if (fn(list[idx])) {\n return list[idx];\n }\n\n idx -= 1;\n }\n}));\n\nexport default findLast;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XFindLastIndex = /*#__PURE__*/function () {\n function XFindLastIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.lastIdx = -1;\n }\n\n XFindLastIndex.prototype['@@transducer/init'] = _xfBase.init;\n\n XFindLastIndex.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.lastIdx));\n };\n\n XFindLastIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n\n if (this.f(input)) {\n this.lastIdx = this.idx;\n }\n\n return result;\n };\n\n return XFindLastIndex;\n}();\n\nvar _xfindLastIndex = /*#__PURE__*/_curry2(function _xfindLastIndex(f, xf) {\n return new XFindLastIndex(f, xf);\n});\n\nexport default _xfindLastIndex;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xfindLastIndex from \"./internal/_xfindLastIndex.js\";\n/**\n * Returns the index of the last element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLastIndex(R.propEq('a', 1))(xs); //=> 1\n * R.findLastIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\nvar findLastIndex = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xfindLastIndex, function findLastIndex(fn, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n if (fn(list[idx])) {\n return idx;\n }\n\n idx -= 1;\n }\n\n return -1;\n}));\n\nexport default findLastIndex;","import _curry1 from \"./internal/_curry1.js\";\nimport _makeFlat from \"./internal/_makeFlat.js\";\n/**\n * Returns a new list by pulling every item out of it (and all its sub-arrays)\n * and putting them in a new array, depth-first.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b]\n * @param {Array} list The array to consider.\n * @return {Array} The flattened list.\n * @see R.unnest\n * @example\n *\n * R.flatten([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]);\n * //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n */\n\nvar flatten = /*#__PURE__*/_curry1( /*#__PURE__*/_makeFlat(true));\n\nexport default flatten;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Returns a new function much like the supplied one, except that the first two\n * arguments' order is reversed.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b, c, ...) -> z) -> (b -> a -> c -> ... -> z)\n * @param {Function} fn The function to invoke with its first two parameters reversed.\n * @return {*} The result of invoking `fn` with its first two parameters' order reversed.\n * @example\n *\n * const mergeThree = (a, b, c) => [].concat(a, b, c);\n *\n * mergeThree(1, 2, 3); //=> [1, 2, 3]\n *\n * R.flip(mergeThree)(1, 2, 3); //=> [2, 1, 3]\n * @symb R.flip(f)(a, b, c) = f(b, a, c)\n */\n\nvar flip = /*#__PURE__*/_curry1(function flip(fn) {\n return curryN(fn.length, function (a, b) {\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = b;\n args[1] = a;\n return fn.apply(this, args);\n });\n});\n\nexport default flip;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Iterate over an input `list`, calling a provided function `fn` for each\n * element in the list.\n *\n * `fn` receives one argument: *(value)*.\n *\n * Note: `R.forEach` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.forEach` method. For more\n * details on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Description\n *\n * Also note that, unlike `Array.prototype.forEach`, Ramda's `forEach` returns\n * the original array. In some libraries this function is named `each`.\n *\n * Dispatches to the `forEach` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> *) -> [a] -> [a]\n * @param {Function} fn The function to invoke. Receives one argument, `value`.\n * @param {Array} list The list to iterate over.\n * @return {Array} The original list.\n * @see R.addIndex\n * @example\n *\n * const printXPlusFive = x => console.log(x + 5);\n * R.forEach(printXPlusFive, [1, 2, 3]); //=> [1, 2, 3]\n * // logs 6\n * // logs 7\n * // logs 8\n * @symb R.forEach(f, [a, b, c]) = [a, b, c]\n */\n\nvar forEach = /*#__PURE__*/_curry2( /*#__PURE__*/_checkForMethod('forEach', function forEach(fn, list) {\n var len = list.length;\n var idx = 0;\n\n while (idx < len) {\n fn(list[idx]);\n idx += 1;\n }\n\n return list;\n}));\n\nexport default forEach;","import _curry2 from \"./internal/_curry2.js\";\nimport keys from \"./keys.js\";\n/**\n * Iterate over an input `object`, calling a provided function `fn` for each\n * key and value in the object.\n *\n * `fn` receives three argument: *(value, key, obj)*.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Object\n * @sig ((a, String, StrMap a) -> Any) -> StrMap a -> StrMap a\n * @param {Function} fn The function to invoke. Receives three argument, `value`, `key`, `obj`.\n * @param {Object} obj The object to iterate over.\n * @return {Object} The original object.\n * @example\n *\n * const printKeyConcatValue = (value, key) => console.log(key + ':' + value);\n * R.forEachObjIndexed(printKeyConcatValue, {x: 1, y: 2}); //=> {x: 1, y: 2}\n * // logs x:1\n * // logs y:2\n * @symb R.forEachObjIndexed(f, {x: a, y: b}) = {x: a, y: b}\n */\n\nvar forEachObjIndexed = /*#__PURE__*/_curry2(function forEachObjIndexed(fn, obj) {\n var keyList = keys(obj);\n var idx = 0;\n\n while (idx < keyList.length) {\n var key = keyList[idx];\n fn(obj[key], key, obj);\n idx += 1;\n }\n\n return obj;\n});\n\nexport default forEachObjIndexed;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Creates a new object from a list key-value pairs. If a key appears in\n * multiple pairs, the rightmost pair is included in the object.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [[k,v]] -> {k: v}\n * @param {Array} pairs An array of two-element arrays that will be the keys and values of the output object.\n * @return {Object} The object made by pairing up `keys` and `values`.\n * @see R.toPairs, R.pair\n * @example\n *\n * R.fromPairs([['a', 1], ['b', 2], ['c', 3]]); //=> {a: 1, b: 2, c: 3}\n */\n\nvar fromPairs = /*#__PURE__*/_curry1(function fromPairs(pairs) {\n var result = {};\n var idx = 0;\n\n while (idx < pairs.length) {\n result[pairs[idx][0]] = pairs[idx][1];\n idx += 1;\n }\n\n return result;\n});\n\nexport default fromPairs;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport reduceBy from \"./reduceBy.js\";\n/**\n * Splits a list into sub-lists stored in an object, based on the result of\n * calling a String-returning function on each element, and grouping the\n * results according to values returned.\n *\n * Dispatches to the `groupBy` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> String) -> [a] -> {String: [a]}\n * @param {Function} fn Function :: a -> String\n * @param {Array} list The array to group\n * @return {Object} An object with the output of `fn` for keys, mapped to arrays of elements\n * that produced that key when passed to `fn`.\n * @see R.reduceBy, R.transduce\n * @example\n *\n * const byGrade = R.groupBy(function(student) {\n * const score = student.score;\n * return score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A';\n * });\n * const students = [{name: 'Abby', score: 84},\n * {name: 'Eddy', score: 58},\n * // ...\n * {name: 'Jack', score: 69}];\n * byGrade(students);\n * // {\n * // 'A': [{name: 'Dianne', score: 99}],\n * // 'B': [{name: 'Abby', score: 84}]\n * // // ...,\n * // 'F': [{name: 'Eddy', score: 58}]\n * // }\n */\n\nvar groupBy = /*#__PURE__*/_curry2( /*#__PURE__*/_checkForMethod('groupBy', /*#__PURE__*/reduceBy(function (acc, item) {\n if (acc == null) {\n acc = [];\n }\n\n acc.push(item);\n return acc;\n}, null)));\n\nexport default groupBy;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes a list and returns a list of lists where each sublist's elements are\n * all satisfied pairwise comparison according to the provided function.\n * Only adjacent elements are passed to the comparison function.\n *\n * @func\n * @memberOf R\n * @since v0.21.0\n * @category List\n * @sig ((a, a) → Boolean) → [a] → [[a]]\n * @param {Function} fn Function for determining whether two given (adjacent)\n * elements should be in the same group\n * @param {Array} list The array to group. Also accepts a string, which will be\n * treated as a list of characters.\n * @return {List} A list that contains sublists of elements,\n * whose concatenations are equal to the original list.\n * @example\n *\n * R.groupWith(R.equals, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a + 1 === b, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0, 1], [1, 2, 3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a % 2 === b % 2, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3, 5], [8], [13, 21]]\n *\n * R.groupWith(R.eqBy(isVowel), 'aestiou')\n * //=> ['ae', 'st', 'iou']\n */\n\nvar groupWith = /*#__PURE__*/_curry2(function (fn, list) {\n var res = [];\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n var nextidx = idx + 1;\n\n while (nextidx < len && fn(list[nextidx - 1], list[nextidx])) {\n nextidx += 1;\n }\n\n res.push(list.slice(idx, nextidx));\n idx = nextidx;\n }\n\n return res;\n});\n\nexport default groupWith;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the first argument is greater than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.lt\n * @example\n *\n * R.gt(2, 1); //=> true\n * R.gt(2, 2); //=> false\n * R.gt(2, 3); //=> false\n * R.gt('a', 'z'); //=> false\n * R.gt('z', 'a'); //=> true\n */\n\nvar gt = /*#__PURE__*/_curry2(function gt(a, b) {\n return a > b;\n});\n\nexport default gt;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the first argument is greater than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.lte\n * @example\n *\n * R.gte(2, 1); //=> true\n * R.gte(2, 2); //=> true\n * R.gte(2, 3); //=> false\n * R.gte('a', 'z'); //=> false\n * R.gte('z', 'a'); //=> true\n */\n\nvar gte = /*#__PURE__*/_curry2(function gte(a, b) {\n return a >= b;\n});\n\nexport default gte;","import _curry2 from \"./internal/_curry2.js\";\nimport _has from \"./internal/_has.js\";\nimport isNil from \"./isNil.js\";\n/**\n * Returns whether or not a path exists in an object. Only the object's\n * own properties are checked.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> Boolean\n * @param {Array} path The path to use.\n * @param {Object} obj The object to check the path in.\n * @return {Boolean} Whether the path exists.\n * @see R.has\n * @example\n *\n * R.hasPath(['a', 'b'], {a: {b: 2}}); // => true\n * R.hasPath(['a', 'b'], {a: {b: undefined}}); // => true\n * R.hasPath(['a', 'b'], {a: {c: 2}}); // => false\n * R.hasPath(['a', 'b'], {}); // => false\n */\n\nvar hasPath = /*#__PURE__*/_curry2(function hasPath(_path, obj) {\n if (_path.length === 0 || isNil(obj)) {\n return false;\n }\n\n var val = obj;\n var idx = 0;\n\n while (idx < _path.length) {\n if (!isNil(val) && _has(_path[idx], val)) {\n val = val[_path[idx]];\n idx += 1;\n } else {\n return false;\n }\n }\n\n return true;\n});\n\nexport default hasPath;","import _curry2 from \"./internal/_curry2.js\";\nimport hasPath from \"./hasPath.js\";\n/**\n * Returns whether or not an object has an own property with the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * const hasName = R.has('name');\n * hasName({name: 'alice'}); //=> true\n * hasName({name: 'bob'}); //=> true\n * hasName({}); //=> false\n *\n * const point = {x: 0, y: 0};\n * const pointHas = R.has(R.__, point);\n * pointHas('x'); //=> true\n * pointHas('y'); //=> true\n * pointHas('z'); //=> false\n */\n\nvar has = /*#__PURE__*/_curry2(function has(prop, obj) {\n return hasPath([prop], obj);\n});\n\nexport default has;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns whether or not an object or its prototype chain has a property with\n * the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * function Rectangle(width, height) {\n * this.width = width;\n * this.height = height;\n * }\n * Rectangle.prototype.area = function() {\n * return this.width * this.height;\n * };\n *\n * const square = new Rectangle(2, 2);\n * R.hasIn('width', square); //=> true\n * R.hasIn('area', square); //=> true\n */\n\nvar hasIn = /*#__PURE__*/_curry2(function hasIn(prop, obj) {\n return prop in obj;\n});\n\nexport default hasIn;","import _objectIs from \"./internal/_objectIs.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns true if its arguments are identical, false otherwise. Values are\n * identical if they reference the same memory. `NaN` is identical to `NaN`;\n * `0` and `-0` are not identical.\n *\n * Note this is merely a curried version of ES6 `Object.is`.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * const o = {};\n * R.identical(o, o); //=> true\n * R.identical(1, 1); //=> true\n * R.identical(1, '1'); //=> false\n * R.identical([], []); //=> false\n * R.identical(0, -0); //=> false\n * R.identical(NaN, NaN); //=> true\n */\n\nvar identical = /*#__PURE__*/_curry2(_objectIs);\n\nexport default identical;","import _curry3 from \"./internal/_curry3.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Creates a function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> *) -> (*... -> *) -> (*... -> *)\n * @param {Function} condition A predicate function\n * @param {Function} onTrue A function to invoke when the `condition` evaluates to a truthy value.\n * @param {Function} onFalse A function to invoke when the `condition` evaluates to a falsy value.\n * @return {Function} A new function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n * @see R.unless, R.when, R.cond\n * @example\n *\n * const incCount = R.ifElse(\n * R.has('count'),\n * R.over(R.lensProp('count'), R.inc),\n * R.assoc('count', 1)\n * );\n * incCount({}); //=> { count: 1 }\n * incCount({ count: 1 }); //=> { count: 2 }\n */\n\nvar ifElse = /*#__PURE__*/_curry3(function ifElse(condition, onTrue, onFalse) {\n return curryN(Math.max(condition.length, onTrue.length, onFalse.length), function _ifElse() {\n return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments);\n });\n});\n\nexport default ifElse;","import add from \"./add.js\";\n/**\n * Increments its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n + 1\n * @see R.dec\n * @example\n *\n * R.inc(42); //=> 43\n */\n\nvar inc = /*#__PURE__*/add(1);\nexport default inc;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.any\n * @example\n *\n * R.includes(3, [1, 2, 3]); //=> true\n * R.includes(4, [1, 2, 3]); //=> false\n * R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.includes([42], [[42]]); //=> true\n * R.includes('ba', 'banana'); //=>true\n */\n\nvar includes = /*#__PURE__*/_curry2(_includes);\n\nexport default includes;","import reduceBy from \"./reduceBy.js\";\n/**\n * Given a function that generates a key, turns a list of objects into an\n * object indexing the objects by the given key. Note that if multiple\n * objects generate the same value for the indexing key only the last value\n * will be included in the generated object.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> String) -> [{k: v}] -> {k: {k: v}}\n * @param {Function} fn Function :: a -> String\n * @param {Array} array The array of objects to index\n * @return {Object} An object indexing each array element by the given property.\n * @example\n *\n * const list = [{id: 'xyz', title: 'A'}, {id: 'abc', title: 'B'}];\n * R.indexBy(R.prop('id'), list);\n * //=> {abc: {id: 'abc', title: 'B'}, xyz: {id: 'xyz', title: 'A'}}\n */\n\nvar indexBy = /*#__PURE__*/reduceBy(function (acc, elem) {\n return elem;\n}, null);\nexport default indexBy;","import _curry2 from \"./internal/_curry2.js\";\nimport _indexOf from \"./internal/_indexOf.js\";\nimport _isArray from \"./internal/_isArray.js\";\n/**\n * Returns the position of the first occurrence of an item in an array, or -1\n * if the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.lastIndexOf\n * @example\n *\n * R.indexOf(3, [1,2,3,4]); //=> 2\n * R.indexOf(10, [1,2,3,4]); //=> -1\n */\n\nvar indexOf = /*#__PURE__*/_curry2(function indexOf(target, xs) {\n return typeof xs.indexOf === 'function' && !_isArray(xs) ? xs.indexOf(target) : _indexOf(xs, target, 0);\n});\n\nexport default indexOf;","import slice from \"./slice.js\";\n/**\n * Returns all but the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.last, R.head, R.tail\n * @example\n *\n * R.init([1, 2, 3]); //=> [1, 2]\n * R.init([1, 2]); //=> [1]\n * R.init([1]); //=> []\n * R.init([]); //=> []\n *\n * R.init('abc'); //=> 'ab'\n * R.init('ab'); //=> 'a'\n * R.init('a'); //=> ''\n * R.init(''); //=> ''\n */\n\nvar init = /*#__PURE__*/slice(0, -1);\nexport default init;","import _includesWith from \"./internal/_includesWith.js\";\nimport _curry3 from \"./internal/_curry3.js\";\nimport _filter from \"./internal/_filter.js\";\n/**\n * Takes a predicate `pred`, a list `xs`, and a list `ys`, and returns a list\n * `xs'` comprising each of the elements of `xs` which is equal to one or more\n * elements of `ys` according to `pred`.\n *\n * `pred` must be a binary function expecting an element from each list.\n *\n * `xs`, `ys`, and `xs'` are treated as sets, semantically, so ordering should\n * not be significant, but since `xs'` is ordered the implementation guarantees\n * that its values are in the same order as they appear in `xs`. Duplicates are\n * not removed, so `xs'` may contain duplicates if `xs` contains duplicates.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Relation\n * @sig ((a, b) -> Boolean) -> [a] -> [b] -> [a]\n * @param {Function} pred\n * @param {Array} xs\n * @param {Array} ys\n * @return {Array}\n * @see R.intersection\n * @example\n *\n * R.innerJoin(\n * (record, id) => record.id === id,\n * [{id: 824, name: 'Richie Furay'},\n * {id: 956, name: 'Dewey Martin'},\n * {id: 313, name: 'Bruce Palmer'},\n * {id: 456, name: 'Stephen Stills'},\n * {id: 177, name: 'Neil Young'}],\n * [177, 456, 999]\n * );\n * //=> [{id: 456, name: 'Stephen Stills'}, {id: 177, name: 'Neil Young'}]\n */\n\nvar innerJoin = /*#__PURE__*/_curry3(function innerJoin(pred, xs, ys) {\n return _filter(function (x) {\n return _includesWith(pred, x, ys);\n }, xs);\n});\n\nexport default innerJoin;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Inserts the supplied element into the list, at the specified `index`. _Note that\n\n * this is not destructive_: it returns a copy of the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} index The position to insert the element\n * @param {*} elt The element to insert into the Array\n * @param {Array} list The list to insert into\n * @return {Array} A new Array with `elt` inserted at `index`.\n * @example\n *\n * R.insert(2, 'x', [1,2,3,4]); //=> [1,2,'x',3,4]\n */\n\nvar insert = /*#__PURE__*/_curry3(function insert(idx, elt, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n var result = Array.prototype.slice.call(list, 0);\n result.splice(idx, 0, elt);\n return result;\n});\n\nexport default insert;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Inserts the sub-list into the list, at the specified `index`. _Note that this is not\n * destructive_: it returns a copy of the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig Number -> [a] -> [a] -> [a]\n * @param {Number} index The position to insert the sub-list\n * @param {Array} elts The sub-list to insert into the Array\n * @param {Array} list The list to insert the sub-list into\n * @return {Array} A new Array with `elts` inserted starting at `index`.\n * @example\n *\n * R.insertAll(2, ['x','y','z'], [1,2,3,4]); //=> [1,2,'x','y','z',3,4]\n */\n\nvar insertAll = /*#__PURE__*/_curry3(function insertAll(idx, elts, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n return [].concat(Array.prototype.slice.call(list, 0, idx), elts, Array.prototype.slice.call(list, idx));\n});\n\nexport default insertAll;","import _Set from \"./internal/_Set.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied function to\n * each list element. Prefers the first item if the supplied function produces\n * the same value on two items. [`R.equals`](#equals) is used for comparison.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> b) -> [a] -> [a]\n * @param {Function} fn A function used to produce a value to use during comparisons.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniqBy(Math.abs, [-1, -5, 2, 10, 1, 2]); //=> [-1, -5, 2, 10]\n */\n\nvar uniqBy = /*#__PURE__*/_curry2(function uniqBy(fn, list) {\n var set = new _Set();\n var result = [];\n var idx = 0;\n var appliedItem, item;\n\n while (idx < list.length) {\n item = list[idx];\n appliedItem = fn(item);\n\n if (set.add(appliedItem)) {\n result.push(item);\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default uniqBy;","import identity from \"./identity.js\";\nimport uniqBy from \"./uniqBy.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list. [`R.equals`](#equals) is used to determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniq([1, 1, 2, 1]); //=> [1, 2]\n * R.uniq([1, '1']); //=> [1, '1']\n * R.uniq([[42], [42]]); //=> [[42]]\n */\n\nvar uniq = /*#__PURE__*/uniqBy(identity);\nexport default uniq;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _filter from \"./internal/_filter.js\";\nimport flip from \"./flip.js\";\nimport uniq from \"./uniq.js\";\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of those\n * elements common to both lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The list of elements found in both `list1` and `list2`.\n * @see R.innerJoin\n * @example\n *\n * R.intersection([1,2,3,4], [7,6,5,4,3]); //=> [4, 3]\n */\n\nvar intersection = /*#__PURE__*/_curry2(function intersection(list1, list2) {\n var lookupList, filteredList;\n\n if (list1.length > list2.length) {\n lookupList = list1;\n filteredList = list2;\n } else {\n lookupList = list2;\n filteredList = list1;\n }\n\n return uniq(_filter(flip(_includes)(lookupList), filteredList));\n});\n\nexport default intersection;","import _checkForMethod from \"./internal/_checkForMethod.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new list with the separator interposed between elements.\n *\n * Dispatches to the `intersperse` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} separator The element to add to the list.\n * @param {Array} list The list to be interposed.\n * @return {Array} The new list.\n * @example\n *\n * R.intersperse('a', ['b', 'n', 'n', 's']); //=> ['b', 'a', 'n', 'a', 'n', 'a', 's']\n */\n\nvar intersperse = /*#__PURE__*/_curry2( /*#__PURE__*/_checkForMethod('intersperse', function intersperse(separator, list) {\n var out = [];\n var idx = 0;\n var length = list.length;\n\n while (idx < length) {\n if (idx === length - 1) {\n out.push(list[idx]);\n } else {\n out.push(list[idx], separator);\n }\n\n idx += 1;\n }\n\n return out;\n}));\n\nexport default intersperse;","import _has from \"./_has.js\"; // Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n\n while (idx < length) {\n var source = arguments[idx];\n\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n\n idx += 1;\n }\n\n return output;\n}\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates an object containing a single key:value pair.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @sig String -> a -> {String:a}\n * @param {String} key\n * @param {*} val\n * @return {Object}\n * @see R.pair\n * @example\n *\n * const matchPhrases = R.compose(\n * R.objOf('must'),\n * R.map(R.objOf('match_phrase'))\n * );\n * matchPhrases(['foo', 'bar', 'baz']); //=> {must: [{match_phrase: 'foo'}, {match_phrase: 'bar'}, {match_phrase: 'baz'}]}\n */\n\nvar objOf = /*#__PURE__*/_curry2(function objOf(key, val) {\n var obj = {};\n obj[key] = val;\n return obj;\n});\n\nexport default objOf;","import _objectAssign from \"./_objectAssign.js\";\nimport _identity from \"./_identity.js\";\nimport _isArrayLike from \"./_isArrayLike.js\";\nimport _isTransformer from \"./_isTransformer.js\";\nimport objOf from \"../objOf.js\";\nvar _stepCatArray = {\n '@@transducer/init': Array,\n '@@transducer/step': function transducerStep(xs, x) {\n xs.push(x);\n return xs;\n },\n '@@transducer/result': _identity\n};\nvar _stepCatString = {\n '@@transducer/init': String,\n '@@transducer/step': function transducerStep(a, b) {\n return a + b;\n },\n '@@transducer/result': _identity\n};\nvar _stepCatObject = {\n '@@transducer/init': Object,\n '@@transducer/step': function transducerStep(result, input) {\n return _objectAssign(result, _isArrayLike(input) ? objOf(input[0], input[1]) : input);\n },\n '@@transducer/result': _identity\n};\nexport default function _stepCat(obj) {\n if (_isTransformer(obj)) {\n return obj;\n }\n\n if (_isArrayLike(obj)) {\n return _stepCatArray;\n }\n\n if (typeof obj === 'string') {\n return _stepCatString;\n }\n\n if (typeof obj === 'object') {\n return _stepCatObject;\n }\n\n throw new Error('Cannot create transformer for ' + obj);\n}","import _clone from \"./internal/_clone.js\";\nimport _curry3 from \"./internal/_curry3.js\";\nimport _isTransformer from \"./internal/_isTransformer.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _stepCat from \"./internal/_stepCat.js\";\n/**\n * Transforms the items of the list with the transducer and appends the\n * transformed items to the accumulator using an appropriate iterator function\n * based on the accumulator type.\n *\n * The accumulator can be an array, string, object or a transformer. Iterated\n * items will be appended to arrays and concatenated to strings. Objects will\n * be merged directly or 2-item arrays will be merged as key, value pairs.\n *\n * The accumulator can also be a transformer object that provides a 2-arity\n * reducing iterator function, step, 0-arity initial value function, init, and\n * 1-arity result extraction function result. The step function is used as the\n * iterator function in reduce. The result function is used to convert the\n * final accumulator into the return type and in most cases is R.identity. The\n * init function is used to provide the initial accumulator.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the\n * transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig a -> (b -> b) -> [c] -> a\n * @param {*} acc The initial accumulator value.\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.transduce\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n *\n * R.into([], transducer, numbers); //=> [2, 3]\n *\n * const intoArray = R.into([]);\n * intoArray(transducer, numbers); //=> [2, 3]\n */\n\nvar into = /*#__PURE__*/_curry3(function into(acc, xf, list) {\n return _isTransformer(acc) ? _reduce(xf(acc), acc['@@transducer/init'](), list) : _reduce(xf(_stepCat(acc)), _clone(acc, [], [], false), list);\n});\n\nexport default into;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport keys from \"./keys.js\";\n/**\n * Same as [`R.invertObj`](#invertObj), however this accounts for objects with\n * duplicate values by putting the values into an array.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: [ s, ... ]}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object with keys in an array.\n * @see R.invertObj\n * @example\n *\n * const raceResultsByFirstName = {\n * first: 'alice',\n * second: 'jake',\n * third: 'alice',\n * };\n * R.invert(raceResultsByFirstName);\n * //=> { 'alice': ['first', 'third'], 'jake':['second'] }\n */\n\nvar invert = /*#__PURE__*/_curry1(function invert(obj) {\n var props = keys(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n var val = obj[key];\n var list = _has(val, out) ? out[val] : out[val] = [];\n list[list.length] = key;\n idx += 1;\n }\n\n return out;\n});\n\nexport default invert;","import _curry1 from \"./internal/_curry1.js\";\nimport keys from \"./keys.js\";\n/**\n * Returns a new object with the keys of the given object as values, and the\n * values of the given object, which are coerced to strings, as keys. Note\n * that the last key found is preferred when handling the same value.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: s}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object\n * @see R.invert\n * @example\n *\n * const raceResults = {\n * first: 'alice',\n * second: 'jake'\n * };\n * R.invertObj(raceResults);\n * //=> { 'alice': 'first', 'jake':'second' }\n *\n * // Alternatively:\n * const raceResults = ['alice', 'jake'];\n * R.invertObj(raceResults);\n * //=> { 'alice': '0', 'jake':'1' }\n */\n\nvar invertObj = /*#__PURE__*/_curry1(function invertObj(obj) {\n var props = keys(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n out[obj[key]] = key;\n idx += 1;\n }\n\n return out;\n});\n\nexport default invertObj;","import _curry2 from \"./internal/_curry2.js\";\nimport _isFunction from \"./internal/_isFunction.js\";\nimport curryN from \"./curryN.js\";\nimport toString from \"./toString.js\";\n/**\n * Turns a named method with a specified arity into a function that can be\n * called directly supplied with arguments and a target object.\n *\n * The returned function is curried and accepts `arity + 1` parameters where\n * the final parameter is the target object.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> String -> (a -> b -> ... -> n -> Object -> *)\n * @param {Number} arity Number of arguments the returned function should take\n * before the target object.\n * @param {String} method Name of any of the target object's methods to call.\n * @return {Function} A new curried function.\n * @see R.construct\n * @example\n *\n * const sliceFrom = R.invoker(1, 'slice');\n * sliceFrom(6, 'abcdefghijklm'); //=> 'ghijklm'\n * const sliceFrom6 = R.invoker(2, 'slice')(6);\n * sliceFrom6(8, 'abcdefghijklm'); //=> 'gh'\n *\n * const dog = {\n * speak: async () => 'Woof!'\n * };\n * const speak = R.invoker(0, 'speak');\n * speak(dog).then(console.log) //~> 'Woof!'\n *\n * @symb R.invoker(0, 'method')(o) = o['method']()\n * @symb R.invoker(1, 'method')(a, o) = o['method'](a)\n * @symb R.invoker(2, 'method')(a, b, o) = o['method'](a, b)\n */\n\nvar invoker = /*#__PURE__*/_curry2(function invoker(arity, method) {\n return curryN(arity + 1, function () {\n var target = arguments[arity];\n\n if (target != null && _isFunction(target[method])) {\n return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity));\n }\n\n throw new TypeError(toString(target) + ' does not have a method named \"' + method + '\"');\n });\n});\n\nexport default invoker;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * See if an object (`val`) is an instance of the supplied constructor. This\n * function will check up the inheritance chain, if any.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Type\n * @sig (* -> {*}) -> a -> Boolean\n * @param {Object} ctor A constructor\n * @param {*} val The value to test\n * @return {Boolean}\n * @example\n *\n * R.is(Object, {}); //=> true\n * R.is(Number, 1); //=> true\n * R.is(Object, 1); //=> false\n * R.is(String, 's'); //=> true\n * R.is(String, new String('')); //=> true\n * R.is(Object, new String('')); //=> true\n * R.is(Object, 's'); //=> false\n * R.is(Number, {}); //=> false\n */\n\nvar is = /*#__PURE__*/_curry2(function is(Ctor, val) {\n return val != null && val.constructor === Ctor || val instanceof Ctor;\n});\n\nexport default is;","import _curry1 from \"./internal/_curry1.js\";\nimport empty from \"./empty.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns `true` if the given value is its type's empty value; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> Boolean\n * @param {*} x\n * @return {Boolean}\n * @see R.empty\n * @example\n *\n * R.isEmpty([1, 2, 3]); //=> false\n * R.isEmpty([]); //=> true\n * R.isEmpty(''); //=> true\n * R.isEmpty(null); //=> false\n * R.isEmpty({}); //=> true\n * R.isEmpty({length: 0}); //=> false\n */\n\nvar isEmpty = /*#__PURE__*/_curry1(function isEmpty(x) {\n return x != null && equals(x, empty(x));\n});\n\nexport default isEmpty;","import invoker from \"./invoker.js\";\n/**\n * Returns a string made by inserting the `separator` between each element and\n * concatenating all the elements into a single string.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig String -> [a] -> String\n * @param {Number|String} separator The string used to separate the elements.\n * @param {Array} xs The elements to join into a string.\n * @return {String} str The string made by concatenating `xs` with `separator`.\n * @see R.split\n * @example\n *\n * const spacer = R.join(' ');\n * spacer(['a', 2, 3.4]); //=> 'a 2 3.4'\n * R.join('|', [1, 2, 3]); //=> '1|2|3'\n */\n\nvar join = /*#__PURE__*/invoker(1, 'join');\nexport default join;","import _curry1 from \"./internal/_curry1.js\";\nimport converge from \"./converge.js\";\n/**\n * juxt applies a list of functions to a list of values.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Function\n * @sig [(a, b, ..., m) -> n] -> ((a, b, ..., m) -> [n])\n * @param {Array} fns An array of functions\n * @return {Function} A function that returns a list of values after applying each of the original `fns` to its parameters.\n * @see R.applySpec\n * @example\n *\n * const getRange = R.juxt([Math.min, Math.max]);\n * getRange(3, 4, 9, -3); //=> [-3, 9]\n * @symb R.juxt([f, g, h])(a, b) = [f(a, b), g(a, b), h(a, b)]\n */\n\nvar juxt = /*#__PURE__*/_curry1(function juxt(fns) {\n return converge(function () {\n return Array.prototype.slice.call(arguments, 0);\n }, fns);\n});\n\nexport default juxt;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Returns a list containing the names of all the properties of the supplied\n * object, including prototype properties.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own and prototype properties.\n * @see R.keys, R.valuesIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.keysIn(f); //=> ['x', 'y']\n */\n\nvar keysIn = /*#__PURE__*/_curry1(function keysIn(obj) {\n var prop;\n var ks = [];\n\n for (prop in obj) {\n ks[ks.length] = prop;\n }\n\n return ks;\n});\n\nexport default keysIn;","import _curry2 from \"./internal/_curry2.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns the position of the last occurrence of an item in an array, or -1 if\n * the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.indexOf\n * @example\n *\n * R.lastIndexOf(3, [-1,3,3,0,1,2,3,4]); //=> 6\n * R.lastIndexOf(10, [1,2,3,4]); //=> -1\n */\n\nvar lastIndexOf = /*#__PURE__*/_curry2(function lastIndexOf(target, xs) {\n if (typeof xs.lastIndexOf === 'function' && !_isArray(xs)) {\n return xs.lastIndexOf(target);\n } else {\n var idx = xs.length - 1;\n\n while (idx >= 0) {\n if (equals(xs[idx], target)) {\n return idx;\n }\n\n idx -= 1;\n }\n\n return -1;\n }\n});\n\nexport default lastIndexOf;","export default function _isNumber(x) {\n return Object.prototype.toString.call(x) === '[object Number]';\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _isNumber from \"./internal/_isNumber.js\";\n/**\n * Returns the number of elements in the array by returning `list.length`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [a] -> Number\n * @param {Array} list The array to inspect.\n * @return {Number} The length of the array.\n * @example\n *\n * R.length([]); //=> 0\n * R.length([1, 2, 3]); //=> 3\n */\n\nvar length = /*#__PURE__*/_curry1(function length(list) {\n return list != null && _isNumber(list.length) ? list.length : NaN;\n});\n\nexport default length;","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\n/**\n * Returns a lens for the given getter and setter functions. The getter \"gets\"\n * the value of the focus; the setter \"sets\" the value of the focus. The setter\n * should not mutate the data structure.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig (s -> a) -> ((a, s) -> s) -> Lens s a\n * @param {Function} getter\n * @param {Function} setter\n * @return {Lens}\n * @see R.view, R.set, R.over, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lens(R.prop('x'), R.assoc('x'));\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lens = /*#__PURE__*/_curry2(function lens(getter, setter) {\n return function (toFunctorFn) {\n return function (target) {\n return map(function (focus) {\n return setter(focus, target);\n }, toFunctorFn(getter(target)));\n };\n };\n});\n\nexport default lens;","import _curry1 from \"./internal/_curry1.js\";\nimport lens from \"./lens.js\";\nimport nth from \"./nth.js\";\nimport update from \"./update.js\";\n/**\n * Returns a lens whose focus is the specified index.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Number -> Lens s a\n * @param {Number} n\n * @return {Lens}\n * @see R.view, R.set, R.over, R.nth\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.view(headLens, ['a', 'b', 'c']); //=> 'a'\n * R.set(headLens, 'x', ['a', 'b', 'c']); //=> ['x', 'b', 'c']\n * R.over(headLens, R.toUpper, ['a', 'b', 'c']); //=> ['A', 'b', 'c']\n */\n\nvar lensIndex = /*#__PURE__*/_curry1(function lensIndex(n) {\n return lens(nth(n), update(n));\n});\n\nexport default lensIndex;","import _curry1 from \"./internal/_curry1.js\";\nimport assocPath from \"./assocPath.js\";\nimport lens from \"./lens.js\";\nimport path from \"./path.js\";\n/**\n * Returns a lens whose focus is the specified path.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @typedefn Idx = String | Int\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig [Idx] -> Lens s a\n * @param {Array} path The path to use.\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xHeadYLens = R.lensPath(['x', 0, 'y']);\n *\n * R.view(xHeadYLens, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> 2\n * R.set(xHeadYLens, 1, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: 1, z: 3}, {y: 4, z: 5}]}\n * R.over(xHeadYLens, R.negate, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: -2, z: 3}, {y: 4, z: 5}]}\n */\n\nvar lensPath = /*#__PURE__*/_curry1(function lensPath(p) {\n return lens(path(p), assocPath(p));\n});\n\nexport default lensPath;","import _curry1 from \"./internal/_curry1.js\";\nimport assoc from \"./assoc.js\";\nimport lens from \"./lens.js\";\nimport prop from \"./prop.js\";\n/**\n * Returns a lens whose focus is the specified property.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig String -> Lens s a\n * @param {String} k\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lensProp = /*#__PURE__*/_curry1(function lensProp(k) {\n return lens(prop(k), assoc(k));\n});\n\nexport default lensProp;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the first argument is less than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.gt\n * @example\n *\n * R.lt(2, 1); //=> false\n * R.lt(2, 2); //=> false\n * R.lt(2, 3); //=> true\n * R.lt('a', 'z'); //=> true\n * R.lt('z', 'a'); //=> false\n */\n\nvar lt = /*#__PURE__*/_curry2(function lt(a, b) {\n return a < b;\n});\n\nexport default lt;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the first argument is less than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.gte\n * @example\n *\n * R.lte(2, 1); //=> false\n * R.lte(2, 2); //=> true\n * R.lte(2, 3); //=> true\n * R.lte('a', 'z'); //=> true\n * R.lte('z', 'a'); //=> false\n */\n\nvar lte = /*#__PURE__*/_curry2(function lte(a, b) {\n return a <= b;\n});\n\nexport default lte;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * The `mapAccum` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from left to right, and returning a final value of this\n * accumulator together with the new list.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.scan, R.addIndex, R.mapAccumRight\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [a + b, a + b];\n *\n * R.mapAccum(appender, 0, digits); //=> ['01234', ['01', '012', '0123', '01234']]\n * @symb R.mapAccum(f, a, [b, c, d]) = [\n * f(f(f(a, b)[0], c)[0], d)[0],\n * [\n * f(a, b)[1],\n * f(f(a, b)[0], c)[1],\n * f(f(f(a, b)[0], c)[0], d)[1]\n * ]\n * ]\n */\n\nvar mapAccum = /*#__PURE__*/_curry3(function mapAccum(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var tuple = [acc];\n\n while (idx < len) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx += 1;\n }\n\n return [tuple[0], result];\n});\n\nexport default mapAccum;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * The `mapAccumRight` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from right to left, and returning a final value of this\n * accumulator together with the new list.\n *\n * Similar to [`mapAccum`](#mapAccum), except moves through the input list from\n * the right to the left.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.addIndex, R.mapAccum\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [b + a, b + a];\n *\n * R.mapAccumRight(appender, 5, digits); //=> ['12345', ['12345', '2345', '345', '45']]\n * @symb R.mapAccumRight(f, a, [b, c, d]) = [\n * f(f(f(a, d)[0], c)[0], b)[0],\n * [\n * f(a, d)[1],\n * f(f(a, d)[0], c)[1],\n * f(f(f(a, d)[0], c)[0], b)[1]\n * ]\n * ]\n */\n\nvar mapAccumRight = /*#__PURE__*/_curry3(function mapAccumRight(fn, acc, list) {\n var idx = list.length - 1;\n var result = [];\n var tuple = [acc];\n\n while (idx >= 0) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx -= 1;\n }\n\n return [tuple[0], result];\n});\n\nexport default mapAccumRight;","import _curry2 from \"./internal/_curry2.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport keys from \"./keys.js\";\n/**\n * An Object-specific version of [`map`](#map). The function is applied to three\n * arguments: *(value, key, obj)*. If only the value is significant, use\n * [`map`](#map) instead.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig ((*, String, Object) -> *) -> Object -> Object\n * @param {Function} fn\n * @param {Object} obj\n * @return {Object}\n * @see R.map\n * @example\n *\n * const xyz = { x: 1, y: 2, z: 3 };\n * const prependKeyAndDouble = (num, key, obj) => key + (num * 2);\n *\n * R.mapObjIndexed(prependKeyAndDouble, xyz); //=> { x: 'x2', y: 'y4', z: 'z6' }\n */\n\nvar mapObjIndexed = /*#__PURE__*/_curry2(function mapObjIndexed(fn, obj) {\n return _reduce(function (acc, key) {\n acc[key] = fn(obj[key], key, obj);\n return acc;\n }, {}, keys(obj));\n});\n\nexport default mapObjIndexed;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Tests a regular expression against a String. Note that this function will\n * return an empty array when there are no matches. This differs from\n * [`String.prototype.match`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match)\n * which returns `null` when there are no matches.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig RegExp -> String -> [String | Undefined]\n * @param {RegExp} rx A regular expression.\n * @param {String} str The string to match against\n * @return {Array} The list of matches or empty array.\n * @see R.test\n * @example\n *\n * R.match(/([a-z]a)/g, 'bananas'); //=> ['ba', 'na', 'na']\n * R.match(/a/, 'b'); //=> []\n * R.match(/a/, null); //=> TypeError: null does not have a method named \"match\"\n */\n\nvar match = /*#__PURE__*/_curry2(function match(rx, str) {\n return str.match(rx) || [];\n});\n\nexport default match;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\n/**\n * `mathMod` behaves like the modulo operator should mathematically, unlike the\n * `%` operator (and by extension, [`R.modulo`](#modulo)). So while\n * `-17 % 5` is `-2`, `mathMod(-17, 5)` is `3`. `mathMod` requires Integer\n * arguments, and returns NaN when the modulus is zero or negative.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} m The dividend.\n * @param {Number} p the modulus.\n * @return {Number} The result of `b mod a`.\n * @see R.modulo\n * @example\n *\n * R.mathMod(-17, 5); //=> 3\n * R.mathMod(17, 5); //=> 2\n * R.mathMod(17, -5); //=> NaN\n * R.mathMod(17, 0); //=> NaN\n * R.mathMod(17.2, 5); //=> NaN\n * R.mathMod(17, 5.3); //=> NaN\n *\n * const clock = R.mathMod(R.__, 12);\n * clock(15); //=> 3\n * clock(24); //=> 0\n *\n * const seventeenMod = R.mathMod(17);\n * seventeenMod(3); //=> 2\n * seventeenMod(4); //=> 1\n * seventeenMod(10); //=> 7\n */\n\nvar mathMod = /*#__PURE__*/_curry2(function mathMod(m, p) {\n if (!_isInteger(m)) {\n return NaN;\n }\n\n if (!_isInteger(p) || p < 1) {\n return NaN;\n }\n\n return (m % p + p) % p;\n});\n\nexport default mathMod;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Takes a function and two values, and returns whichever value produces the\n * larger result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.max, R.minBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.maxBy(square, -3, 2); //=> -3\n *\n * R.reduce(R.maxBy(square), 0, [3, -5, 4, 1, -2]); //=> -5\n * R.reduce(R.maxBy(square), 0, []); //=> 0\n */\n\nvar maxBy = /*#__PURE__*/_curry3(function maxBy(f, a, b) {\n return f(b) > f(a) ? b : a;\n});\n\nexport default maxBy;","import add from \"./add.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Adds together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The sum of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.sum([2,4,6,8,100,1]); //=> 121\n */\n\nvar sum = /*#__PURE__*/reduce(add, 0);\nexport default sum;","import _curry1 from \"./internal/_curry1.js\";\nimport sum from \"./sum.js\";\n/**\n * Returns the mean of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.median\n * @example\n *\n * R.mean([2, 7, 9]); //=> 6\n * R.mean([]); //=> NaN\n */\n\nvar mean = /*#__PURE__*/_curry1(function mean(list) {\n return sum(list) / list.length;\n});\n\nexport default mean;","import _curry1 from \"./internal/_curry1.js\";\nimport mean from \"./mean.js\";\n/**\n * Returns the median of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.mean\n * @example\n *\n * R.median([2, 9, 7]); //=> 7\n * R.median([7, 2, 10, 9]); //=> 8\n * R.median([]); //=> NaN\n */\n\nvar median = /*#__PURE__*/_curry1(function median(list) {\n var len = list.length;\n\n if (len === 0) {\n return NaN;\n }\n\n var width = 2 - len % 2;\n var idx = (len - width) / 2;\n return mean(Array.prototype.slice.call(list, 0).sort(function (a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }).slice(idx, idx + width));\n});\n\nexport default median;","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Creates a new function that, when invoked, caches the result of calling `fn`\n * for a given argument set and returns the result. Subsequent calls to the\n * memoized `fn` with the same argument set will not result in an additional\n * call to `fn`; instead, the cached result for that set of arguments will be\n * returned.\n *\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (*... -> String) -> (*... -> a) -> (*... -> a)\n * @param {Function} fn The function to generate the cache key.\n * @param {Function} fn The function to memoize.\n * @return {Function} Memoized version of `fn`.\n * @example\n *\n * let count = 0;\n * const factorial = R.memoizeWith(R.identity, n => {\n * count += 1;\n * return R.product(R.range(1, n + 1));\n * });\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * count; //=> 1\n */\n\nvar memoizeWith = /*#__PURE__*/_curry2(function memoizeWith(mFn, fn) {\n var cache = {};\n return _arity(fn.length, function () {\n var key = mFn.apply(this, arguments);\n\n if (!_has(key, cache)) {\n cache[key] = fn.apply(this, arguments);\n }\n\n return cache[key];\n });\n});\n\nexport default memoizeWith;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @deprecated since v0.26.0\n * @example\n *\n * R.merge({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.merge({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.merge(a, b) = {...a, ...b}\n */\n\nvar merge = /*#__PURE__*/_curry2(function merge(l, r) {\n return _objectAssign({}, l, r);\n});\n\nexport default merge;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Merges a list of objects together into one object.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig [{k: v}] -> {k: v}\n * @param {Array} list An array of objects\n * @return {Object} A merged object.\n * @see R.reduce\n * @example\n *\n * R.mergeAll([{foo:1},{bar:2},{baz:3}]); //=> {foo:1,bar:2,baz:3}\n * R.mergeAll([{foo:1},{foo:2},{bar:2}]); //=> {foo:2,bar:2}\n * @symb R.mergeAll([{ x: 1 }, { y: 2 }, { z: 3 }]) = { x: 1, y: 2, z: 3 }\n */\n\nvar mergeAll = /*#__PURE__*/_curry1(function mergeAll(list) {\n return _objectAssign.apply(null, [{}].concat(list));\n});\n\nexport default mergeAll;","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\n\nvar mergeWithKey = /*#__PURE__*/_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\n\nexport default mergeWithKey;","import _curry3 from \"./internal/_curry3.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport mergeWithKey from \"./mergeWithKey.js\";\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\n\nvar mergeDeepWithKey = /*#__PURE__*/_curry3(function mergeDeepWithKey(fn, lObj, rObj) {\n return mergeWithKey(function (k, lVal, rVal) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\n\nexport default mergeDeepWithKey;","import _curry2 from \"./internal/_curry2.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepRight, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepLeft({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 10, contact: { email: 'moo@example.com' }}\n */\n\nvar mergeDeepLeft = /*#__PURE__*/_curry2(function mergeDeepLeft(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return lVal;\n }, lObj, rObj);\n});\n\nexport default mergeDeepLeft;","import _curry2 from \"./internal/_curry2.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\n\nvar mergeDeepRight = /*#__PURE__*/_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\n\nexport default mergeDeepRight;","import _curry3 from \"./internal/_curry3.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to associated values using the\n * resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepWith(R.concat,\n * { a: true, c: { values: [10, 20] }},\n * { b: true, c: { values: [15, 35] }});\n * //=> { a: true, b: true, c: { values: [10, 20, 15, 35] }}\n */\n\nvar mergeDeepWith = /*#__PURE__*/_curry3(function mergeDeepWith(fn, lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return fn(lVal, rVal);\n }, lObj, rObj);\n});\n\nexport default mergeDeepWith;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepLeft, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeLeft({ 'age': 40 }, { 'name': 'fred', 'age': 10 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const resetToDefault = R.mergeLeft({x: 0});\n * resetToDefault({x: 5, y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeLeft(a, b) = {...b, ...a}\n */\n\nvar mergeLeft = /*#__PURE__*/_curry2(function mergeLeft(l, r) {\n return _objectAssign({}, r, l);\n});\n\nexport default mergeLeft;","import _objectAssign from \"./internal/_objectAssign.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.mergeRight({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeRight(a, b) = {...a, ...b}\n */\n\nvar mergeRight = /*#__PURE__*/_curry2(function mergeRight(l, r) {\n return _objectAssign({}, l, r);\n});\n\nexport default mergeRight;","import _curry3 from \"./internal/_curry3.js\";\nimport mergeWithKey from \"./mergeWithKey.js\";\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the values\n * associated with the key in each object, with the result being used as the\n * value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWith, R.merge, R.mergeWithKey\n * @example\n *\n * R.mergeWith(R.concat,\n * { a: true, values: [10, 20] },\n * { b: true, values: [15, 35] });\n * //=> { a: true, b: true, values: [10, 20, 15, 35] }\n */\n\nvar mergeWith = /*#__PURE__*/_curry3(function mergeWith(fn, l, r) {\n return mergeWithKey(function (_, _l, _r) {\n return fn(_l, _r);\n }, l, r);\n});\n\nexport default mergeWith;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the smaller of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.minBy, R.max\n * @example\n *\n * R.min(789, 123); //=> 123\n * R.min('a', 'b'); //=> 'a'\n */\n\nvar min = /*#__PURE__*/_curry2(function min(a, b) {\n return b < a ? b : a;\n});\n\nexport default min;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Takes a function and two values, and returns whichever value produces the\n * smaller result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.min, R.maxBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.minBy(square, -3, 2); //=> 2\n *\n * R.reduce(R.minBy(square), Infinity, [3, -5, 4, 1, -2]); //=> 1\n * R.reduce(R.minBy(square), Infinity, []); //=> Infinity\n */\n\nvar minBy = /*#__PURE__*/_curry3(function minBy(f, a, b) {\n return f(b) < f(a) ? b : a;\n});\n\nexport default minBy;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Divides the first parameter by the second and returns the remainder. Note\n * that this function preserves the JavaScript-style behavior for modulo. For\n * mathematical modulo see [`mathMod`](#mathMod).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The value to the divide.\n * @param {Number} b The pseudo-modulus\n * @return {Number} The result of `b % a`.\n * @see R.mathMod\n * @example\n *\n * R.modulo(17, 3); //=> 2\n * // JS behavior:\n * R.modulo(-17, 3); //=> -2\n * R.modulo(17, -3); //=> 2\n *\n * const isOdd = R.modulo(R.__, 2);\n * isOdd(42); //=> 0\n * isOdd(21); //=> 1\n */\n\nvar modulo = /*#__PURE__*/_curry2(function modulo(a, b) {\n return a % b;\n});\n\nexport default modulo;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Move an item, at index `from`, to index `to`, in a list of elements.\n * A new list will be created containing the new elements order.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} from The source index\n * @param {Number} to The destination index\n * @param {Array} list The list which will serve to realise the move\n * @return {Array} The new list reordered\n * @example\n *\n * R.move(0, 2, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['b', 'c', 'a', 'd', 'e', 'f']\n * R.move(-1, 0, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['f', 'a', 'b', 'c', 'd', 'e'] list rotation\n */\n\nvar move = /*#__PURE__*/_curry3(function (from, to, list) {\n var length = list.length;\n var result = list.slice();\n var positiveFrom = from < 0 ? length + from : from;\n var positiveTo = to < 0 ? length + to : to;\n var item = result.splice(positiveFrom, 1);\n return positiveFrom < 0 || positiveFrom >= list.length || positiveTo < 0 || positiveTo >= list.length ? list : [].concat(result.slice(0, positiveTo)).concat(item).concat(result.slice(positiveTo, list.length));\n});\n\nexport default move;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Multiplies two numbers. Equivalent to `a * b` but curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a * b`.\n * @see R.divide\n * @example\n *\n * const double = R.multiply(2);\n * const triple = R.multiply(3);\n * double(3); //=> 6\n * triple(4); //=> 12\n * R.multiply(2, 5); //=> 10\n */\n\nvar multiply = /*#__PURE__*/_curry2(function multiply(a, b) {\n return a * b;\n});\n\nexport default multiply;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Negates its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number}\n * @example\n *\n * R.negate(42); //=> -42\n */\n\nvar negate = /*#__PURE__*/_curry1(function negate(n) {\n return -n;\n});\n\nexport default negate;","import _complement from \"./internal/_complement.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport all from \"./all.js\";\n/**\n * Returns `true` if no elements of the list match the predicate, `false`\n * otherwise.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is not satisfied by every element, `false` otherwise.\n * @see R.all, R.any\n * @example\n *\n * const isEven = n => n % 2 === 0;\n * const isOdd = n => n % 2 === 1;\n *\n * R.none(isEven, [1, 3, 5, 7, 9, 11]); //=> true\n * R.none(isOdd, [1, 3, 5, 7, 8, 11]); //=> false\n */\n\nvar none = /*#__PURE__*/_curry2(function none(fn, input) {\n return all(_complement(fn), input);\n});\n\nexport default none;","import _curry1 from \"./internal/_curry1.js\";\nimport curryN from \"./curryN.js\";\nimport nth from \"./nth.js\";\n/**\n * Returns a function which returns its nth argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig Number -> *... -> *\n * @param {Number} n\n * @return {Function}\n * @example\n *\n * R.nthArg(1)('a', 'b', 'c'); //=> 'b'\n * R.nthArg(-1)('a', 'b', 'c'); //=> 'c'\n * @symb R.nthArg(-1)(a, b, c) = c\n * @symb R.nthArg(0)(a, b, c) = a\n * @symb R.nthArg(1)(a, b, c) = b\n */\n\nvar nthArg = /*#__PURE__*/_curry1(function nthArg(n) {\n var arity = n < 0 ? 1 : n + 1;\n return curryN(arity, function () {\n return nth(n, arguments);\n });\n});\n\nexport default nthArg;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * `o` is a curried composition function that returns a unary function.\n * Like [`compose`](#compose), `o` performs right-to-left function composition.\n * Unlike [`compose`](#compose), the rightmost function passed to `o` will be\n * invoked with only one argument. Also, unlike [`compose`](#compose), `o` is\n * limited to accepting only 2 unary functions. The name o was chosen because\n * of its similarity to the mathematical composition operator ∘.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (b -> c) -> (a -> b) -> a -> c\n * @param {Function} f\n * @param {Function} g\n * @return {Function}\n * @see R.compose, R.pipe\n * @example\n *\n * const classyGreeting = name => \"The name's \" + name.last + \", \" + name.first + \" \" + name.last\n * const yellGreeting = R.o(R.toUpper, classyGreeting);\n * yellGreeting({first: 'James', last: 'Bond'}); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.o(R.multiply(10), R.add(10))(-4) //=> 60\n *\n * @symb R.o(f, g, x) = f(g(x))\n */\n\nvar o = /*#__PURE__*/_curry3(function o(f, g, x) {\n return f(g(x));\n});\n\nexport default o;","export default function _of(x) {\n return [x];\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _of from \"./internal/_of.js\";\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\n\nvar of = /*#__PURE__*/_curry1(_of);\n\nexport default of;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\n\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\nexport default omit;","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Accepts a function `fn` and returns a function that guards invocation of\n * `fn` such that `fn` can only ever be called once, no matter how many times\n * the returned function is invoked. The first value calculated is returned in\n * subsequent invocations.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a... -> b) -> (a... -> b)\n * @param {Function} fn The function to wrap in a call-only-once wrapper.\n * @return {Function} The wrapped function.\n * @example\n *\n * const addOneOnce = R.once(x => x + 1);\n * addOneOnce(10); //=> 11\n * addOneOnce(addOneOnce(50)); //=> 11\n */\n\nvar once = /*#__PURE__*/_curry1(function once(fn) {\n var called = false;\n var result;\n return _arity(fn.length, function () {\n if (called) {\n return result;\n }\n\n called = true;\n result = fn.apply(this, arguments);\n return result;\n });\n});\n\nexport default once;","import _isFunction from \"./_isFunction.js\";\nimport _toString from \"./_toString.js\";\nexport default function _assertPromise(name, p) {\n if (p == null || !_isFunction(p.then)) {\n throw new TypeError('`' + name + '` expected a Promise, received ' + _toString(p, []));\n }\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _assertPromise from \"./internal/_assertPromise.js\";\n/**\n * Returns the result of applying the onFailure function to the value inside\n * a failed promise. This is useful for handling rejected promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig (e -> b) -> (Promise e a) -> (Promise e b)\n * @sig (e -> (Promise f b)) -> (Promise e a) -> (Promise f b)\n * @param {Function} onFailure The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(null, onFailure)`\n * @see R.then\n * @example\n *\n * var failedFetch = (id) => Promise.reject('bad ID');\n * var useDefault = () => ({ firstName: 'Bob', lastName: 'Loblaw' })\n *\n * //recoverFromFailure :: String -> Promise ({firstName, lastName})\n * var recoverFromFailure = R.pipe(\n * failedFetch,\n * R.otherwise(useDefault),\n * R.then(R.pick(['firstName', 'lastName'])),\n * );\n * recoverFromFailure(12345).then(console.log)\n */\n\nvar otherwise = /*#__PURE__*/_curry2(function otherwise(f, p) {\n _assertPromise('otherwise', p);\n\n return p.then(null, f);\n});\n\nexport default otherwise;","import _curry3 from \"./internal/_curry3.js\"; // `Identity` is a functor that holds a single value, where `map` simply\n// transforms the held value with the provided function.\n\nvar Identity = function Identity(x) {\n return {\n value: x,\n map: function map(f) {\n return Identity(f(x));\n }\n };\n};\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the result of applying the given function to\n * the focused value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> (a -> a) -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.over(headLens, R.toUpper, ['foo', 'bar', 'baz']); //=> ['FOO', 'bar', 'baz']\n */\n\n\nvar over = /*#__PURE__*/_curry3(function over(lens, f, x) {\n // The value returned by the getter function is first transformed with `f`,\n // then set as the value of an `Identity`. This is then mapped over with the\n // setter function of the lens.\n return lens(function (y) {\n return Identity(f(y));\n })(x).value;\n});\n\nexport default over;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes two arguments, `fst` and `snd`, and returns `[fst, snd]`.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category List\n * @sig a -> b -> (a,b)\n * @param {*} fst\n * @param {*} snd\n * @return {Array}\n * @see R.objOf, R.of\n * @example\n *\n * R.pair('foo', 'bar'); //=> ['foo', 'bar']\n */\n\nvar pair = /*#__PURE__*/_curry2(function pair(fst, snd) {\n return [fst, snd];\n});\n\nexport default pair;","import _arity from \"./_arity.js\";\nimport _curry2 from \"./_curry2.js\";\nexport default function _createPartialApplicator(concat) {\n return _curry2(function (fn, args) {\n return _arity(Math.max(0, fn.length - args.length), function () {\n return fn.apply(this, concat(args, arguments));\n });\n });\n}","import _concat from \"./internal/_concat.js\";\nimport _createPartialApplicator from \"./internal/_createPartialApplicator.js\";\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided initially followed by the arguments provided to `g`.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [a, b, c, ...] -> ((d, e, f, ..., n) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partialRight, R.curry\n * @example\n *\n * const multiply2 = (a, b) => a * b;\n * const double = R.partial(multiply2, [2]);\n * double(2); //=> 4\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const sayHello = R.partial(greet, ['Hello']);\n * const sayHelloToMs = R.partial(sayHello, ['Ms.']);\n * sayHelloToMs('Jane', 'Jones'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partial(f, [a, b])(c, d) = f(a, b, c, d)\n */\n\nvar partial = /*#__PURE__*/_createPartialApplicator(_concat);\n\nexport default partial;","import _concat from \"./internal/_concat.js\";\nimport _createPartialApplicator from \"./internal/_createPartialApplicator.js\";\nimport flip from \"./flip.js\";\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided to `g` followed by the arguments provided initially.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [d, e, f, ..., n] -> ((a, b, c, ...) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partial\n * @example\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const greetMsJaneJones = R.partialRight(greet, ['Ms.', 'Jane', 'Jones']);\n *\n * greetMsJaneJones('Hello'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partialRight(f, [a, b])(c, d) = f(c, d, a, b)\n */\n\nvar partialRight = /*#__PURE__*/_createPartialApplicator( /*#__PURE__*/flip(_concat));\n\nexport default partialRight;","import filter from \"./filter.js\";\nimport juxt from \"./juxt.js\";\nimport reject from \"./reject.js\";\n/**\n * Takes a predicate and a list or other `Filterable` object and returns the\n * pair of filterable objects of the same type of elements which do and do not\n * satisfy, the predicate, respectively. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> [f a, f a]\n * @param {Function} pred A predicate to determine which side the element belongs to.\n * @param {Array} filterable the list (or other filterable) to partition.\n * @return {Array} An array, containing first the subset of elements that satisfy the\n * predicate, and second the subset of elements that do not satisfy.\n * @see R.filter, R.reject\n * @example\n *\n * R.partition(R.includes('s'), ['sss', 'ttt', 'foo', 'bars']);\n * // => [ [ 'sss', 'bars' ], [ 'ttt', 'foo' ] ]\n *\n * R.partition(R.includes('s'), { a: 'sss', b: 'ttt', foo: 'bars' });\n * // => [ { a: 'sss', foo: 'bars' }, { b: 'ttt' } ]\n */\n\nvar partition = /*#__PURE__*/juxt([filter, reject]);\nexport default partition;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\nimport path from \"./path.js\";\n/**\n * Determines whether a nested path on an object has a specific value, in\n * [`R.equals`](#equals) terms. Most likely used to filter a list.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Relation\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> Boolean\n * @param {Array} path The path of the nested property to use\n * @param {*} val The value to compare the nested property with\n * @param {Object} obj The object to check the nested property in\n * @return {Boolean} `true` if the value equals the nested object property,\n * `false` otherwise.\n * @example\n *\n * const user1 = { address: { zipCode: 90210 } };\n * const user2 = { address: { zipCode: 55555 } };\n * const user3 = { name: 'Bob' };\n * const users = [ user1, user2, user3 ];\n * const isFamous = R.pathEq(['address', 'zipCode'], 90210);\n * R.filter(isFamous, users); //=> [ user1 ]\n */\n\nvar pathEq = /*#__PURE__*/_curry3(function pathEq(_path, val, obj) {\n return equals(path(_path, obj), val);\n});\n\nexport default pathEq;","import _curry3 from \"./internal/_curry3.js\";\nimport defaultTo from \"./defaultTo.js\";\nimport path from \"./path.js\";\n/**\n * If the given, non-null object has a value at the given path, returns the\n * value at that path. Otherwise returns the provided default value.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig a -> [Idx] -> {a} -> a\n * @param {*} d The default value.\n * @param {Array} p The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path` of the supplied object or the default value.\n * @example\n *\n * R.pathOr('N/A', ['a', 'b'], {a: {b: 2}}); //=> 2\n * R.pathOr('N/A', ['a', 'b'], {c: {b: 2}}); //=> \"N/A\"\n */\n\nvar pathOr = /*#__PURE__*/_curry3(function pathOr(d, p, obj) {\n return defaultTo(d, path(p, obj));\n});\n\nexport default pathOr;","import _curry3 from \"./internal/_curry3.js\";\nimport path from \"./path.js\";\n/**\n * Returns `true` if the specified object property at given path satisfies the\n * given predicate; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Logic\n * @typedefn Idx = String | Int\n * @sig (a -> Boolean) -> [Idx] -> {a} -> Boolean\n * @param {Function} pred\n * @param {Array} propPath\n * @param {*} obj\n * @return {Boolean}\n * @see R.propSatisfies, R.path\n * @example\n *\n * R.pathSatisfies(y => y > 0, ['x', 'y'], {x: {y: 2}}); //=> true\n * R.pathSatisfies(R.is(Object), [], {x: {y: 2}}); //=> true\n */\n\nvar pathSatisfies = /*#__PURE__*/_curry3(function pathSatisfies(pred, propPath, obj) {\n return pred(path(propPath, obj));\n});\n\nexport default pathSatisfies;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object containing only the keys specified. If\n * the key does not exist, the property is ignored.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.omit, R.props\n * @example\n *\n * R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}\n */\n\nvar pick = /*#__PURE__*/_curry2(function pick(names, obj) {\n var result = {};\n var idx = 0;\n\n while (idx < names.length) {\n if (names[idx] in obj) {\n result[names[idx]] = obj[names[idx]];\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default pick;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Similar to `pick` except that this one includes a `key: undefined` pair for\n * properties that don't exist.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.pick\n * @example\n *\n * R.pickAll(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pickAll(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, e: undefined, f: undefined}\n */\n\nvar pickAll = /*#__PURE__*/_curry2(function pickAll(names, obj) {\n var result = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n var name = names[idx];\n result[name] = obj[name];\n idx += 1;\n }\n\n return result;\n});\n\nexport default pickAll;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a partial copy of an object containing only the keys that satisfy\n * the supplied predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig ((v, k) -> Boolean) -> {k: v} -> {k: v}\n * @param {Function} pred A predicate to determine whether or not a key\n * should be included on the output object.\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties that satisfy `pred`\n * on it.\n * @see R.pick, R.filter\n * @example\n *\n * const isUpperCase = (val, key) => key.toUpperCase() === key;\n * R.pickBy(isUpperCase, {a: 1, b: 2, A: 3, B: 4}); //=> {A: 3, B: 4}\n */\n\nvar pickBy = /*#__PURE__*/_curry2(function pickBy(test, obj) {\n var result = {};\n\n for (var prop in obj) {\n if (test(obj[prop], prop, obj)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\nexport default pickBy;","import composeK from \"./composeK.js\";\nimport reverse from \"./reverse.js\";\n/**\n * Returns the left-to-right Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.pipeK(f, g, h)` is equivalent to `R.pipe(f, R.chain(g), R.chain(h))`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((a -> m b), (b -> m c), ..., (y -> m z)) -> (a -> m z)\n * @param {...Function}\n * @return {Function}\n * @see R.composeK\n * @deprecated since v0.26.0\n * @example\n *\n * // parseJson :: String -> Maybe *\n * // get :: String -> Object -> Maybe *\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.pipeK(\n * parseJson,\n * get('user'),\n * get('address'),\n * get('state'),\n * R.compose(Maybe.of, R.toUpper)\n * );\n *\n * getStateCode('{\"user\":{\"address\":{\"state\":\"ny\"}}}');\n * //=> Just('NY')\n * getStateCode('[Invalid JSON]');\n * //=> Nothing()\n * @symb R.pipeK(f, g, h)(a) = R.chain(h, R.chain(g, f(a)))\n */\n\nexport default function pipeK() {\n if (arguments.length === 0) {\n throw new Error('pipeK requires at least one argument');\n }\n\n return composeK.apply(this, reverse(arguments));\n}","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list with the given element at the front, followed by the\n * contents of the list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The item to add to the head of the output list.\n * @param {Array} list The array to add to the tail of the output list.\n * @return {Array} A new array.\n * @see R.append\n * @example\n *\n * R.prepend('fee', ['fi', 'fo', 'fum']); //=> ['fee', 'fi', 'fo', 'fum']\n */\n\nvar prepend = /*#__PURE__*/_curry2(function prepend(el, list) {\n return _concat([el], list);\n});\n\nexport default prepend;","import multiply from \"./multiply.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Multiplies together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The product of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.product([2,4,6,8,100,1]); //=> 38400\n */\n\nvar product = /*#__PURE__*/reduce(multiply, 1);\nexport default product;","import _curry2 from \"./internal/_curry2.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Accepts a function `fn` and a list of transformer functions and returns a\n * new curried function. When the new function is invoked, it calls the\n * function `fn` with parameters consisting of the result of calling each\n * supplied handler on successive arguments to the new function.\n *\n * If more arguments are passed to the returned function than transformer\n * functions, those arguments are passed directly to `fn` as additional\n * parameters. If you expect additional arguments that don't need to be\n * transformed, although you can ignore them, it's best to pass an identity\n * function so that the new function reports the correct arity.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [(a -> x1), (b -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} fn The function to wrap.\n * @param {Array} transformers A list of transformer functions\n * @return {Function} The wrapped function.\n * @see R.converge\n * @example\n *\n * R.useWith(Math.pow, [R.identity, R.identity])(3, 4); //=> 81\n * R.useWith(Math.pow, [R.identity, R.identity])(3)(4); //=> 81\n * R.useWith(Math.pow, [R.dec, R.inc])(3, 4); //=> 32\n * R.useWith(Math.pow, [R.dec, R.inc])(3)(4); //=> 32\n * @symb R.useWith(f, [g, h])(a, b) = f(g(a), h(b))\n */\n\nvar useWith = /*#__PURE__*/_curry2(function useWith(fn, transformers) {\n return curryN(transformers.length, function () {\n var args = [];\n var idx = 0;\n\n while (idx < transformers.length) {\n args.push(transformers[idx].call(this, arguments[idx]));\n idx += 1;\n }\n\n return fn.apply(this, args.concat(Array.prototype.slice.call(arguments, transformers.length)));\n });\n});\n\nexport default useWith;","import _map from \"./internal/_map.js\";\nimport identity from \"./identity.js\";\nimport pickAll from \"./pickAll.js\";\nimport useWith from \"./useWith.js\";\n/**\n * Reasonable analog to SQL `select` statement.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @category Relation\n * @sig [k] -> [{k: v}] -> [{k: v}]\n * @param {Array} props The property names to project\n * @param {Array} objs The objects to query\n * @return {Array} An array of objects with just the `props` properties.\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond', grade: 2};\n * const fred = {name: 'Fred', age: 12, hair: 'brown', grade: 7};\n * const kids = [abby, fred];\n * R.project(['name', 'grade'], kids); //=> [{name: 'Abby', grade: 2}, {name: 'Fred', grade: 7}]\n */\n\nvar project = /*#__PURE__*/useWith(_map, [pickAll, identity]); // passing `identity` gives correct arity\n\nexport default project;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns `true` if the specified object property is equal, in\n * [`R.equals`](#equals) terms, to the given value; `false` otherwise.\n * You can test multiple properties with [`R.whereEq`](#whereEq).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.whereEq, R.propSatisfies, R.equals\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond'};\n * const fred = {name: 'Fred', age: 12, hair: 'brown'};\n * const rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * const alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * const kids = [abby, fred, rusty, alois];\n * const hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\n\nvar propEq = /*#__PURE__*/_curry3(function propEq(name, val, obj) {\n return equals(val, obj[name]);\n});\n\nexport default propEq;","import _curry3 from \"./internal/_curry3.js\";\nimport is from \"./is.js\";\n/**\n * Returns `true` if the specified object property is of the given type;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Type\n * @sig Type -> String -> Object -> Boolean\n * @param {Function} type\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.is, R.propSatisfies\n * @example\n *\n * R.propIs(Number, 'x', {x: 1, y: 2}); //=> true\n * R.propIs(Number, 'x', {x: 'foo'}); //=> false\n * R.propIs(Number, 'x', {}); //=> false\n */\n\nvar propIs = /*#__PURE__*/_curry3(function propIs(type, name, obj) {\n return is(type, obj[name]);\n});\n\nexport default propIs;","import _curry3 from \"./internal/_curry3.js\";\nimport pathOr from \"./pathOr.js\";\n/**\n * If the given, non-null object has an own property with the specified name,\n * returns the value of that property. Otherwise returns the provided default\n * value.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Object\n * @sig a -> String -> Object -> a\n * @param {*} val The default value.\n * @param {String} p The name of the property to return.\n * @param {Object} obj The object to query.\n * @return {*} The value of given property of the supplied object or the default value.\n * @example\n *\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const favorite = R.prop('favoriteLibrary');\n * const favoriteWithDefault = R.propOr('Ramda', 'favoriteLibrary');\n *\n * favorite(alice); //=> undefined\n * favoriteWithDefault(alice); //=> 'Ramda'\n */\n\nvar propOr = /*#__PURE__*/_curry3(function propOr(val, p, obj) {\n return pathOr(val, [p], obj);\n});\n\nexport default propOr;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns `true` if the specified object property satisfies the given\n * predicate; `false` otherwise. You can test multiple properties with\n * [`R.where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Logic\n * @sig (a -> Boolean) -> String -> {String: a} -> Boolean\n * @param {Function} pred\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.where, R.propEq, R.propIs\n * @example\n *\n * R.propSatisfies(x => x > 0, 'x', {x: 1, y: 2}); //=> true\n */\n\nvar propSatisfies = /*#__PURE__*/_curry3(function propSatisfies(pred, name, obj) {\n return pred(obj[name]);\n});\n\nexport default propSatisfies;","import _curry2 from \"./internal/_curry2.js\";\nimport path from \"./path.js\";\n/**\n * Acts as multiple `prop`: array of keys in, array of values out. Preserves\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> [v]\n * @param {Array} ps The property names to fetch\n * @param {Object} obj The object to query\n * @return {Array} The corresponding values or partially applied function.\n * @example\n *\n * R.props(['x', 'y'], {x: 1, y: 2}); //=> [1, 2]\n * R.props(['c', 'a', 'b'], {b: 2, a: 1}); //=> [undefined, 1, 2]\n *\n * const fullName = R.compose(R.join(' '), R.props(['first', 'last']));\n * fullName({last: 'Bullet-Tooth', age: 33, first: 'Tony'}); //=> 'Tony Bullet-Tooth'\n */\n\nvar props = /*#__PURE__*/_curry2(function props(ps, obj) {\n return ps.map(function (p) {\n return path([p], obj);\n });\n});\n\nexport default props;","import _curry2 from \"./internal/_curry2.js\";\nimport _isNumber from \"./internal/_isNumber.js\";\n/**\n * Returns a list of numbers from `from` (inclusive) to `to` (exclusive).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> Number -> [Number]\n * @param {Number} from The first number in the list.\n * @param {Number} to One more than the last number in the list.\n * @return {Array} The list of numbers in the set `[a, b)`.\n * @example\n *\n * R.range(1, 5); //=> [1, 2, 3, 4]\n * R.range(50, 53); //=> [50, 51, 52]\n */\n\nvar range = /*#__PURE__*/_curry2(function range(from, to) {\n if (!(_isNumber(from) && _isNumber(to))) {\n throw new TypeError('Both arguments to range must be numbers');\n }\n\n var result = [];\n var n = from;\n\n while (n < to) {\n result.push(n);\n n += 1;\n }\n\n return result;\n});\n\nexport default range;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * Similar to [`reduce`](#reduce), except moves through the input list from the\n * right to the left.\n *\n * The iterator function receives two values: *(value, acc)*, while the arguments'\n * order of `reduce`'s iterator function is *(acc, value)*.\n *\n * Note: `R.reduceRight` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduceRight` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight#Description\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> b) -> b -> [a] -> b\n * @param {Function} fn The iterator function. Receives two values, the current element from the array\n * and the accumulator.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.addIndex\n * @example\n *\n * R.reduceRight(R.subtract, 0, [1, 2, 3, 4]) // => (1 - (2 - (3 - (4 - 0)))) = -2\n * // - -2\n * // / \\ / \\\n * // 1 - 1 3\n * // / \\ / \\\n * // 2 - ==> 2 -1\n * // / \\ / \\\n * // 3 - 3 4\n * // / \\ / \\\n * // 4 0 4 0\n *\n * @symb R.reduceRight(f, a, [b, c, d]) = f(b, f(c, f(d, a)))\n */\n\nvar reduceRight = /*#__PURE__*/_curry3(function reduceRight(fn, acc, list) {\n var idx = list.length - 1;\n\n while (idx >= 0) {\n acc = fn(list[idx], acc);\n idx -= 1;\n }\n\n return acc;\n});\n\nexport default reduceRight;","import _curryN from \"./internal/_curryN.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _reduced from \"./internal/_reduced.js\";\n/**\n * Like [`reduce`](#reduce), `reduceWhile` returns a single item by iterating\n * through the list, successively calling the iterator function. `reduceWhile`\n * also takes a predicate that is evaluated before each step. If the predicate\n * returns `false`, it \"short-circuits\" the iteration and returns the current\n * value of the accumulator.\n *\n * @func\n * @memberOf R\n * @since v0.22.0\n * @category List\n * @sig ((a, b) -> Boolean) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} pred The predicate. It is passed the accumulator and the\n * current element.\n * @param {Function} fn The iterator function. Receives two values, the\n * accumulator and the current element.\n * @param {*} a The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced\n * @example\n *\n * const isOdd = (acc, x) => x % 2 === 1;\n * const xs = [1, 3, 5, 60, 777, 800];\n * R.reduceWhile(isOdd, R.add, 0, xs); //=> 9\n *\n * const ys = [2, 4, 6]\n * R.reduceWhile(isOdd, R.add, 111, ys); //=> 111\n */\n\nvar reduceWhile = /*#__PURE__*/_curryN(4, [], function _reduceWhile(pred, fn, a, list) {\n return _reduce(function (acc, x) {\n return pred(acc, x) ? fn(acc, x) : _reduced(acc);\n }, a, list);\n});\n\nexport default reduceWhile;","import _curry1 from \"./internal/_curry1.js\";\nimport _reduced from \"./internal/_reduced.js\";\n/**\n * Returns a value wrapped to indicate that it is the final value of the reduce\n * and transduce functions. The returned value should be considered a black\n * box: the internal structure is not guaranteed to be stable.\n *\n * Note: this optimization is only available to the below functions:\n * - [`reduce`](#reduce)\n * - [`reduceWhile`](#reduceWhile)\n * - [`transduce`](#transduce)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category List\n * @sig a -> *\n * @param {*} x The final value of the reduce.\n * @return {*} The wrapped value.\n * @see R.reduce, R.reduceWhile, R.transduce\n * @example\n *\n * R.reduce(\n * (acc, item) => item > 3 ? R.reduced(acc) : acc.concat(item),\n * [],\n * [1, 2, 3, 4, 5]) // [1, 2, 3]\n */\n\nvar reduced = /*#__PURE__*/_curry1(_reduced);\n\nexport default reduced;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Calls an input function `n` times, returning an array containing the results\n * of those function calls.\n *\n * `fn` is passed one argument: The current value of `n`, which begins at `0`\n * and is gradually incremented to `n - 1`.\n *\n * @func\n * @memberOf R\n * @since v0.2.3\n * @category List\n * @sig (Number -> a) -> Number -> [a]\n * @param {Function} fn The function to invoke. Passed one argument, the current value of `n`.\n * @param {Number} n A value between `0` and `n - 1`. Increments after each function call.\n * @return {Array} An array containing the return values of all calls to `fn`.\n * @see R.repeat\n * @example\n *\n * R.times(R.identity, 5); //=> [0, 1, 2, 3, 4]\n * @symb R.times(f, 0) = []\n * @symb R.times(f, 1) = [f(0)]\n * @symb R.times(f, 2) = [f(0), f(1)]\n */\n\nvar times = /*#__PURE__*/_curry2(function times(fn, n) {\n var len = Number(n);\n var idx = 0;\n var list;\n\n if (len < 0 || isNaN(len)) {\n throw new RangeError('n must be a non-negative number');\n }\n\n list = new Array(len);\n\n while (idx < len) {\n list[idx] = fn(idx);\n idx += 1;\n }\n\n return list;\n});\n\nexport default times;","import _curry2 from \"./internal/_curry2.js\";\nimport always from \"./always.js\";\nimport times from \"./times.js\";\n/**\n * Returns a fixed list of size `n` containing a specified identical value.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig a -> n -> [a]\n * @param {*} value The value to repeat.\n * @param {Number} n The desired size of the output list.\n * @return {Array} A new array containing `n` `value`s.\n * @see R.times\n * @example\n *\n * R.repeat('hi', 5); //=> ['hi', 'hi', 'hi', 'hi', 'hi']\n *\n * const obj = {};\n * const repeatedObjs = R.repeat(obj, 5); //=> [{}, {}, {}, {}, {}]\n * repeatedObjs[0] === repeatedObjs[1]; //=> true\n * @symb R.repeat(a, 0) = []\n * @symb R.repeat(a, 1) = [a]\n * @symb R.repeat(a, 2) = [a, a]\n */\n\nvar repeat = /*#__PURE__*/_curry2(function repeat(value, n) {\n return times(always(value), n);\n});\n\nexport default repeat;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Replace a substring or regex match in a string with a replacement.\n *\n * The first two parameters correspond to the parameters of the\n * `String.prototype.replace()` function, so the second parameter can also be a\n * function.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category String\n * @sig RegExp|String -> String -> String -> String\n * @param {RegExp|String} pattern A regular expression or a substring to match.\n * @param {String} replacement The string to replace the matches with.\n * @param {String} str The String to do the search and replacement in.\n * @return {String} The result.\n * @example\n *\n * R.replace('foo', 'bar', 'foo foo foo'); //=> 'bar foo foo'\n * R.replace(/foo/, 'bar', 'foo foo foo'); //=> 'bar foo foo'\n *\n * // Use the \"g\" (global) flag to replace all occurrences:\n * R.replace(/foo/g, 'bar', 'foo foo foo'); //=> 'bar bar bar'\n */\n\nvar replace = /*#__PURE__*/_curry3(function replace(regex, replacement, str) {\n return str.replace(regex, replacement);\n});\n\nexport default replace;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Scan is similar to [`reduce`](#reduce), but returns a list of successively\n * reduced values from the left\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> [a]\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {Array} A list of all intermediately reduced values.\n * @see R.reduce, R.mapAccum\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const factorials = R.scan(R.multiply, 1, numbers); //=> [1, 1, 2, 6, 24]\n * @symb R.scan(f, a, [b, c]) = [a, f(a, b), f(f(a, b), c)]\n */\n\nvar scan = /*#__PURE__*/_curry3(function scan(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [acc];\n\n while (idx < len) {\n acc = fn(acc, list[idx]);\n result[idx + 1] = acc;\n idx += 1;\n }\n\n return result;\n});\n\nexport default scan;","import _curry2 from \"./internal/_curry2.js\";\nimport ap from \"./ap.js\";\nimport map from \"./map.js\";\nimport prepend from \"./prepend.js\";\nimport reduceRight from \"./reduceRight.js\";\n/**\n * Transforms a [Traversable](https://github.com/fantasyland/fantasy-land#traversable)\n * of [Applicative](https://github.com/fantasyland/fantasy-land#applicative) into an\n * Applicative of Traversable.\n *\n * Dispatches to the `sequence` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> t (f a) -> f (t a)\n * @param {Function} of\n * @param {*} traversable\n * @return {*}\n * @see R.traverse\n * @example\n *\n * R.sequence(Maybe.of, [Just(1), Just(2), Just(3)]); //=> Just([1, 2, 3])\n * R.sequence(Maybe.of, [Just(1), Just(2), Nothing()]); //=> Nothing()\n *\n * R.sequence(R.of, Just([1, 2, 3])); //=> [Just(1), Just(2), Just(3)]\n * R.sequence(R.of, Nothing()); //=> [Nothing()]\n */\n\nvar sequence = /*#__PURE__*/_curry2(function sequence(of, traversable) {\n return typeof traversable.sequence === 'function' ? traversable.sequence(of) : reduceRight(function (x, acc) {\n return ap(map(prepend, x), acc);\n }, of([]), traversable);\n});\n\nexport default sequence;","import _curry3 from \"./internal/_curry3.js\";\nimport always from \"./always.js\";\nimport over from \"./over.js\";\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the given value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> a -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.set(xLens, 8, {x: 1, y: 2}); //=> {x: 8, y: 2}\n */\n\nvar set = /*#__PURE__*/_curry3(function set(lens, v, x) {\n return over(lens, always(v), x);\n});\n\nexport default set;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a copy of the list, sorted according to the comparator function,\n * which should accept two values at a time and return a negative number if the\n * first value is smaller, a positive number if it's larger, and zero if they\n * are equal. Please note that this is a **copy** of the list. It does not\n * modify the original.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, a) -> Number) -> [a] -> [a]\n * @param {Function} comparator A sorting function :: a -> b -> Int\n * @param {Array} list The list to sort\n * @return {Array} a new array with its elements sorted by the comparator function.\n * @example\n *\n * const diff = function(a, b) { return a - b; };\n * R.sort(diff, [4,2,7,5]); //=> [2, 4, 5, 7]\n */\n\nvar sort = /*#__PURE__*/_curry2(function sort(comparator, list) {\n return Array.prototype.slice.call(list, 0).sort(comparator);\n});\n\nexport default sort;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Sorts the list according to the supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord b => (a -> b) -> [a] -> [a]\n * @param {Function} fn\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted by the keys generated by `fn`.\n * @example\n *\n * const sortByFirstItem = R.sortBy(R.prop(0));\n * const pairs = [[-1, 1], [-2, 2], [-3, 3]];\n * sortByFirstItem(pairs); //=> [[-3, 3], [-2, 2], [-1, 1]]\n *\n * const sortByNameCaseInsensitive = R.sortBy(R.compose(R.toLower, R.prop('name')));\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const bob = {\n * name: 'Bob',\n * age: -10\n * };\n * const clara = {\n * name: 'clara',\n * age: 314.159\n * };\n * const people = [clara, bob, alice];\n * sortByNameCaseInsensitive(people); //=> [alice, bob, clara]\n */\n\nvar sortBy = /*#__PURE__*/_curry2(function sortBy(fn, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n });\n});\n\nexport default sortBy;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Sorts a list according to a list of comparators.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Relation\n * @sig [(a, a) -> Number] -> [a] -> [a]\n * @param {Array} functions A list of comparator functions.\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted according to the comarator functions.\n * @example\n *\n * const alice = {\n * name: 'alice',\n * age: 40\n * };\n * const bob = {\n * name: 'bob',\n * age: 30\n * };\n * const clara = {\n * name: 'clara',\n * age: 40\n * };\n * const people = [clara, bob, alice];\n * const ageNameSort = R.sortWith([\n * R.descend(R.prop('age')),\n * R.ascend(R.prop('name'))\n * ]);\n * ageNameSort(people); //=> [alice, clara, bob]\n */\n\nvar sortWith = /*#__PURE__*/_curry2(function sortWith(fns, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var result = 0;\n var i = 0;\n\n while (result === 0 && i < fns.length) {\n result = fns[i](a, b);\n i += 1;\n }\n\n return result;\n });\n});\n\nexport default sortWith;","import invoker from \"./invoker.js\";\n/**\n * Splits a string into an array of strings based on the given\n * separator.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig (String | RegExp) -> String -> [String]\n * @param {String|RegExp} sep The pattern.\n * @param {String} str The string to separate into an array.\n * @return {Array} The array of strings from `str` separated by `sep`.\n * @see R.join\n * @example\n *\n * const pathComponents = R.split('/');\n * R.tail(pathComponents('/usr/local/bin/node')); //=> ['usr', 'local', 'bin', 'node']\n *\n * R.split('.', 'a.b.c.xyz.d'); //=> ['a', 'b', 'c', 'xyz', 'd']\n */\n\nvar split = /*#__PURE__*/invoker(1, 'split');\nexport default split;","import _curry2 from \"./internal/_curry2.js\";\nimport length from \"./length.js\";\nimport slice from \"./slice.js\";\n/**\n * Splits a given list or string at a given index.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig Number -> [a] -> [[a], [a]]\n * @sig Number -> String -> [String, String]\n * @param {Number} index The index where the array/string is split.\n * @param {Array|String} array The array/string to be split.\n * @return {Array}\n * @example\n *\n * R.splitAt(1, [1, 2, 3]); //=> [[1], [2, 3]]\n * R.splitAt(5, 'hello world'); //=> ['hello', ' world']\n * R.splitAt(-1, 'foobar'); //=> ['fooba', 'r']\n */\n\nvar splitAt = /*#__PURE__*/_curry2(function splitAt(index, array) {\n return [slice(0, index, array), slice(index, length(array), array)];\n});\n\nexport default splitAt;","import _curry2 from \"./internal/_curry2.js\";\nimport slice from \"./slice.js\";\n/**\n * Splits a collection into slices of the specified length.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @sig Number -> String -> [String]\n * @param {Number} n\n * @param {Array} list\n * @return {Array}\n * @example\n *\n * R.splitEvery(3, [1, 2, 3, 4, 5, 6, 7]); //=> [[1, 2, 3], [4, 5, 6], [7]]\n * R.splitEvery(3, 'foobarbaz'); //=> ['foo', 'bar', 'baz']\n */\n\nvar splitEvery = /*#__PURE__*/_curry2(function splitEvery(n, list) {\n if (n <= 0) {\n throw new Error('First argument to splitEvery must be a positive integer');\n }\n\n var result = [];\n var idx = 0;\n\n while (idx < list.length) {\n result.push(slice(idx, idx += n, list));\n }\n\n return result;\n});\n\nexport default splitEvery;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Takes a list and a predicate and returns a pair of lists with the following properties:\n *\n * - the result of concatenating the two output lists is equivalent to the input list;\n * - none of the elements of the first output list satisfies the predicate; and\n * - if the second output list is non-empty, its first element satisfies the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [[a], [a]]\n * @param {Function} pred The predicate that determines where the array is split.\n * @param {Array} list The array to be split.\n * @return {Array}\n * @example\n *\n * R.splitWhen(R.equals(2), [1, 2, 3, 1, 2, 3]); //=> [[1], [2, 3, 1, 2, 3]]\n */\n\nvar splitWhen = /*#__PURE__*/_curry2(function splitWhen(pred, list) {\n var idx = 0;\n var len = list.length;\n var prefix = [];\n\n while (idx < len && !pred(list[idx])) {\n prefix.push(list[idx]);\n idx += 1;\n }\n\n return [prefix, Array.prototype.slice.call(list, idx)];\n});\n\nexport default splitWhen;","import _curry2 from \"./internal/_curry2.js\";\nimport equals from \"./equals.js\";\nimport take from \"./take.js\";\n/**\n * Checks if a list starts with the provided sublist.\n *\n * Similarly, checks if a string starts with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} prefix\n * @param {*} list\n * @return {Boolean}\n * @see R.endsWith\n * @example\n *\n * R.startsWith('a', 'abc') //=> true\n * R.startsWith('b', 'abc') //=> false\n * R.startsWith(['a'], ['a', 'b', 'c']) //=> true\n * R.startsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\nvar startsWith = /*#__PURE__*/_curry2(function (prefix, list) {\n return equals(take(prefix.length, list), prefix);\n});\n\nexport default startsWith;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Subtracts its second argument from its first argument.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a - b`.\n * @see R.add\n * @example\n *\n * R.subtract(10, 8); //=> 2\n *\n * const minus5 = R.subtract(R.__, 5);\n * minus5(17); //=> 12\n *\n * const complementaryAngle = R.subtract(90);\n * complementaryAngle(30); //=> 60\n * complementaryAngle(72); //=> 18\n */\n\nvar subtract = /*#__PURE__*/_curry2(function subtract(a, b) {\n return Number(a) - Number(b);\n});\n\nexport default subtract;","import _curry2 from \"./internal/_curry2.js\";\nimport concat from \"./concat.js\";\nimport difference from \"./difference.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifferenceWith, R.difference, R.differenceWith\n * @example\n *\n * R.symmetricDifference([1,2,3,4], [7,6,5,4,3]); //=> [1,2,7,6,5]\n * R.symmetricDifference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5,1,2]\n */\n\nvar symmetricDifference = /*#__PURE__*/_curry2(function symmetricDifference(list1, list2) {\n return concat(difference(list1, list2), difference(list2, list1));\n});\n\nexport default symmetricDifference;","import _curry3 from \"./internal/_curry3.js\";\nimport concat from \"./concat.js\";\nimport differenceWith from \"./differenceWith.js\";\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both. Duplication is determined according to the value\n * returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifference, R.difference, R.differenceWith\n * @example\n *\n * const eqA = R.eqBy(R.prop('a'));\n * const l1 = [{a: 1}, {a: 2}, {a: 3}, {a: 4}];\n * const l2 = [{a: 3}, {a: 4}, {a: 5}, {a: 6}];\n * R.symmetricDifferenceWith(eqA, l1, l2); //=> [{a: 1}, {a: 2}, {a: 5}, {a: 6}]\n */\n\nvar symmetricDifferenceWith = /*#__PURE__*/_curry3(function symmetricDifferenceWith(pred, list1, list2) {\n return concat(differenceWith(pred, list1, list2), differenceWith(pred, list2, list1));\n});\n\nexport default symmetricDifferenceWith;","import _curry2 from \"./internal/_curry2.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns a new list containing the last `n` elements of a given list, passing\n * each value to the supplied predicate function, and terminating when the\n * predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropLastWhile, R.addIndex\n * @example\n *\n * const isNotOne = x => x !== 1;\n *\n * R.takeLastWhile(isNotOne, [1, 2, 3, 4]); //=> [2, 3, 4]\n *\n * R.takeLastWhile(x => x !== 'R' , 'Ramda'); //=> 'amda'\n */\n\nvar takeLastWhile = /*#__PURE__*/_curry2(function takeLastWhile(fn, xs) {\n var idx = xs.length - 1;\n\n while (idx >= 0 && fn(xs[idx])) {\n idx -= 1;\n }\n\n return slice(idx + 1, Infinity, xs);\n});\n\nexport default takeLastWhile;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XTakeWhile = /*#__PURE__*/function () {\n function XTakeWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XTakeWhile.prototype['@@transducer/init'] = _xfBase.init;\n XTakeWhile.prototype['@@transducer/result'] = _xfBase.result;\n\n XTakeWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : _reduced(result);\n };\n\n return XTakeWhile;\n}();\n\nvar _xtakeWhile = /*#__PURE__*/_curry2(function _xtakeWhile(f, xf) {\n return new XTakeWhile(f, xf);\n});\n\nexport default _xtakeWhile;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xtakeWhile from \"./internal/_xtakeWhile.js\";\nimport slice from \"./slice.js\";\n/**\n * Returns a new list containing the first `n` elements of a given list,\n * passing each value to the supplied predicate function, and terminating when\n * the predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * Dispatches to the `takeWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropWhile, R.transduce, R.addIndex\n * @example\n *\n * const isNotFour = x => x !== 4;\n *\n * R.takeWhile(isNotFour, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3]\n *\n * R.takeWhile(x => x !== 'd' , 'Ramda'); //=> 'Ram'\n */\n\nvar takeWhile = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['takeWhile'], _xtakeWhile, function takeWhile(fn, xs) {\n var idx = 0;\n var len = xs.length;\n\n while (idx < len && fn(xs[idx])) {\n idx += 1;\n }\n\n return slice(0, idx, xs);\n}));\n\nexport default takeWhile;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XTap = /*#__PURE__*/function () {\n function XTap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XTap.prototype['@@transducer/init'] = _xfBase.init;\n XTap.prototype['@@transducer/result'] = _xfBase.result;\n\n XTap.prototype['@@transducer/step'] = function (result, input) {\n this.f(input);\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XTap;\n}();\n\nvar _xtap = /*#__PURE__*/_curry2(function _xtap(f, xf) {\n return new XTap(f, xf);\n});\n\nexport default _xtap;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xtap from \"./internal/_xtap.js\";\n/**\n * Runs the given function with the supplied object, then returns the object.\n *\n * Acts as a transducer if a transformer is given as second parameter.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a -> *) -> a -> a\n * @param {Function} fn The function to call with `x`. The return value of `fn` will be thrown away.\n * @param {*} x\n * @return {*} `x`.\n * @example\n *\n * const sayX = x => console.log('x is ' + x);\n * R.tap(sayX, 100); //=> 100\n * // logs 'x is 100'\n * @symb R.tap(f, a) = a\n */\n\nvar tap = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xtap, function tap(fn, x) {\n fn(x);\n return x;\n}));\n\nexport default tap;","import _cloneRegExp from \"./internal/_cloneRegExp.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _isRegExp from \"./internal/_isRegExp.js\";\nimport toString from \"./toString.js\";\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\n\nvar test = /*#__PURE__*/_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n\n return _cloneRegExp(pattern).test(str);\n});\n\nexport default test;","export default function _isRegExp(x) {\n return Object.prototype.toString.call(x) === '[object RegExp]';\n}","import _curry2 from \"./internal/_curry2.js\";\nimport _assertPromise from \"./internal/_assertPromise.js\";\n/**\n * Returns the result of applying the onSuccess function to the value inside\n * a successfully resolved promise. This is useful for working with promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Function\n * @sig (a -> b) -> (Promise e a) -> (Promise e b)\n * @sig (a -> (Promise e b)) -> (Promise e a) -> (Promise e b)\n * @param {Function} onSuccess The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(onSuccess)`\n * @see R.otherwise\n * @example\n *\n * var makeQuery = (email) => ({ query: { email }});\n *\n * //getMemberName :: String -> Promise ({firstName, lastName})\n * var getMemberName = R.pipe(\n * makeQuery,\n * fetchMember,\n * R.andThen(R.pick(['firstName', 'lastName']))\n * );\n */\n\nvar andThen = /*#__PURE__*/_curry2(function andThen(f, p) {\n _assertPromise('andThen', p);\n\n return p.then(f);\n});\n\nexport default andThen;","import invoker from \"./invoker.js\";\n/**\n * The lower case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to lower case.\n * @return {String} The lower case version of `str`.\n * @see R.toUpper\n * @example\n *\n * R.toLower('XYZ'); //=> 'xyz'\n */\n\nvar toLower = /*#__PURE__*/invoker(0, 'toLowerCase');\nexport default toLower;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Converts an object into an array of key, value arrays. Only the object's\n * own properties are used.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own properties.\n * @see R.fromPairs\n * @example\n *\n * R.toPairs({a: 1, b: 2, c: 3}); //=> [['a', 1], ['b', 2], ['c', 3]]\n */\n\nvar toPairs = /*#__PURE__*/_curry1(function toPairs(obj) {\n var pairs = [];\n\n for (var prop in obj) {\n if (_has(prop, obj)) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n }\n\n return pairs;\n});\n\nexport default toPairs;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Converts an object into an array of key, value arrays. The object's own\n * properties and prototype properties are used. Note that the order of the\n * output array is not guaranteed to be consistent across different JS\n * platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own\n * and prototype properties.\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.toPairsIn(f); //=> [['x','X'], ['y','Y']]\n */\n\nvar toPairsIn = /*#__PURE__*/_curry1(function toPairsIn(obj) {\n var pairs = [];\n\n for (var prop in obj) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n\n return pairs;\n});\n\nexport default toPairsIn;","import invoker from \"./invoker.js\";\n/**\n * The upper case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to upper case.\n * @return {String} The upper case version of `str`.\n * @see R.toLower\n * @example\n *\n * R.toUpper('abc'); //=> 'ABC'\n */\n\nvar toUpper = /*#__PURE__*/invoker(0, 'toUpperCase');\nexport default toUpper;","import _reduce from \"./internal/_reduce.js\";\nimport _xwrap from \"./internal/_xwrap.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Initializes a transducer using supplied iterator function. Returns a single\n * item by iterating through the list, successively calling the transformed\n * iterator function and passing it an accumulator value and the current value\n * from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It will be\n * wrapped as a transformer to initialize the transducer. A transformer can be\n * passed directly in place of an iterator function. In both cases, iteration\n * may be stopped early with the [`R.reduced`](#reduced) function.\n *\n * A transducer is a function that accepts a transformer and returns a\n * transformer and can be composed directly.\n *\n * A transformer is an an object that provides a 2-arity reducing iterator\n * function, step, 0-arity initial value function, init, and 1-arity result\n * extraction function, result. The step function is used as the iterator\n * function in reduce. The result function is used to convert the final\n * accumulator into the return type and in most cases is\n * [`R.identity`](#identity). The init function can be used to provide an\n * initial accumulator, but is ignored by transduce.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (c -> c) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array. Wrapped as transformer, if necessary, and used to\n * initialize the transducer\n * @param {*} acc The initial accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced, R.into\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n * R.transduce(transducer, R.flip(R.append), [], numbers); //=> [2, 3]\n *\n * const isOdd = (x) => x % 2 === 1;\n * const firstOddTransducer = R.compose(R.filter(isOdd), R.take(1));\n * R.transduce(firstOddTransducer, R.flip(R.append), [], R.range(0, 100)); //=> [1]\n */\n\nvar transduce = /*#__PURE__*/curryN(4, function transduce(xf, fn, acc, list) {\n return _reduce(xf(typeof fn === 'function' ? _xwrap(fn) : fn), acc, list);\n});\nexport default transduce;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Transposes the rows and columns of a 2D list.\n * When passed a list of `n` lists of length `x`,\n * returns a list of `x` lists of length `n`.\n *\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [[a]] -> [[a]]\n * @param {Array} list A 2D list\n * @return {Array} A 2D list\n * @example\n *\n * R.transpose([[1, 'a'], [2, 'b'], [3, 'c']]) //=> [[1, 2, 3], ['a', 'b', 'c']]\n * R.transpose([[1, 2, 3], ['a', 'b', 'c']]) //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n *\n * // If some of the rows are shorter than the following rows, their elements are skipped:\n * R.transpose([[10, 11], [20], [], [30, 31, 32]]) //=> [[10, 20, 30], [11, 31], [32]]\n * @symb R.transpose([[a], [b], [c]]) = [a, b, c]\n * @symb R.transpose([[a, b], [c, d]]) = [[a, c], [b, d]]\n * @symb R.transpose([[a, b], [c]]) = [[a, c], [b]]\n */\n\nvar transpose = /*#__PURE__*/_curry1(function transpose(outerlist) {\n var i = 0;\n var result = [];\n\n while (i < outerlist.length) {\n var innerlist = outerlist[i];\n var j = 0;\n\n while (j < innerlist.length) {\n if (typeof result[j] === 'undefined') {\n result[j] = [];\n }\n\n result[j].push(innerlist[j]);\n j += 1;\n }\n\n i += 1;\n }\n\n return result;\n});\n\nexport default transpose;","import _curry3 from \"./internal/_curry3.js\";\nimport map from \"./map.js\";\nimport sequence from \"./sequence.js\";\n/**\n * Maps an [Applicative](https://github.com/fantasyland/fantasy-land#applicative)-returning\n * function over a [Traversable](https://github.com/fantasyland/fantasy-land#traversable),\n * then uses [`sequence`](#sequence) to transform the resulting Traversable of Applicative\n * into an Applicative of Traversable.\n *\n * Dispatches to the `traverse` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> (a -> f b) -> t a -> f (t b)\n * @param {Function} of\n * @param {Function} f\n * @param {*} traversable\n * @return {*}\n * @see R.sequence\n * @example\n *\n * // Returns `Maybe.Nothing` if the given divisor is `0`\n * const safeDiv = n => d => d === 0 ? Maybe.Nothing() : Maybe.Just(n / d)\n *\n * R.traverse(Maybe.of, safeDiv(10), [2, 4, 5]); //=> Maybe.Just([5, 2.5, 2])\n * R.traverse(Maybe.of, safeDiv(10), [2, 0, 5]); //=> Maybe.Nothing\n */\n\nvar traverse = /*#__PURE__*/_curry3(function traverse(of, f, traversable) {\n return typeof traversable['fantasy-land/traverse'] === 'function' ? traversable['fantasy-land/traverse'](f, of) : sequence(of, map(f, traversable));\n});\n\nexport default traverse;","import _curry1 from \"./internal/_curry1.js\";\nvar ws = \"\\t\\n\\x0B\\f\\r \\xA0\\u1680\\u2000\\u2001\\u2002\\u2003\" + \"\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\" + \"\\u2029\\uFEFF\";\nvar zeroWidth = \"\\u200B\";\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\n\nvar trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? /*#__PURE__*/_curry1(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n}) : /*#__PURE__*/_curry1(function trim(str) {\n return str.trim();\n});\nexport default trim;","import _arity from \"./internal/_arity.js\";\nimport _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * `tryCatch` takes two functions, a `tryer` and a `catcher`. The returned\n * function evaluates the `tryer`; if it does not throw, it simply returns the\n * result. If the `tryer` *does* throw, the returned function evaluates the\n * `catcher` function and returns its result. Note that for effective\n * composition with this function, both the `tryer` and `catcher` functions\n * must return the same type of results.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig (...x -> a) -> ((e, ...x) -> a) -> (...x -> a)\n * @param {Function} tryer The function that may throw.\n * @param {Function} catcher The function that will be evaluated if `tryer` throws.\n * @return {Function} A new function that will catch exceptions and send then to the catcher.\n * @example\n *\n * R.tryCatch(R.prop('x'), R.F)({x: true}); //=> true\n * R.tryCatch(() => { throw 'foo'}, R.always('catched'))('bar') // => 'catched'\n * R.tryCatch(R.times(R.identity), R.always([]))('s') // => []\n * R.tryCatch(() => { throw 'this is not a valid value'}, (err, value)=>({error : err, value }))('bar') // => {'error': 'this is not a valid value', 'value': 'bar'}\n */\n\nvar tryCatch = /*#__PURE__*/_curry2(function _tryCatch(tryer, catcher) {\n return _arity(tryer.length, function () {\n try {\n return tryer.apply(this, arguments);\n } catch (e) {\n return catcher.apply(this, _concat([e], arguments));\n }\n });\n});\n\nexport default tryCatch;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Takes a function `fn`, which takes a single array argument, and returns a\n * function which:\n *\n * - takes any number of positional arguments;\n * - passes these arguments to `fn` as an array; and\n * - returns the result.\n *\n * In other words, `R.unapply` derives a variadic function from a function which\n * takes an array. `R.unapply` is the inverse of [`R.apply`](#apply).\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Function\n * @sig ([*...] -> a) -> (*... -> a)\n * @param {Function} fn\n * @return {Function}\n * @see R.apply\n * @example\n *\n * R.unapply(JSON.stringify)(1, 2, 3); //=> '[1,2,3]'\n * @symb R.unapply(f)(a, b) = f([a, b])\n */\n\nvar unapply = /*#__PURE__*/_curry1(function unapply(fn) {\n return function () {\n return fn(Array.prototype.slice.call(arguments, 0));\n };\n});\n\nexport default unapply;","import _curry1 from \"./internal/_curry1.js\";\nimport nAry from \"./nAry.js\";\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 1 parameter. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> b) -> (a -> b)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 1.\n * @see R.binary, R.nAry\n * @example\n *\n * const takesTwoArgs = function(a, b) {\n * return [a, b];\n * };\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.unary(takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only 1 argument is passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.unary(f)(a, b, c) = f(a)\n */\n\nvar unary = /*#__PURE__*/_curry1(function unary(fn) {\n return nAry(1, fn);\n});\n\nexport default unary;","import _curry2 from \"./internal/_curry2.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Returns a function of arity `n` from a (manually) curried function.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Function\n * @sig Number -> (a -> b) -> (a -> c)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to uncurry.\n * @return {Function} A new function.\n * @see R.curry\n * @example\n *\n * const addFour = a => b => c => d => a + b + c + d;\n *\n * const uncurriedAddFour = R.uncurryN(4, addFour);\n * uncurriedAddFour(1, 2, 3, 4); //=> 10\n */\n\nvar uncurryN = /*#__PURE__*/_curry2(function uncurryN(depth, fn) {\n return curryN(depth, function () {\n var currentDepth = 1;\n var value = fn;\n var idx = 0;\n var endIdx;\n\n while (currentDepth <= depth && typeof value === 'function') {\n endIdx = currentDepth === depth ? arguments.length : idx + value.length;\n value = value.apply(this, Array.prototype.slice.call(arguments, idx, endIdx));\n currentDepth += 1;\n idx = endIdx;\n }\n\n return value;\n });\n});\n\nexport default uncurryN;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Builds a list from a seed value. Accepts an iterator function, which returns\n * either false to stop iteration or an array of length 2 containing the value\n * to add to the resulting list and the seed to be used in the next call to the\n * iterator function.\n *\n * The iterator function receives one argument: *(seed)*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig (a -> [b]) -> * -> [b]\n * @param {Function} fn The iterator function. receives one argument, `seed`, and returns\n * either false to quit iteration or an array of length two to proceed. The element\n * at index 0 of this array will be added to the resulting array, and the element\n * at index 1 will be passed to the next call to `fn`.\n * @param {*} seed The seed value.\n * @return {Array} The final list.\n * @example\n *\n * const f = n => n > 50 ? false : [-n, n + 10];\n * R.unfold(f, 10); //=> [-10, -20, -30, -40, -50]\n * @symb R.unfold(f, x) = [f(x)[0], f(f(x)[1])[0], f(f(f(x)[1])[1])[0], ...]\n */\n\nvar unfold = /*#__PURE__*/_curry2(function unfold(fn, seed) {\n var pair = fn(seed);\n var result = [];\n\n while (pair && pair.length) {\n result[result.length] = pair[0];\n pair = fn(pair[1]);\n }\n\n return result;\n});\n\nexport default unfold;","import _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport compose from \"./compose.js\";\nimport uniq from \"./uniq.js\";\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @example\n *\n * R.union([1, 2, 3], [2, 3, 4]); //=> [1, 2, 3, 4]\n */\n\nvar union = /*#__PURE__*/_curry2( /*#__PURE__*/compose(uniq, _concat));\n\nexport default union;","import _includesWith from \"./internal/_includesWith.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied predicate to\n * two list elements. Prefers the first item if two items compare equal based\n * on the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * const strEq = R.eqBy(String);\n * R.uniqWith(strEq)([1, '1', 2, 1]); //=> [1, 2]\n * R.uniqWith(strEq)([{}, {}]); //=> [{}]\n * R.uniqWith(strEq)([1, '1', 1]); //=> [1]\n * R.uniqWith(strEq)(['1', 1, 1]); //=> ['1']\n */\n\nvar uniqWith = /*#__PURE__*/_curry2(function uniqWith(pred, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var item;\n\n while (idx < len) {\n item = list[idx];\n\n if (!_includesWith(pred, item, result)) {\n result[result.length] = item;\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default uniqWith;","import _concat from \"./internal/_concat.js\";\nimport _curry3 from \"./internal/_curry3.js\";\nimport uniqWith from \"./uniqWith.js\";\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list. Duplication is determined according to the value returned by\n * applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [*] -> [*] -> [*]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @see R.union\n * @example\n *\n * const l1 = [{a: 1}, {a: 2}];\n * const l2 = [{a: 1}, {a: 4}];\n * R.unionWith(R.eqBy(R.prop('a')), l1, l2); //=> [{a: 1}, {a: 2}, {a: 4}]\n */\n\nvar unionWith = /*#__PURE__*/_curry3(function unionWith(pred, list1, list2) {\n return uniqWith(pred, _concat(list1, list2));\n});\n\nexport default unionWith;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is not satisfied, the function will return the result of\n * calling the `whenFalseFn` function with the same argument. If the predicate\n * is satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenFalseFn A function to invoke when the `pred` evaluates\n * to a falsy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenFalseFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenFalseFn`.\n * @see R.ifElse, R.when, R.cond\n * @example\n *\n * let safeInc = R.unless(R.isNil, R.inc);\n * safeInc(null); //=> null\n * safeInc(1); //=> 2\n */\n\nvar unless = /*#__PURE__*/_curry3(function unless(pred, whenFalseFn, x) {\n return pred(x) ? x : whenFalseFn(x);\n});\n\nexport default unless;","import _identity from \"./internal/_identity.js\";\nimport chain from \"./chain.js\";\n/**\n * Shorthand for `R.chain(R.identity)`, which removes one level of nesting from\n * any [Chain](https://github.com/fantasyland/fantasy-land#chain).\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain c => c (c a) -> c a\n * @param {*} list\n * @return {*}\n * @see R.flatten, R.chain\n * @example\n *\n * R.unnest([1, [2], [[3]]]); //=> [1, 2, [3]]\n * R.unnest([[1, 2], [3, 4], [5, 6]]); //=> [1, 2, 3, 4, 5, 6]\n */\n\nvar unnest = /*#__PURE__*/chain(_identity);\nexport default unnest;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Takes a predicate, a transformation function, and an initial value,\n * and returns a value of the same type as the initial value.\n * It does so by applying the transformation until the predicate is satisfied,\n * at which point it returns the satisfactory value.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} fn The iterator function\n * @param {*} init Initial value\n * @return {*} Final value that satisfies predicate\n * @example\n *\n * R.until(R.gt(R.__, 100), R.multiply(2))(1) // => 128\n */\n\nvar until = /*#__PURE__*/_curry3(function until(pred, fn, init) {\n var val = init;\n\n while (!pred(val)) {\n val = fn(val);\n }\n\n return val;\n});\n\nexport default until;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Returns a list of all the properties, including prototype properties, of the\n * supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own and prototype properties.\n * @see R.values, R.keysIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.valuesIn(f); //=> ['X', 'Y']\n */\n\nvar valuesIn = /*#__PURE__*/_curry1(function valuesIn(obj) {\n var prop;\n var vs = [];\n\n for (prop in obj) {\n vs[vs.length] = obj[prop];\n }\n\n return vs;\n});\n\nexport default valuesIn;","import _curry2 from \"./internal/_curry2.js\"; // `Const` is a functor that effectively ignores the function given to `map`.\n\nvar Const = function Const(x) {\n return {\n value: x,\n 'fantasy-land/map': function fantasyLandMap() {\n return this;\n }\n };\n};\n/**\n * Returns a \"view\" of the given data structure, determined by the given lens.\n * The lens's focus determines which portion of the data structure is visible.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> s -> a\n * @param {Lens} lens\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.view(xLens, {x: 4, y: 2}); //=> 4\n */\n\n\nvar view = /*#__PURE__*/_curry2(function view(lens, x) {\n // Using `Const` effectively ignores the setter function of the `lens`,\n // leaving the value returned by the getter function unmodified.\n return lens(Const)(x).value;\n});\n\nexport default view;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is satisfied, the function will return the result of calling\n * the `whenTrueFn` function with the same argument. If the predicate is not\n * satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenTrueFn A function to invoke when the `condition`\n * evaluates to a truthy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenTrueFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenTrueFn`.\n * @see R.ifElse, R.unless, R.cond\n * @example\n *\n * // truncate :: String -> String\n * const truncate = R.when(\n * R.propSatisfies(R.gt(R.__, 10), 'length'),\n * R.pipe(R.take(10), R.append('…'), R.join(''))\n * );\n * truncate('12345'); //=> '12345'\n * truncate('0123456789ABC'); //=> '0123456789…'\n */\n\nvar when = /*#__PURE__*/_curry3(function when(pred, whenTrueFn, x) {\n return pred(x) ? whenTrueFn(x) : x;\n});\n\nexport default when;","import _curry2 from \"./internal/_curry2.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec. Each of the spec's own properties must be a predicate function.\n * Each predicate is applied to the value of the corresponding property of the\n * test object. `where` returns true if all the predicates return true, false\n * otherwise.\n *\n * `where` is well suited to declaratively expressing constraints for other\n * functions such as [`filter`](#filter) and [`find`](#find).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Object\n * @sig {String: (* -> Boolean)} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propSatisfies, R.whereEq\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.where({\n * a: R.equals('foo'),\n * b: R.complement(R.equals('bar')),\n * x: R.gt(R.__, 10),\n * y: R.lt(R.__, 20)\n * });\n *\n * pred({a: 'foo', b: 'xxx', x: 11, y: 19}); //=> true\n * pred({a: 'xxx', b: 'xxx', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'bar', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 10, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 11, y: 20}); //=> false\n */\n\nvar where = /*#__PURE__*/_curry2(function where(spec, testObj) {\n for (var prop in spec) {\n if (_has(prop, spec) && !spec[prop](testObj[prop])) {\n return false;\n }\n }\n\n return true;\n});\n\nexport default where;","import _curry2 from \"./internal/_curry2.js\";\nimport equals from \"./equals.js\";\nimport map from \"./map.js\";\nimport where from \"./where.js\";\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec, false otherwise. An object satisfies the spec if, for each of the\n * spec's own properties, accessing that property of the object gives the same\n * value (in [`R.equals`](#equals) terms) as accessing that property of the\n * spec.\n *\n * `whereEq` is a specialization of [`where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @sig {String: *} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propEq, R.where\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.whereEq({a: 1, b: 2});\n *\n * pred({a: 1}); //=> false\n * pred({a: 1, b: 2}); //=> true\n * pred({a: 1, b: 2, c: 3}); //=> true\n * pred({a: 1, b: 1}); //=> false\n */\n\nvar whereEq = /*#__PURE__*/_curry2(function whereEq(spec, testObj) {\n return where(map(equals, spec), testObj);\n});\n\nexport default whereEq;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport flip from \"./flip.js\";\nimport reject from \"./reject.js\";\n/**\n * Returns a new list without values in the first argument.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @param {Array} list1 The values to be removed from `list2`.\n * @param {Array} list2 The array to remove values from.\n * @return {Array} The new array without values in `list1`.\n * @see R.transduce, R.difference, R.remove\n * @example\n *\n * R.without([1, 2], [1, 2, 1, 3, 4]); //=> [3, 4]\n */\n\nvar without = /*#__PURE__*/_curry2(function (xs, list) {\n return reject(flip(_includes)(xs), list);\n});\n\nexport default without;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Exclusive disjunction logical operation.\n * Returns `true` if one of the arguments is truthy and the other is falsy.\n * Otherwise, it returns `false`.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Logic\n * @sig a -> b -> Boolean\n * @param {Any} a\n * @param {Any} b\n * @return {Boolean} true if one of the arguments is truthy and the other is falsy\n * @see R.or, R.and\n * @example\n *\n * R.xor(true, true); //=> false\n * R.xor(true, false); //=> true\n * R.xor(false, true); //=> true\n * R.xor(false, false); //=> false\n */\n\nvar xor = /*#__PURE__*/_curry2(function xor(a, b) {\n return Boolean(!a ^ !b);\n});\n\nexport default xor;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new list out of the two supplied by creating each possible pair\n * from the lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The list made by combining each possible pair from\n * `as` and `bs` into pairs (`[a, b]`).\n * @example\n *\n * R.xprod([1, 2], ['a', 'b']); //=> [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']]\n * @symb R.xprod([a, b], [c, d]) = [[a, c], [a, d], [b, c], [b, d]]\n */\n\nvar xprod = /*#__PURE__*/_curry2(function xprod(a, b) {\n // = xprodWith(prepend); (takes about 3 times as long...)\n var idx = 0;\n var ilen = a.length;\n var j;\n var jlen = b.length;\n var result = [];\n\n while (idx < ilen) {\n j = 0;\n\n while (j < jlen) {\n result[result.length] = [a[idx], b[j]];\n j += 1;\n }\n\n idx += 1;\n }\n\n return result;\n});\n\nexport default xprod;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new list out of the two supplied by pairing up equally-positioned\n * items from both lists. The returned list is truncated to the length of the\n * shorter of the two input lists.\n * Note: `zip` is equivalent to `zipWith(function(a, b) { return [a, b] })`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by pairing up same-indexed elements of `list1` and `list2`.\n * @example\n *\n * R.zip([1, 2, 3], ['a', 'b', 'c']); //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n * @symb R.zip([a, b, c], [d, e, f]) = [[a, d], [b, e], [c, f]]\n */\n\nvar zip = /*#__PURE__*/_curry2(function zip(a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = [a[idx], b[idx]];\n idx += 1;\n }\n\n return rv;\n});\n\nexport default zip;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a new object out of a list of keys and a list of values.\n * Key/value pairing is truncated to the length of the shorter of the two lists.\n * Note: `zipObj` is equivalent to `pipe(zip, fromPairs)`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [String] -> [*] -> {String: *}\n * @param {Array} keys The array that will be properties on the output object.\n * @param {Array} values The list of values on the output object.\n * @return {Object} The object made by pairing up same-indexed elements of `keys` and `values`.\n * @example\n *\n * R.zipObj(['a', 'b', 'c'], [1, 2, 3]); //=> {a: 1, b: 2, c: 3}\n */\n\nvar zipObj = /*#__PURE__*/_curry2(function zipObj(keys, values) {\n var idx = 0;\n var len = Math.min(keys.length, values.length);\n var out = {};\n\n while (idx < len) {\n out[keys[idx]] = values[idx];\n idx += 1;\n }\n\n return out;\n});\n\nexport default zipObj;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Creates a new list out of the two supplied by applying the function to each\n * equally-positioned pair in the lists. The returned list is truncated to the\n * length of the shorter of the two input lists.\n *\n * @function\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> c) -> [a] -> [b] -> [c]\n * @param {Function} fn The function used to combine the two elements into one value.\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by combining same-indexed elements of `list1` and `list2`\n * using `fn`.\n * @example\n *\n * const f = (x, y) => {\n * // ...\n * };\n * R.zipWith(f, [1, 2, 3], ['a', 'b', 'c']);\n * //=> [f(1, 'a'), f(2, 'b'), f(3, 'c')]\n * @symb R.zipWith(fn, [a, b, c], [d, e, f]) = [fn(a, d), fn(b, e), fn(c, f)]\n */\n\nvar zipWith = /*#__PURE__*/_curry3(function zipWith(fn, a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n\n while (idx < len) {\n rv[idx] = fn(a[idx], b[idx]);\n idx += 1;\n }\n\n return rv;\n});\n\nexport default zipWith;","import curryN from \"./curryN.js\";\nimport _curry1 from \"./internal/_curry1.js\";\n/**\n * Creates a thunk out of a function. A thunk delays a calculation until\n * its result is needed, providing lazy evaluation of arguments.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Function\n * @sig ((a, b, ..., j) -> k) -> (a, b, ..., j) -> (() -> k)\n * @param {Function} fn A function to wrap in a thunk\n * @return {Function} Expects arguments for `fn` and returns a new function\n * that, when called, applies those arguments to `fn`.\n * @see R.partial, R.partialRight\n * @example\n *\n * R.thunkify(R.identity)(42)(); //=> 42\n * R.thunkify((a, b) => a + b)(25, 17)(); //=> 42\n */\n\nvar thunkify = /*#__PURE__*/_curry1(function thunkify(fn) {\n return curryN(fn.length, function createThunk() {\n var fnArgs = arguments;\n return function invokeThunk() {\n return fn.apply(this, fnArgs);\n };\n });\n});\n\nexport default thunkify;","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView; // Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n } // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n\n\n var it;\n\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n }\n\n return true;\n }\n\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n return true;\n } // END: Modifications\n\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n } // END: fast-deep-equal\n // START: react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element) return false; // custom handling for React/Preact\n\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n continue;\n } // all other properties should be traversed as usual\n\n\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n } // END: react-fast-compare\n // START: fast-deep-equal\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\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 _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\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 if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\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\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\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 // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\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__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","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 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","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 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 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 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","/* 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","/* 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","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.20.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.20.3/LICENSE',\n source: 'https://github.com/zloirock/core-js'\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');\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","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-array.prototype.flatmap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A;\n aCallable(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\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('flatMap');\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","// TODO: Remove from `core-js@4`\nrequire('../modules/es.global-this');\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 cb(entry.isIntersecting || entry.intersectionRatio > 0);\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.abortPrefetch = null;\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 + window.location.search; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname + this.props._location.search;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var parsed = (0, _parsePath.parsePath)(rewrittenPath);\n var newPathName = parsed.pathname + parsed.search; // Prefetch 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 return ___loader.enqueue(newPathName);\n }\n\n return undefined;\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\n if (this.abortPrefetch) {\n this.abortPrefetch.abort();\n }\n\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 && Object.prototype.hasOwnProperty.call(this.props.innerRef, \"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 (inViewPort) {\n if (inViewPort) {\n _this2.abortPrefetch = _this2._prefetch();\n } else {\n if (_this2.abortPrefetch) {\n _this2.abortPrefetch.abort();\n }\n }\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 var parsed = (0, _parsePath.parsePath)(prefixedTo);\n\n ___loader.hovering(parsed.pathname + parsed.search);\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}","exports.components = {\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-preview-js\": () => import(\"./../../../src/pages/preview.js\" /* webpackChunkName: \"component---src-pages-preview-js\" */),\n \"component---src-templates-homepage-js\": () => import(\"./../../../src/templates/homepage.js\" /* webpackChunkName: \"component---src-templates-homepage-js\" */),\n \"component---src-templates-page-js\": () => import(\"./../../../src/templates/page.js\" /* webpackChunkName: \"component---src-templates-page-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-prismic-previews/gatsby-browser.js'),\n options: {\"plugins\":[],\"repositoryName\":\"mtv-club\",\"promptForAccessToken\":true,\"apiEndpoint\":\"https://mtv-club.cdn.prismic.io/api/v2\",\"lang\":\"*\",\"pageSize\":100,\"imageImgixParams\":{\"auto\":\"compress,format\",\"fit\":\"max\",\"q\":50},\"imagePlaceholderImgixParams\":{\"w\":100,\"blur\":15},\"toolbar\":\"new\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-image/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"gatsby-starter-default\",\"short_name\":\"starter\",\"start_url\":\"/\",\"background_color\":\"#663399\",\"theme_color\":\"#663399\",\"display\":\"minimal-ui\",\"icon\":\"/codebuild/output/src2927845676/src/mtv-club/static/favicon.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"f17fecfe3d1034950413dfd17d52443c\"},\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 pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router/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\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 = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\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 getServerDataError: pageData.getServerDataError,\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.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n 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 {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n 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(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // 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 + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(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 + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport 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\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n 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). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const 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","/**\n * This file contains configuration for `gatsby-plugin-prismic-previews` to\n * support preview sessions from Prismic with drafts and unpublished documents.\n *\n * @see https://prismic.io/docs/technologies/previews-gatsby\n */\n\nimport { componentResolverFromMap } from 'gatsby-plugin-prismic-previews'\n\nimport { prismicRepo } from '../../prismic-configuration'\nimport { linkResolver } from './linkResolver'\n\nimport PageTemplate from '../templates/page'\nimport HomepageTemplate from '../templates/homepage'\n/**\n * Prismic preview configuration for each repository in your app. This set of\n * configuration objects will be used with the `PrismicPreviewProvider`\n * higher order component.\n *\n * If your app needs to support multiple Prismic repositories, add each of\n * their own configuration objects here as additional elements.\n *\n */\nexport const repositoryConfigs = [\n {\n repositoryName: prismicRepo,\n linkResolver,\n componentResolver: componentResolverFromMap({\n page: PageTemplate,\n homepage: HomepageTemplate,\n }),\n },\n]\n","import * as React from 'react'\nimport { Link } from 'gatsby'\nimport { PrismicPreviewProvider } from 'gatsby-plugin-prismic-previews'\nimport { PrismicProvider } from '@prismicio/react'\n\nimport { repositoryConfigs } from './src/utils/prismicPreviews'\nimport { linkResolver } from './src/utils/linkResolver'\n\nimport './src/stylesheets/main.scss'\nimport 'bootstrap/dist/css/bootstrap.min.css';\n\nexport const wrapRootElement = ({ element }) => (\n (\n \n )}\n >\n \n {element}\n \n \n)\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchImgixDominantColor = exports.fetchImgixBase64Image = exports.buildBase64URL = void 0;\nvar function_1 = require(\"fp-ts/function\");\nvar TE = __importStar(require(\"fp-ts/TaskEither\"));\nvar cache_1 = require(\"../common/cache\");\nvar utils_1 = require(\"../common/utils\");\nvar buildBase64URL = function (contentType, base64) {\n return \"data:\".concat(contentType, \";base64,\").concat(base64);\n};\nexports.buildBase64URL = buildBase64URL;\nvar fetchImgixBase64Image = function (cache) { return function (url) {\n return (0, cache_1.withCache)(\"imgix-gatsby-base64-url-\".concat(url), cache, function () {\n return (0, function_1.pipe)(url, utils_1.fetch, TE.chain(function (res) {\n return (0, function_1.pipe)(TE.rightTask(function () { return res.buffer(); }), TE.chain(function (buffer) { return TE.right(buffer.toString('base64')); }), TE.chain(function (base64) {\n return TE.right((0, exports.buildBase64URL)(String(res.headers.get('content-type')), base64));\n }));\n }));\n });\n}; };\nexports.fetchImgixBase64Image = fetchImgixBase64Image;\nvar fetchImgixDominantColor = function (cache) { return function (buildURL) {\n return (0, function_1.pipe)(buildURL({ palette: 'json' }), function (url) {\n return (0, cache_1.withCache)(\"imgix-gatsby-dominant-color-\".concat(url), cache, function () {\n return (0, function_1.pipe)(url, utils_1.fetch, TE.chain(function (res) {\n return TE.tryCatch(function () { return res.json(); }, function (err) {\n return new Error('Something went wrong while decoding the dominant color for the placeholder image: ' +\n String(err));\n });\n }), TE.map(function (data) { return data.dominant_colors.vibrant.hex; }));\n });\n });\n}; };\nexports.fetchImgixDominantColor = fetchImgixDominantColor;\n//# sourceMappingURL=fetchBase64Image.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchImgixMetadata = exports.ImgixMetadata = void 0;\nvar E = __importStar(require(\"fp-ts/Either\"));\nvar function_1 = require(\"fp-ts/function\");\nvar TE = __importStar(require(\"fp-ts/TaskEither\"));\nvar t = __importStar(require(\"io-ts\"));\nvar cache_1 = require(\"../common/cache\");\nvar log_1 = require(\"../common/log\");\nvar utils_1 = require(\"../common/utils\");\nvar log = (0, log_1.createLogger)('fetchImgixMetadata');\nexports.ImgixMetadata = t.type({\n 'Content-Type': t.string,\n PixelWidth: t.number,\n PixelHeight: t.number,\n});\nvar fetchImgixMetadata = function (cache, client) { return function (url) {\n return (0, cache_1.withCache)(\"gatsby-plugin-imgix-metadata-\".concat(url), cache, function () {\n return (0, function_1.pipe)(client.buildURL(url, { fm: 'json' }), (0, log_1.trace)('imgix metadata url', log), utils_1.fetchJSON, TE.map((0, log_1.trace)('imgix metadata result', log)), TE.chain((0, function_1.flow)(exports.ImgixMetadata.decode, E.orElse(function () {\n return E.left(new Error('Problem when decoding imgix metadata.'));\n }), TE.fromEither)), TE.map((0, log_1.trace)('decoded data', log)), TE.mapLeft((0, log_1.trace)('imgix metadata error', log)));\n });\n}; };\nexports.fetchImgixMetadata = fetchImgixMetadata;\n//# sourceMappingURL=fetchImgixMetadata.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setToCache = exports.getFromCache = exports.withCache = void 0;\nvar pipeable_1 = require(\"fp-ts/pipeable\");\nvar TE = __importStar(require(\"fp-ts/TaskEither\"));\nvar log_1 = require(\"./log\");\nvar log = (0, log_1.createLogger)('cache');\nvar withCache = function (key, cache, f) {\n return (0, pipeable_1.pipe)((0, log_1.trace)(\"Trying to retrieve \".concat(key, \" from cache\"), log)(''), function () { return (0, exports.getFromCache)(cache, key); }, TE.map((0, log_1.trace)(\"Successfully retrieved \".concat(key, \" from cache with value\"), log)), \n // If no cache hit, run function and store result in cache\n TE.orElse(function () {\n return (0, pipeable_1.pipe)(f(), TE.map((0, log_1.trace)(\"Couldn't retrieve \".concat(key, \" from cache, replacing with value\"), log)), TE.chainW((0, exports.setToCache)(key, cache)));\n }), TE.mapLeft((0, log_1.trace)('Error in withCache', log)));\n};\nexports.withCache = withCache;\nvar getFromCache = function (cache, key) {\n return TE.tryCatch(function () {\n return cache.get(key).then(function (v) {\n (0, log_1.trace)(\"Retrieved value from cache for \".concat(key), log)(v);\n if (v == null) {\n log(\"Key \".concat(key, \" doesn't exist in the cache\"));\n throw new Error(\"Key \".concat(key, \" doesn't exist in the cache\"));\n }\n return v;\n });\n }, function () { return new Error(\"Failed to get \\\"\".concat(key, \"\\\" in cache.\")); });\n};\nexports.getFromCache = getFromCache;\nvar setToCache = function (key, cache) { return function (value) {\n return (0, pipeable_1.pipe)(TE.tryCatch(function () {\n (0, log_1.trace)(\"Setting \\\"\".concat(key, \"\\\" in cache to\"), log)(value);\n return cache.set(key, value).then(function () { return value; });\n }, function () { return new Error(\"Failed to set \\\"\".concat(key, \"\\\" in cache to value: \").concat(value)); }), TE.map((0, log_1.trace)(\"Cached value\", log)), TE.mapLeft((0, log_1.trace)(\"Failed to set \\\"\".concat(key, \"\\\" in cache to\"), log)));\n}; };\nexports.setToCache = setToCache;\n//# sourceMappingURL=cache.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createExternalHelper = void 0;\nvar imgix_js_core_wrapper_1 = require(\"./imgix-js-core-wrapper\");\nvar createExternalHelper = function (fieldConfigFactory) {\n return function (_a) {\n var imgixClientOptions = _a.imgixClientOptions, args = __rest(_a, [\"imgixClientOptions\"]);\n return (__assign({}, fieldConfigFactory(__assign(__assign({}, args), { imgixClient: (0, imgix_js_core_wrapper_1.createImgixURLBuilder)(imgixClientOptions) }))));\n };\n};\nexports.createExternalHelper = createExternalHelper;\n//# sourceMappingURL=createExternalHelper.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TaskOptionFromTE = void 0;\nvar function_1 = require(\"fp-ts/function\");\nvar O = __importStar(require(\"fp-ts/Option\"));\nvar T = __importStar(require(\"fp-ts/Task\"));\nvar TE = __importStar(require(\"fp-ts/TaskEither\"));\n/**\n * Convert a TaskEither to a Task composing an Option\n * @param taskEither\n */\nvar TaskOptionFromTE = function (taskEither) {\n return TE.fold(function () { return T.of(O.none); }, (0, function_1.flow)(O.some, T.of))(taskEither);\n};\nexports.TaskOptionFromTE = TaskOptionFromTE;\n//# sourceMappingURL=fpTsUtils.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createImgixURLBuilder = exports.createURLBuilderFn = exports.createImgixClient = void 0;\nvar js_core_1 = __importDefault(require(\"@imgix/js-core\"));\nvar Do_1 = require(\"fp-ts-contrib/lib/Do\");\nvar Apply_1 = require(\"fp-ts/Apply\");\nvar E = __importStar(require(\"fp-ts/Either\"));\nvar function_1 = require(\"fp-ts/function\");\nvar uri_1 = require(\"./uri\");\n/**\n * An FP wrapper around new ImgixClient()\n * @param param0 any options that can be passed to new ImgixClient(), and also allows overriding ixlib.\n */\nvar createImgixClient = function (_a) {\n var ixlib = _a.ixlib, options = __rest(_a, [\"ixlib\"]);\n return E.tryCatch(function () {\n var client = new js_core_1.default(options);\n client.includeLibraryParam = false;\n if (ixlib) {\n client.settings.libraryParam = ixlib;\n }\n return client;\n }, function (e) { return (e instanceof Error ? e : new Error('unknown error')); });\n};\nexports.createImgixClient = createImgixClient;\n/**\n * Used by createImgixURLBuilder, common code extracted here to avoid code duplication.\n */\nvar createURLBuilderFn = function (fn) { return function (options) { return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return (0, function_1.pipe)((0, Do_1.Do)(E.either)\n .bindL('urlParts', function () {\n if (options === null || options === void 0 ? void 0 : options.domain) {\n return E.right({\n domain: options === null || options === void 0 ? void 0 : options.domain,\n path: args[0],\n });\n }\n return (0, Apply_1.sequenceS)(E.either)({\n domain: (0, uri_1.parseHostE)(args[0]),\n path: (0, uri_1.parsePathE)(args[0]),\n });\n })\n .bindL('client', function (_a) {\n var domain = _a.urlParts.domain;\n return (0, exports.createImgixClient)(__assign(__assign({ ixlib: 'gatsbyFP' }, options), { domain: domain }));\n })\n .return(function (_a) {\n var client = _a.client, path = _a.urlParts.path;\n return client[fn].apply(client, __spreadArray([path], args.slice(1), false));\n }), E.getOrElse(function (err) {\n throw err;\n }));\n}; }; };\nexports.createURLBuilderFn = createURLBuilderFn;\n/**\n * Build a functional ImgixClient. Allows this application to use ImgixClient in a functional manner rather than a instance/class-based manner.\n * @param options options to pass to new ImgixClient, with extra options accepted by createImgixClient\n */\nvar createImgixURLBuilder = function (options) { return ({\n buildURL: (0, exports.createURLBuilderFn)('buildURL')(options),\n buildSrcSet: (0, exports.createURLBuilderFn)('buildSrcSet')(options),\n}); };\nexports.createImgixURLBuilder = createImgixURLBuilder;\n//# sourceMappingURL=imgix-js-core-wrapper.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.trace = exports.createLogger = exports.log = void 0;\nvar debug_1 = __importDefault(require(\"debug\"));\nvar ns = 'imgix:gatsby-source-url';\nexports.log = (0, debug_1.default)(ns);\nvar createLogger = function (module) { return (0, debug_1.default)(\"\".concat(ns, \":\").concat(module)); };\nexports.createLogger = createLogger;\nvar trace = function (label, customLogger) { return function (v) {\n (customLogger !== null && customLogger !== void 0 ? customLogger : exports.log)(\"\".concat(label ? \"\".concat(label, \": \") : '').concat(JSON.stringify(v, null, 2)));\n return v;\n}; };\nexports.trace = trace;\n//# sourceMappingURL=log.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parsePathE = exports.parsePath = exports.parseHostE = exports.parseHost = void 0;\nvar E = __importStar(require(\"fp-ts/Either\"));\nvar jsuri_1 = __importDefault(require(\"jsuri\"));\n/**\n * Parse the host from a URL. Can fail - for an FP type, use parseHostE\n */\nvar parseHost = function (uri) { return new URL(uri).hostname; };\nexports.parseHost = parseHost;\nvar parseHostE = function (uri) {\n return E.tryCatch(function () { return (0, exports.parseHost)(uri); }, function () { return new Error('Invalid URL'); });\n};\nexports.parseHostE = parseHostE;\n/**\n * Parse the path from a URL. Can fail - for an FP type, use parsePathE\n */\nvar parsePath = function (_uri) {\n var uri = new jsuri_1.default(_uri);\n return uri.path() + uri.query() + (uri.anchor() ? \"#\".concat(uri.anchor()) : '');\n};\nexports.parsePath = parsePath;\nvar parsePathE = function (uri) {\n return E.tryCatch(function () { return (0, exports.parsePath)(uri); }, function () { return new Error('Invalid URL'); });\n};\nexports.parsePathE = parsePathE;\n//# sourceMappingURL=uri.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findPossibleURLsInNode = exports.transformUrlForWebProxy = exports.invariant = exports.fetchJSON = exports.fetch = exports.noop = exports.semigroupImgixUrlParams = exports.resolveUrlFromSourceData = exports.taskEitherFromSourceDataResolver = void 0;\nvar pipeable_1 = require(\"fp-ts/pipeable\");\nvar Semigroup_1 = require(\"fp-ts/Semigroup\");\nvar TE = __importStar(require(\"fp-ts/TaskEither\"));\nvar node_fetch_1 = __importDefault(require(\"node-fetch\"));\nvar taskEitherFromSourceDataResolver = function (resolver, predicate) { return function (source) {\n return TE.tryCatch(function () {\n return Promise.resolve(resolver(source)).then(function (data) {\n if (data == null)\n return Promise.reject('Resolved data is null or undefined');\n var safeData = data;\n if (!predicate)\n return safeData;\n return predicate(safeData)\n ? safeData\n : Promise.reject('Resolved data is invalid.');\n });\n }, function (reason) { return new Error(String(reason)); });\n}; };\nexports.taskEitherFromSourceDataResolver = taskEitherFromSourceDataResolver;\nvar resolveUrlFromSourceData = function (resolver) { return (0, exports.taskEitherFromSourceDataResolver)(resolver, function (data) { return data != null; }); };\nexports.resolveUrlFromSourceData = resolveUrlFromSourceData;\nexports.semigroupImgixUrlParams = (0, Semigroup_1.getObjectSemigroup)();\nvar noop = function () {\n // noop\n};\nexports.noop = noop;\nvar fetch = function (url) {\n return TE.tryCatch(function () { return (0, node_fetch_1.default)(url); }, function (reason) { return new Error(String(reason)); });\n};\nexports.fetch = fetch;\nvar fetchJSON = function (url) {\n return (0, pipeable_1.pipe)(url, exports.fetch, TE.chain(function (res) { return TE.rightTask(function () { return res.json(); }); }));\n};\nexports.fetchJSON = fetchJSON;\nfunction invariant(condition, msg, reporter) {\n if (!condition)\n reporter.panic(\"Invariant failed: \".concat(msg));\n}\nexports.invariant = invariant;\nvar transformUrlForWebProxy = function (url, domain) {\n var instance = new URL(\"https://\".concat(domain));\n instance.pathname = encodeURIComponent(url);\n return instance.toString();\n};\nexports.transformUrlForWebProxy = transformUrlForWebProxy;\nfunction isURL(str) {\n var pattern = new RegExp('\\\\/\\\\/' + // the first two slashes after the protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.?)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i');\n return pattern.test(str);\n}\nvar findPossibleURLsInNode = function (node, depth) {\n if (depth === void 0) { depth = 0; }\n if (depth > 5) {\n return [];\n }\n return Object.entries(node).reduce(function (p, _a) {\n var key = _a[0], value = _a[1];\n if (typeof value === 'string' && isURL(value)) {\n return __spreadArray(__spreadArray([], p, true), [{ path: key, value: value }], false);\n }\n if (typeof value === 'object' && value != null) {\n return __spreadArray(__spreadArray([], p, true), (0, exports.findPossibleURLsInNode)(value, depth + 1).map(function (_a) {\n var path = _a.path, value = _a.value;\n return ({\n path: \"\".concat(key, \".\").concat(path),\n value: value,\n });\n }), true);\n }\n return p;\n }, []);\n};\nexports.findPossibleURLsInNode = findPossibleURLsInNode;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildGatsbyImageDataBaseArgs = void 0;\nvar js_core_1 = __importDefault(require(\"@imgix/js-core\"));\nvar generateImageSource = function (client) { return function (imageName, width, height, format, fit, opts) {\n if (opts === void 0) { opts = {}; }\n var src = client.buildURL(imageName, __assign(__assign({}, (typeof opts.imgixParams === 'object' && opts.imgixParams)), { w: width, h: height }));\n return { width: width, height: height, format: 'auto', src: src };\n}; };\nvar buildGatsbyImageDataBaseArgs = function (_a) {\n var _b;\n var resolverArgs = _a.resolverArgs, url = _a.url, _c = _a.dimensions, width = _c.width, height = _c.height, defaultParams = _a.defaultParams, imgixClient = _a.imgixClient;\n return (__assign(__assign({}, resolverArgs), { pluginName: \"@imgix/gatsby\", filename: url, sourceMetadata: { width: width, height: height, format: 'auto' }, \n // TODO: use breakpoints helper from gatsby-plugin-image hook\n breakpoints: (_b = resolverArgs.breakpoints) !== null && _b !== void 0 ? _b : js_core_1.default.targetWidths(resolverArgs.srcSetMinWidth, resolverArgs.srcSetMaxWidth, resolverArgs.widthTolerance), formats: ['auto'], generateImageSource: generateImageSource(imgixClient), options: {\n imgixParams: __assign(__assign({}, defaultParams), resolverArgs.imgixParams),\n } }));\n};\nexports.buildGatsbyImageDataBaseArgs = buildGatsbyImageDataBaseArgs;\n//# sourceMappingURL=buildGatsbyImageDataBaseArgs.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createImgixBase64FieldConfig = void 0;\nvar pipeable_1 = require(\"fp-ts/pipeable\");\nvar TE = __importStar(require(\"fp-ts/TaskEither\"));\nvar fetchBase64Image_1 = require(\"../../api/fetchBase64Image\");\nvar utils_1 = require(\"../../common/utils\");\nfunction createImgixBase64FieldConfig(_a) {\n var resolveUrl = _a.resolveUrl, cache = _a.cache;\n return {\n type: 'String!',\n resolve: function (obj) {\n return (0, pipeable_1.pipe)(obj, (0, utils_1.taskEitherFromSourceDataResolver)(resolveUrl), TE.chain((0, fetchBase64Image_1.fetchImgixBase64Image)(cache)), TE.getOrElse(function (e) {\n throw e;\n }))();\n },\n };\n}\nexports.createImgixBase64FieldConfig = createImgixBase64FieldConfig;\n//# sourceMappingURL=createImgixBase64FieldConfig.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createImgixFixedSchemaFieldConfig = exports.createImgixFixedFieldConfig = exports.DEFAULT_FIXED_WIDTH = void 0;\nvar Do_1 = require(\"fp-ts-contrib/lib/Do\");\nvar function_1 = require(\"fp-ts/function\");\nvar T = __importStar(require(\"fp-ts/Task\"));\nvar TE = __importStar(require(\"fp-ts/TaskEither\"));\nvar createExternalHelper_1 = require(\"../../common/createExternalHelper\");\nvar fpTsUtils_1 = require(\"../../common/fpTsUtils\");\nvar utils_1 = require(\"../../common/utils\");\nvar graphqlTypes_1 = require(\"./graphqlTypes\");\nvar objectBuilders_1 = require(\"./objectBuilders\");\nvar resolveDimensions_1 = require(\"./resolveDimensions\");\nexports.DEFAULT_FIXED_WIDTH = 8192;\nvar createImgixFixedFieldConfig = function (_a) {\n var imgixClient = _a.imgixClient, resolveUrl = _a.resolveUrl, _b = _a.resolveWidth, resolveWidth = _b === void 0 ? function () { return undefined; } : _b, _c = _a.resolveHeight, resolveHeight = _c === void 0 ? function () { return undefined; } : _c, cache = _a.cache, defaultParams = _a.defaultParams, type = _a.type, paramsInputType = _a.paramsInputType;\n return ({\n type: type,\n description: \"Should be used to generate fixed-width images (i.e. the size of the image doesn't change when the size of the browser changes, and are \\\"fixed\\\"). Returns data compatible with gatsby-image. Instead of accessing this data directly, the GatsbySourceImgixFixed fragment should be used. See the project's README for more information.\",\n args: {\n width: {\n type: 'Int',\n description: \"The fixed image width to render, in px.\",\n defaultValue: exports.DEFAULT_FIXED_WIDTH,\n },\n height: {\n type: 'Int',\n description: \"The fixed image height to render, in px.\",\n },\n quality: {\n type: 'Int',\n description: \"The image quality to use for compression. Range: 0-100, with 100 being highest quality. This setting is not recommended as the quality is already optimized by decreasing quality as the dpr increases to reduce image size while retaining visual quality.\",\n },\n imgixParams: {\n type: paramsInputType,\n description: \"The imgix parameters (transformations) to apply to the image. The full set of imgix params can be explored here: https://docs.imgix.com/apis/url\",\n defaultValue: {},\n },\n placeholderImgixParams: {\n type: paramsInputType,\n description: \"Any imgix parameters to use only for the blur-up/placeholder image. The full set of imgix params can be explored here: https://docs.imgix.com/apis/url\",\n defaultValue: {},\n },\n },\n resolve: function (rootValue, args) {\n return (0, function_1.pipe)((0, Do_1.Do)(TE.taskEither)\n .let('rootValue', rootValue)\n .let('modifiedArgs', __assign(__assign({}, args), { imgixParams: (0, graphqlTypes_1.unTransformParams)(args.imgixParams) }))\n .sequenceSL(function (_a) {\n var rootValue = _a.rootValue;\n return ({\n url: (0, utils_1.resolveUrlFromSourceData)(resolveUrl)(rootValue),\n manualWidth: (0, function_1.pipe)(rootValue, (0, utils_1.taskEitherFromSourceDataResolver)(resolveWidth), fpTsUtils_1.TaskOptionFromTE, TE.fromTask),\n manualHeight: (0, function_1.pipe)(rootValue, (0, utils_1.taskEitherFromSourceDataResolver)(resolveHeight), fpTsUtils_1.TaskOptionFromTE, TE.fromTask),\n });\n })\n .bindL('dimensions', function (_a) {\n var url = _a.url, manualWidth = _a.manualWidth, manualHeight = _a.manualHeight;\n return (0, resolveDimensions_1.resolveDimensions)({\n url: url,\n manualHeight: manualHeight,\n manualWidth: manualWidth,\n cache: cache,\n client: imgixClient,\n });\n })\n .return(function (_a) {\n var url = _a.url, modifiedArgs = _a.modifiedArgs, _b = _a.dimensions, width = _b.width, height = _b.height;\n return (0, objectBuilders_1.buildImgixFixed)({\n client: imgixClient,\n url: url,\n sourceWidth: width,\n sourceHeight: height,\n args: modifiedArgs,\n defaultParams: defaultParams,\n defaultPlaceholderParams: {}, // TODO: implement\n });\n }), TE.getOrElseW(function () { return T.of(undefined); }))();\n },\n });\n};\nexports.createImgixFixedFieldConfig = createImgixFixedFieldConfig;\nexports.createImgixFixedSchemaFieldConfig = (0, createExternalHelper_1.createExternalHelper)(exports.createImgixFixedFieldConfig);\n//# sourceMappingURL=createImgixFixedFieldConfig.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImgixPlaceholderType = exports.gatsbySourceImgixUrlFieldType = exports.unTransformParams = exports.createImgixFixedType = exports.getImgixFluidType = exports.createImgixFluidType = exports.ImgixParamsInputType = void 0;\nvar camel_case_1 = require(\"camel-case\");\nvar parameters_json_1 = __importDefault(require(\"imgix-url-params/dist/parameters.json\"));\nvar createImgixBase64FieldConfig_1 = require(\"./createImgixBase64FieldConfig\");\nvar ImgixParamsInputType = function (_a) {\n var name = _a.name;\n return ({\n name: name,\n fields: Object.keys(parameters_json_1.default.parameters).reduce(function (fields, param) {\n var spec = parameters_json_1.default.parameters[param];\n // The param name is camel-cased here to appease the GraphQL field\n // requirements. This will need to be reversed with param-case when the\n // URL is constructed in `buildImgixUrl`.\n var name = (0, camel_case_1.camelCase)(param);\n var expects = spec.expects;\n var expectsTypes = Array.from(new Set(expects.map(function (expect) { return expect.type; })));\n var type = expectsTypes.every(function (type) { return type === 'integer'; })\n ? 'Int'\n : expectsTypes.every(function (type) {\n return type === 'integer' || type === 'unit_scalar' || type === 'number';\n })\n ? 'Float'\n : expectsTypes.every(function (type) { return type === 'boolean'; })\n ? 'Boolean'\n : 'String';\n fields[name] = {\n type: type,\n description: spec.short_description +\n // Ensure the description ends with a period.\n (spec.short_description.slice(-1) === '.' ? '' : '.'),\n };\n var field = fields[name];\n // Add the default value as part of the description. Setting it as a\n // GraphQL default value will automatically assign it in the final URL.\n // Doing so would result in a huge number of unwanted params.\n if ('default' in spec)\n field.description =\n field.description + \" Default: `\".concat(spec.default, \"`.\");\n // Add Imgix documentation URL as part of the description.\n if ('url' in spec)\n field.description = field.description + \" [See docs](\".concat(spec.url, \").\");\n // Create aliased fields.\n if ('aliases' in spec)\n for (var _i = 0, _a = spec.aliases; _i < _a.length; _i++) {\n var alias = _a[_i];\n fields[(0, camel_case_1.camelCase)(alias)] = __assign(__assign({}, field), { description: \"Alias for `\".concat(name, \"`.\") });\n }\n return fields;\n }, {}),\n });\n};\nexports.ImgixParamsInputType = ImgixParamsInputType;\nvar createBase64ConfigWithResolver = function (cache) {\n return (0, createImgixBase64FieldConfig_1.createImgixBase64FieldConfig)({\n resolveUrl: function (obj) { return obj.base64; },\n cache: cache,\n });\n};\nvar createImgixFluidType = function (_a) {\n var cache = _a.cache, name = _a.name;\n return ({\n name: name,\n fields: {\n base64: createBase64ConfigWithResolver(cache),\n src: { type: 'String!' },\n srcSet: { type: 'String!' },\n srcWebp: { type: 'String!' },\n srcSetWebp: { type: 'String!' },\n sizes: { type: 'String!' },\n aspectRatio: { type: 'Float!' },\n },\n });\n};\nexports.createImgixFluidType = createImgixFluidType;\nvar fluidType;\nvar getImgixFluidType = function (args) {\n if (!fluidType) {\n fluidType = exports.createImgixFluidType.apply(void 0, args);\n }\n return fluidType;\n};\nexports.getImgixFluidType = getImgixFluidType;\nvar createImgixFixedType = function (_a) {\n var name = _a.name, cache = _a.cache;\n return ({\n name: name,\n fields: {\n base64: createBase64ConfigWithResolver(cache),\n src: { type: 'String!' },\n srcSet: { type: 'String!' },\n srcWebp: { type: 'String!' },\n srcSetWebp: { type: 'String!' },\n sizes: { type: 'String!' },\n width: { type: 'Int!' },\n height: { type: 'Int!' },\n },\n });\n};\nexports.createImgixFixedType = createImgixFixedType;\nvar unTransformParams = function (params) {\n // look for uppercase chars, replace with lowercase + `-`\n return Object.entries(params).reduce(function (p, _a) {\n var _b;\n var k = _a[0], v = _a[1];\n var transformedKey = k.replace(/[A-Z]/, function (c) { return \"-\".concat(c.toLowerCase()); });\n return __assign(__assign({}, p), (_b = {}, _b[transformedKey] = v, _b));\n }, {});\n};\nexports.unTransformParams = unTransformParams;\nexports.gatsbySourceImgixUrlFieldType = 'String';\nvar ImgixPlaceholderType = function (name) { return ({\n name: name,\n values: {\n DOMINANT_COLOR: { value: \"dominantColor\" },\n BLURRED: { value: \"blurred\" },\n NONE: { value: \"none\" },\n },\n}); };\nexports.ImgixPlaceholderType = ImgixPlaceholderType;\n//# sourceMappingURL=graphqlTypes.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildImgixFixed = exports.buildFluidObject = void 0;\nvar ramda_1 = require(\"ramda\");\nvar log_1 = require(\"../../common/log\");\nvar createImgixFixedFieldConfig_1 = require(\"./createImgixFixedFieldConfig\");\nvar parseAspectRatioFloatFromString = (0, ramda_1.pipe)((0, ramda_1.split)(':'), ramda_1.head, function (v) { return parseInt(v); });\nvar DEFAULT_LQIP_PARAMS = { w: 20, blur: 15, q: 20 };\nvar buildFluidObject = function (_a) {\n var client = _a.client, url = _a.url, sourceWidth = _a.sourceWidth, sourceHeight = _a.sourceHeight, args = _a.args, defaultParams = _a.defaultParams, defaultPlaceholderParams = _a.defaultPlaceholderParams;\n var maxWidthAndHeightSet = args.maxHeight != null && args.maxWidth != null;\n var aspectRatio = (function () {\n if (args.imgixParams.ar != null) {\n return parseAspectRatioFloatFromString(args.imgixParams.ar);\n }\n if (args.maxHeight != null && args.maxWidth != null) {\n return args.maxWidth / args.maxHeight;\n }\n return sourceWidth / sourceHeight;\n })();\n var maxWidth = args.maxWidth;\n var imgixParams = __assign(__assign(__assign({ fit: 'crop' }, defaultParams), args.imgixParams), (maxWidthAndHeightSet && {\n ar: \"\".concat(aspectRatio, \":1\"),\n }));\n // This base64 URL will be resolved by this resolver, and then be resolved again by the base64 resolver which is set on the field. See createImgixBase64FieldConfig\n var base64 = client.buildURL(url, __assign(__assign(__assign(__assign({}, DEFAULT_LQIP_PARAMS), defaultPlaceholderParams), args.imgixParams), args.placeholderImgixParams));\n var srcImgixParams = __assign(__assign({}, imgixParams), { w: maxWidth, h: args.maxHeight });\n var src = client.buildURL(url, srcImgixParams);\n var srcWebp = client.buildURL(url, __assign(__assign({}, srcImgixParams), { fm: 'webp' }));\n var srcsetOptions = {\n maxWidth: maxWidth,\n widths: args.srcSetBreakpoints,\n };\n var srcsetImgixParams = imgixParams;\n var srcset = client.buildSrcSet(url, srcsetImgixParams, srcsetOptions);\n var srcsetWebp = client.buildSrcSet(url, __assign(__assign({}, srcsetImgixParams), { fm: 'webp' }), srcsetOptions);\n return {\n base64: base64,\n aspectRatio: aspectRatio,\n src: src,\n srcWebp: srcWebp,\n srcSet: srcset,\n srcSetWebp: srcsetWebp,\n sizes: '(min-width: 8192px) 8192px, 100vw',\n };\n};\nexports.buildFluidObject = buildFluidObject;\nfunction buildImgixFixed(_a) {\n var client = _a.client, url = _a.url, sourceWidth = _a.sourceWidth, sourceHeight = _a.sourceHeight, args = _a.args, defaultParams = _a.defaultParams, defaultPlaceholderParams = _a.defaultPlaceholderParams;\n var aspectRatio = (function () {\n if (args.imgixParams.ar != null) {\n return parseAspectRatioFloatFromString(args.imgixParams.ar);\n }\n if (args.height != null && args.width != null) {\n return args.width / args.height;\n }\n return sourceWidth / sourceHeight;\n })();\n (0, log_1.log)(args.width, args.height, aspectRatio, Math.round(args.width / aspectRatio));\n var _b = (function () {\n if (args.width != null && args.height != null) {\n return { width: args.width, height: args.height };\n }\n else if (args.width != null) {\n return {\n width: args.width,\n height: Math.round(args.width / aspectRatio),\n };\n }\n else if (args.height != null) {\n return {\n width: Math.round(args.height * aspectRatio),\n height: args.height,\n };\n }\n else {\n return {\n width: createImgixFixedFieldConfig_1.DEFAULT_FIXED_WIDTH,\n height: Math.round(createImgixFixedFieldConfig_1.DEFAULT_FIXED_WIDTH / aspectRatio),\n };\n }\n })(), width = _b.width, height = _b.height;\n var imgixParams = __assign(__assign(__assign({ fit: 'crop' }, defaultParams), args.imgixParams), { w: width, h: height });\n var base64 = client.buildURL(url, __assign(__assign(__assign(__assign({}, DEFAULT_LQIP_PARAMS), defaultPlaceholderParams), args.imgixParams), args.placeholderImgixParams));\n var src = client.buildURL(url, imgixParams);\n var srcWebp = client.buildURL(url, __assign(__assign({}, imgixParams), { fm: 'webp' }));\n var srcsetOptions = {\n // maxWidth,\n // widths: args.srcSetBreakpoints,\n };\n var srcsetImgixParams = imgixParams;\n var srcset = client.buildSrcSet(url, __assign({}, srcsetImgixParams), srcsetOptions);\n var srcsetWebp = client.buildSrcSet(url, __assign(__assign({}, srcsetImgixParams), { fm: 'webp' }), srcsetOptions);\n (0, log_1.trace)('buildFixedImage output')({\n base64: base64,\n width: width,\n height: height,\n src: src,\n srcWebp: srcWebp,\n srcSet: srcset,\n srcSetWebp: srcsetWebp,\n });\n return {\n base64: base64,\n width: width,\n height: height,\n src: src,\n srcWebp: srcWebp,\n srcSet: srcset,\n srcSetWebp: srcsetWebp,\n };\n}\nexports.buildImgixFixed = buildImgixFixed;\n//# sourceMappingURL=objectBuilders.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveDimensions = void 0;\nvar Apply_1 = require(\"fp-ts/Apply\");\nvar O = __importStar(require(\"fp-ts/Option\"));\nvar pipeable_1 = require(\"fp-ts/pipeable\");\nvar TE = __importStar(require(\"fp-ts/TaskEither\"));\nvar fetchImgixMetadata_1 = require(\"../../api/fetchImgixMetadata\");\nvar log_1 = require(\"../../common/log\");\nvar sequenceTTE = (0, Apply_1.sequenceT)(TE.taskEither);\nvar sequenceSO = (0, Apply_1.sequenceS)(O.option);\nvar log = (0, log_1.createLogger)('resolveDimensions');\nvar resolveDimensions = function (_a) {\n var url = _a.url, manualHeight = _a.manualHeight, manualWidth = _a.manualWidth, cache = _a.cache, client = _a.client;\n var WidthHeightTE = (0, pipeable_1.pipe)(sequenceSO({ width: manualWidth, height: manualHeight }), O.fold(function () { return TE.left(new Error(\"Couldn't find manual width on obj\")); }, TE.right));\n return (0, pipeable_1.pipe)(WidthHeightTE, TE.map((0, log_1.trace)('manual width and height', log)), TE.orElse(function () {\n return (0, pipeable_1.pipe)(url, (0, fetchImgixMetadata_1.fetchImgixMetadata)(cache, client), TE.map((0, log_1.trace)('fetchImgixMetadata result', log)), TE.map(function (_a) {\n var PixelWidth = _a.PixelWidth, PixelHeight = _a.PixelHeight;\n return ({\n width: PixelWidth,\n height: PixelHeight,\n });\n }));\n }));\n};\nexports.resolveDimensions = resolveDimensions;\n//# sourceMappingURL=resolveDimensions.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildGatsbyImageDataObject = exports.buildFixedObject = exports.buildFluidObject = void 0;\nvar gatsby_plugin_image_1 = require(\"gatsby-plugin-image\");\nvar imgix_js_core_wrapper_1 = require(\"./common/imgix-js-core-wrapper\");\nvar buildGatsbyImageDataBaseArgs_1 = require(\"./modules/gatsby-plugin/buildGatsbyImageDataBaseArgs\");\nvar internalObjectBuilders = __importStar(require(\"./modules/gatsby-plugin/objectBuilders\"));\nvar buildFluidObject = function (_a) {\n var imgixClientOptions = _a.imgixClientOptions, args = __rest(_a, [\"imgixClientOptions\"]);\n return internalObjectBuilders.buildFluidObject(__assign(__assign({}, args), { client: (0, imgix_js_core_wrapper_1.createImgixURLBuilder)(imgixClientOptions) }));\n};\nexports.buildFluidObject = buildFluidObject;\nvar buildFixedObject = function (_a) {\n var imgixClientOptions = _a.imgixClientOptions, args = __rest(_a, [\"imgixClientOptions\"]);\n return internalObjectBuilders.buildImgixFixed(__assign(__assign({}, args), { client: (0, imgix_js_core_wrapper_1.createImgixURLBuilder)(imgixClientOptions) }));\n};\nexports.buildFixedObject = buildFixedObject;\nvar buildGatsbyImageDataObject = function (_a) {\n var imgixClientOptions = _a.imgixClientOptions, args = __rest(_a, [\"imgixClientOptions\"]);\n var imgixClient = (0, imgix_js_core_wrapper_1.createImgixURLBuilder)(imgixClientOptions);\n var generateImageDataArgs = (0, buildGatsbyImageDataBaseArgs_1.buildGatsbyImageDataBaseArgs)(__assign(__assign({}, args), { imgixClient: imgixClient }));\n return (0, gatsby_plugin_image_1.generateImageData)(generateImageDataArgs);\n};\nexports.buildGatsbyImageDataObject = buildGatsbyImageDataObject;\n//# sourceMappingURL=pluginHelpers.browser.js.map","/* 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, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n duotone?: {\n highlight: string\n shadow: string\n opacity?: number\n }\n grayscale?: boolean\n rotate?: number\n trim?: number\n }\n jpgOptions?: Record\n pngOptions?: Record\n webpOptions?: Record\n avifOptions?: Record\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array\n 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 // @ts-ignore typescript can't find the module for some reason ¯\\_(ツ)_/¯\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 if (layout === `constrained`) {\n return (\n
\n \n
\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent =\n function LayoutWrapper({ children, ...props }) {\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 =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n \n )\n } else {\n return
\n }\n }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n fallback: PropTypes.string,\n sources: Picture.propTypes?.sources,\n alt: function (props, propName, componentName): Error | null {\n if (!props[propName]) {\n return null\n }\n 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 =\n 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 {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n const cleanedImages: IGatsbyImageData[\"images\"] = {\n fallback: undefined,\n sources: [],\n }\n if (images.fallback) {\n cleanedImages.fallback = {\n ...images.fallback,\n srcSet: images.fallback.srcSet\n ? removeNewLines(images.fallback.srcSet)\n : undefined,\n }\n }\n\n if (images.sources) {\n cleanedImages.sources = images.sources.map(source => {\n return {\n ...source,\n srcSet: removeNewLines(source.srcSet),\n }\n })\n }\n\n return (\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 const cacheKey = JSON.stringify(this.props.image.images)\n this.lazyHydrator = lazyHydrate(\n {\n image: props.image.images,\n isLoading: state.isLoading || hasImageLoaded(cacheKey),\n isLoaded: state.isLoaded || hasImageLoaded(cacheKey),\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 =\n function GatsbyImage(props) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n return null\n }\n\n if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n console.warn(\n `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n )\n }\n 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 _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator = (\n props: IStaticImageProps & IPrivateProps,\n propName: keyof IStaticImageProps & IPrivateProps,\n ...rest\n) => {\n if (\n props.layout === `fullWidth` &&\n (propName === `width` || propName === `height`) &&\n props[propName]\n ) {\n return new Error(\n `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n )\n }\n return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n src: PropTypes.string.isRequired,\n alt: altValidator,\n width: checkDimensionProps,\n height: checkDimensionProps,\n sizes: PropTypes.string,\n layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n if (props.layout === undefined) {\n return undefined\n }\n if (validLayouts.has(props.layout)) {\n return undefined\n }\n\n return new Error(\n `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n )\n },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n GatsbyImage as GatsbyImageBrowser,\n IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n _getStaticImage,\n propTypes,\n IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","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\nconst preserveCamelCase = string => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst character = string[i];\n\n\t\tif (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {\n\t\t\tstring = string.slice(0, i) + '-' + string.slice(i);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\ti++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(character) && character.toLowerCase() === character) {\n\t\t\tstring = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst camelCase = (input, options) => {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = Object.assign({\n\t\tpascalCase: false\n\t}, options);\n\n\tconst postProcess = x => options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x;\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tif (input.length === 1) {\n\t\treturn options.pascalCase ? input.toUpperCase() : input.toLowerCase();\n\t}\n\n\tconst hasUpperCase = input !== input.toLowerCase();\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input);\n\t}\n\n\tinput = input\n\t\t.replace(/^[_.\\- ]+/, '')\n\t\t.toLowerCase()\n\t\t.replace(/[_.\\- ]+(\\w|$)/g, (_, p1) => p1.toUpperCase())\n\t\t.replace(/\\d+(\\w|$)/g, m => m.toUpperCase());\n\n\treturn postProcess(input);\n};\n\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;\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, true);\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\nvar _gatsby = require(\"gatsby\");\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 * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = function _default(pathname, localizedManifests, shouldPrependPathPrefix) {\n if (shouldPrependPathPrefix === void 0) {\n shouldPrependPathPrefix = false;\n }\n\n var defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n var localizedManifest = localizedManifests.find(function (app) {\n var startUrl = app.start_url;\n\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n\n return pathname.startsWith(startUrl);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\" + localizedManifest.lang + \".webmanifest\";\n};\n\nexports.default = _default;","import * as pkg from \"../package.json\";\n\n/**\n * Version of the gatsby-plugin-prismic-preview plugin. This version may be\n * displayed publicly to help debug errors.\n */\nexport const VERSION = pkg.version;\n\n/**\n * Symbol used to identify if a value is a proxy. Attach this to proxies (done\n * automatically via `lib/createGetProxy`).\n */\nexport const IS_PROXY = Symbol(\"IS_PROXY\");\n\n/**\n * Default value for the `toolbar` plugin option which determines which version\n * of the Prismic Toolbar to render.\n */\nexport const DEFAULT_TOOLBAR = \"new\";\n\n/**\n * Default value for the `promptForAccessToken` plugin option which determines\n * if an editor should be prompted for an access token if one has not already\n * been provided.\n */\nexport const DEFAULT_PROMPT_FOR_ACCESS_TOKEN = true;\n\n/**\n * Default page size for Prismic API query requests. This is the maximum allowed\n * page size to minimize the number of requests.\n */\nexport const QUERY_PAGE_SIZE = 100;\n\n/**\n * Template used to generate a hash for a collection of type paths.\n */\nexport const TYPE_PATHS_BASENAME_TEMPLATE = \"type-paths-store %s\";\n\n/**\n * Identifier used to store plugin options on `window` to pass to other parts of\n * the preview system.\n */\nexport const WINDOW_PLUGIN_OPTIONS_KEY =\n\t\"__GATSBY_PLUGIN_PRISMIC_PREVIEWS_PLUGIN_OPTIONS__\";\n\n/**\n * Identifier used to store plugin options on `window` to pass to other parts of\n * the preview system.\n */\nexport const WINDOW_PROVIDER_PRESENCE_KEY =\n\t\"__GATSBY_PLUGIN_PRISMIC_PREVIEWS_PROVIDER_PRESENCE__\";\n\n/**\n * Name of the locally stored Prismic repository access token.\n */\nexport const COOKIE_ACCESS_TOKEN_NAME =\n\t\"gatsby-plugin-prismic-previews.%s.accessToken\";\n\n/**\n * Template used when reporting which includes a namespace.\n */\nexport const REPORTER_TEMPLATE = \"gatsby-plugin-prismic-previews(%s) - %s\";\n\n/**\n * Template used to report the location of the serialized type paths store.\n */\nexport const WROTE_TYPE_PATHS_TO_FS_MSG = \"Wrote type paths store to %s\";\n\n/**\n * Message used when type paths cannot be found for a repository.\n */\nexport const TYPE_PATHS_MISSING_NODE_MSG = `Type paths for this repository could not be found. Check that you have gatsby-source-prismic configured with the same repository name and type prefix (if used) in gatsby-config.js.`;\n\n/**\n * Message used when serialized type paths cannot be found for a repository.\n */\nexport const TYPE_PATHS_MISSING_BROWSER_MSG =\n\t\"The type paths store for this repository could not be found.\";\n\n/**\n * Message used when a field does not match its expected type.\n */\nexport const FIELD_VALUE_TYPE_PATH_MISMATCH_MSG =\n\t'Field value at \"%s\" does not match the type declared in its type path: %s';\n\n/**\n * Message used when a repository configuration is not provided.\n */\nexport const MISSING_REPOSITORY_CONFIG_MSG =\n\t'A configuration object could not be found for repository \"%s\". Check that the repository is configured in your app\\'s %s.';\n\n/**\n * Message used when repository plugin options are not provided.\n */\nexport const MISSING_PLUGIN_OPTIONS_MSG =\n\t'Plugin options could not be found for repository \"%s\". Check that the repository is configured in your app\\'s gatsby-config.js';\n\n/**\n * Message used when the required context provider is not added.\n */\nexport const MISSING_PROVIDER_MSG = `A was not found in your app. Add to your app's gatsby-browser.js and gatsby-ssr.js wrapRootElement exports.\n\nSee: https://www.gatsbyjs.com/docs/reference/config-files/gatsby-browser/#wrapRootElement\nSee: https://www.gatsbyjs.com/docs/reference/config-files/gatsby-ssr/#wrapRootElement`;\n","import * as gatsby from \"gatsby\";\n\nimport { PluginOptions } from \"./types\";\nimport { WINDOW_PLUGIN_OPTIONS_KEY } from \"./constants\";\n\n/**\n * Called when the Gatsby browser runtime first starts.\n *\n * @see https://www.gatsbyjs.com/docs/reference/config-files/gatsby-browser/#onClientEntry\n */\nexport const onClientEntry: NonNullable =\n\t(_gatsbyContext, pluginOptions: PluginOptions) => {\n\t\tif (typeof window !== \"undefined\") {\n\t\t\twindow[WINDOW_PLUGIN_OPTIONS_KEY] = {\n\t\t\t\t...window[WINDOW_PLUGIN_OPTIONS_KEY],\n\t\t\t\t[pluginOptions.repositoryName]: pluginOptions,\n\t\t\t};\n\n\t\t\tif (pluginOptions.toolbar === \"legacy\") {\n\t\t\t\twindow.prismic = {\n\t\t\t\t\t...window.prismic,\n\t\t\t\t\tendpoint: pluginOptions.apiEndpoint,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t};\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}","import * as gatsby from 'gatsby'\nimport * as pc from 'pascal-case'\nimport * as cc from 'camel-case'\n\n/**\n * Converts a collection of strings to a single Pascal cased string.\n *\n * @param parts Strings to convert into a single Pascal cased string.\n *\n * @return Pascal cased string version of `parts`.\n */\nconst pascalCase = (...parts: (string | null | undefined)[]): string =>\n pc.pascalCase(parts.filter((p) => p != null).join(' '), {\n transform: pc.pascalCaseTransformMerge,\n })\n\n/**\n * Converts a collection of strings to a single camel cased string.\n *\n * @param parts Strings to convert into a single camel cased string.\n *\n * @return Camel cased string version of `parts`.\n */\nconst camelCase = (...parts: (string | null | undefined)[]): string =>\n cc.camelCase(parts.filter((p) => p != null).join(' '), {\n transform: cc.camelCaseTransformMerge,\n })\n\n/**\n * Casts a value to an array. If the input is an array, the input is returned as\n * is. Otherwise, the input is returned as a single element array with the input\n * as its only value.\n *\n * @param input Input that will be casted to an array.\n *\n * @return `input` that is guaranteed to be an array.\n */\nconst castArray = (input: T | T[]): T[] =>\n Array.isArray(input) ? input : [input]\n\n/**\n * Reserved fields for Gatsby nodes.\n */\nconst RESERVED_GATSBY_NODE_FIELDS = [\n 'id',\n 'internal',\n 'fields',\n 'parent',\n 'children',\n] as const\n\ninterface CreateNodeHelpersParams {\n /** Prefix for all nodes. Used as a namespace for node type names. */\n typePrefix: string\n /**\n * Prefix for field names. Used as a namespace for fields that conflict with\n * Gatsby's reserved field names.\n * */\n fieldPrefix?: string\n /** Gatsby's `createNodeId` helper. */\n createNodeId: gatsby.SourceNodesArgs['createNodeId']\n /** Gatsby's `createContentDigest` helper. */\n createContentDigest: gatsby.SourceNodesArgs['createContentDigest']\n}\n\n/**\n * A value that can be converted to a string using `toString()`.\n */\nexport interface Stringable {\n toString(): string\n}\n\n/**\n * A record that can be globally identified using its `id` field.\n */\nexport interface IdentifiableRecord {\n id: Stringable\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any\n}\n\n/**\n * Gatsby node helper functions to aid node creation.\n */\nexport interface NodeHelpers {\n /**\n * Creates a namespaced type name in Pascal case. Nodes created using a\n * `createNodeFactory` function will automatically be namespaced using this\n * function.\n *\n * @param parts Parts of the type name. If more than one string is provided,\n * they will be concatenated in Pascal case.\n *\n * @return Namespaced type name.\n */\n createTypeName: (parts: string | string[]) => string\n\n /**\n * Creates a namespaced field name in camel case. Nodes created using a\n * `createNodeFactory` function will automatically have namespaced fields\n * using this function ONLY if the name conflicts with Gatsby's reserved\n * fields.\n *\n * @param parts Parts of the field name. If more than one string is provided,\n * they will be concatenated in camel case.\n *\n * @return Namespaced field name.\n */\n createFieldName: (parts: string | string[]) => string\n\n /**\n * Creates a deterministic node ID based on the `typePrefix` option provided\n * to `createNodeHelpers` and the provided `parts` argument. Providing the\n * same `parts` will always return the same result.\n *\n * @param parts Strings to globally identify a node within the domain of the\n * node helpers.\n *\n * @return Node ID based on the provided `parts`.\n */\n createNodeId: (parts: string | string[]) => string\n\n /**\n * Creates a function that will convert an identifiable record (one that has\n * an `id` field) to a valid input for Gatsby's `createNode` action.\n *\n * @param nameParts Parts of the type name for the resulting factory. All\n * records called with the resulting function will have a type name based on\n * this parameter.\n *\n * @param options Options to control the resulting function's output.\n *\n * @return A function that converts an identifiable record to a valid input\n * for Gatsby's `createNode` action.\n */\n createNodeFactory: (\n nameParts: string | string[],\n options?: CreateNodeFactoryOptions,\n ) => (node: IdentifiableRecord) => gatsby.NodeInput\n}\n\n/**\n * Options for a node factory.\n */\ntype CreateNodeFactoryOptions = {\n /**\n * Determines if the node's `id` field is unique within all nodes created with\n * this collection of node helpers.\n *\n * If `false`, the ID will be namespaced with the node's type and the\n * `typePrefix` value.\n *\n * If `true`, the ID will not be namespaced with the node's type, but will still\n * be namespaced with the `typePrefix` value.\n *\n * @defaultValue `false`\n */\n idIsGloballyUnique?: boolean\n}\n\n/**\n * Creates Gatsby node helper functions to aid node creation.\n */\nexport const createNodeHelpers = ({\n typePrefix,\n fieldPrefix = typePrefix,\n createNodeId: gatsbyCreateNodeId,\n createContentDigest: gatsbyCreateContentDigest,\n}: CreateNodeHelpersParams): NodeHelpers => {\n const createTypeName = (nameParts: string | string[]): string =>\n pascalCase(typePrefix, ...castArray(nameParts))\n\n const createFieldName = (nameParts: string | string[]): string =>\n camelCase(fieldPrefix, ...castArray(nameParts))\n\n const createNodeId = (nameParts: string | string[]): string =>\n gatsbyCreateNodeId(\n [typePrefix, ...castArray(nameParts)].filter((p) => p != null).join(' '),\n )\n\n const createNodeFactory = (\n nameParts: string | string[],\n { idIsGloballyUnique = false }: CreateNodeFactoryOptions = {},\n ) => (node: IdentifiableRecord): gatsby.NodeInput => {\n const id = idIsGloballyUnique\n ? createNodeId(node.id.toString())\n : createNodeId([...castArray(nameParts), node.id.toString()])\n\n const res = {\n ...node,\n id,\n internal: {\n type: createTypeName(nameParts),\n contentDigest: gatsbyCreateContentDigest(node),\n },\n } as gatsby.NodeInput\n\n for (const reservedField of RESERVED_GATSBY_NODE_FIELDS) {\n if (reservedField in node) {\n res[createFieldName(reservedField)] = node[reservedField]\n }\n }\n\n return res\n }\n\n return {\n createTypeName,\n createFieldName,\n createNodeId,\n createNodeFactory,\n }\n}\n","import * as gatsby from \"gatsby\";\nimport * as gatsbyFs from \"gatsby-source-filesystem\";\nimport * as imgixGatsby from \"@imgix/gatsby\";\nimport * as prismic from \"@prismicio/client\";\nimport * as prismicH from \"@prismicio/helpers\";\nimport * as prismicT from \"@prismicio/types\";\nimport * as prismicCustomTypes from \"@prismicio/custom-types-client\";\nimport * as gqlc from \"graphql-compose\";\nimport * as RTE from \"fp-ts/ReaderTaskEither\";\nimport { NodeHelpers } from \"gatsby-node-helpers\";\n\nimport { Runtime } from \"./runtime\";\n\nexport type Mutable = {\n\t-readonly [P in keyof T]: T[P];\n};\n\nexport type UnknownRecord = Record<\n\tK,\n\tunknown\n>;\n\nexport type IterableElement = TargetIterable extends Iterable<\n\tinfer ElementType\n>\n\t? ElementType\n\t: never;\n\nexport type JoiValidationError = InstanceType<\n\tgatsby.PluginOptionsSchemaArgs[\"Joi\"][\"ValidationError\"]\n>;\n\nexport type PrismicDocumentNodeInput<\n\tTDocument extends prismicT.PrismicDocument = prismicT.PrismicDocument,\n> = TDocument & gatsby.NodeInput & { prismicId: string };\n\nexport enum TypePathKind {\n\tCustomType = \"CustomType\",\n\tSharedSliceVariation = \"SharedSliceVariation\",\n\tField = \"Field\",\n}\n\nexport interface TypePath {\n\tkind: TypePathKind;\n\tpath: string[];\n\ttype: PrismicTypePathType;\n}\n\nexport interface SerializedTypePath extends Omit {\n\tpath: string;\n}\n\nexport type TypePathNode = TypePath & gatsby.Node;\n\nexport type TransformFieldNameFn = (fieldName: string) => string;\n\nexport interface Dependencies {\n\tprismicClient: prismic.Client;\n\tcreateTypes: gatsby.Actions[\"createTypes\"];\n\tcreateNode: gatsby.Actions[\"createNode\"];\n\tbuildObjectType: gatsby.NodePluginSchema[\"buildObjectType\"];\n\tbuildUnionType: gatsby.NodePluginSchema[\"buildUnionType\"];\n\tbuildEnumType: gatsby.NodePluginSchema[\"buildEnumType\"];\n\tbuildScalarType: gatsby.NodePluginSchema[\"buildScalarType\"];\n\tbuildInterfaceType: gatsby.NodePluginSchema[\"buildInterfaceType\"];\n\tgetNode: gatsby.SourceNodesArgs[\"getNode\"];\n\tgetNodes: gatsby.SourceNodesArgs[\"getNodes\"];\n\ttouchNode: gatsby.Actions[\"touchNode\"];\n\tdeleteNode: gatsby.Actions[\"deleteNode\"];\n\tcreateNodeId: gatsby.NodePluginArgs[\"createNodeId\"];\n\tcreateContentDigest: gatsby.NodePluginArgs[\"createContentDigest\"];\n\tschema: gatsby.NodePluginSchema;\n\tcache: gatsby.GatsbyCache;\n\tstore: gatsby.Store;\n\treporter: gatsby.Reporter;\n\treportInfo: gatsby.Reporter[\"info\"];\n\treportWarning: gatsby.Reporter[\"warn\"];\n\treportVerbose: gatsby.Reporter[\"verbose\"];\n\tglobalNodeHelpers: NodeHelpers;\n\tnodeHelpers: NodeHelpers;\n\tpluginOptions: PluginOptions;\n\twebhookBody?: unknown;\n\tcreateRemoteFileNode: typeof gatsbyFs.createRemoteFileNode;\n\ttransformFieldName: TransformFieldNameFn;\n\truntime: Runtime;\n}\n\ntype ShouldDownloadFilesPredicate = (\n\tfield: prismicT.ImageFieldImage | prismicT.LinkToMediaField,\n) => boolean;\n\nexport type UnpreparedPluginOptions = gatsby.PluginOptions & {\n\trepositoryName: string;\n\taccessToken?: string;\n\tapiEndpoint?: string;\n\tcustomTypesApiEndpoint?: string;\n\treleaseID?: string;\n\tgraphQuery?: string;\n\tfetchLinks?: string[];\n\tlang?: string;\n\tpageSize?: number;\n\tlinkResolver?: prismicH.LinkResolverFunction;\n\troutes?: prismic.Route[];\n\thtmlSerializer?: prismicH.HTMLFunctionSerializer | prismicH.HTMLMapSerializer;\n\timageImgixParams?: imgixGatsby.ImgixUrlParams;\n\timagePlaceholderImgixParams?: imgixGatsby.ImgixUrlParams;\n\ttypePrefix?: string;\n\twebhookSecret?: string;\n\tshouldDownloadFiles?:\n\t\t| boolean\n\t\t| ShouldDownloadFilesPredicate\n\t\t| Record;\n\tcreateRemoteFileNode?: typeof gatsbyFs.createRemoteFileNode;\n\ttransformFieldName?: TransformFieldNameFn;\n\tfetch?: prismic.FetchLike & prismicCustomTypes.FetchLike;\n\n\tcustomTypesApiToken?: string;\n\t/**\n\t * A record of all Custom Type API IDs mapped to their models.\n\t *\n\t * @deprecated Use the `customTypeModels` plugin option.\n\t */\n\tschemas?: Record;\n\t/**\n\t * A list of all Custom Types models using the Custom Types API object shape.\n\t */\n\tcustomTypeModels?: prismicT.CustomTypeModel[];\n\t/**\n\t * A list of all Shared Slice models.\n\t */\n\tsharedSliceModels?: prismicT.SharedSliceModel[];\n};\n\nexport type PluginOptions = UnpreparedPluginOptions &\n\tRequired<\n\t\tPick<\n\t\t\tUnpreparedPluginOptions,\n\t\t\t| \"apiEndpoint\"\n\t\t\t| \"customTypeModels\"\n\t\t\t| \"sharedSliceModels\"\n\t\t\t| \"imageImgixParams\"\n\t\t\t| \"imagePlaceholderImgixParams\"\n\t\t\t| \"shouldDownloadFiles\"\n\t\t\t| \"createRemoteFileNode\"\n\t\t\t| \"transformFieldName\"\n\t\t\t| \"fetch\"\n\t\t>\n\t>;\n\nexport type FieldConfigCreator<\n\tTSchema extends prismicT.CustomTypeModelField = prismicT.CustomTypeModelField,\n> = (\n\tpath: string[],\n\tschema: TSchema,\n) => RTE.ReaderTaskEither<\n\tDependencies,\n\tError,\n\tgqlc.ObjectTypeComposerFieldConfigDefinition\n>;\n\nexport type PrismicTypePathType =\n\t| PrismicSpecialType\n\t| prismicT.CustomTypeModelFieldType\n\t| prismicT.CustomTypeModelSliceType;\n\nexport enum PrismicSpecialType {\n\tDocument = \"Document\",\n\tDocumentData = \"DocumentData\",\n\tSharedSliceVariation = \"SharedSliceVariation\",\n\tUnknown = \"Unknown\",\n}\n\nexport interface PrismicAPIDocumentNode\n\textends prismicT.PrismicDocument,\n\t\tgatsby.Node {\n\tprismicId: string;\n}\n\nexport type PrismicWebhookBody =\n\t| PrismicWebhookBodyApiUpdate\n\t| PrismicWebhookBodyTestTrigger;\n\nexport enum PrismicWebhookType {\n\tAPIUpdate = \"api-update\",\n\tTestTrigger = \"test-trigger\",\n}\n\ninterface PrismicWebhookBodyBase {\n\ttype: PrismicWebhookType;\n\tdomain: string;\n\tapiUrl: string;\n\tsecret: string | null;\n}\n\nexport interface PrismicWebhookBodyApiUpdate extends PrismicWebhookBodyBase {\n\ttype: PrismicWebhookType.APIUpdate;\n\tmasterRef?: string;\n\treleases: PrismicWebhookOperations;\n\tmasks: PrismicWebhookOperations;\n\ttags: PrismicWebhookOperations;\n\tdocuments: string[];\n\texperiments?: PrismicWebhookOperations;\n}\n\nexport interface PrismicWebhookBodyTestTrigger extends PrismicWebhookBodyBase {\n\ttype: PrismicWebhookType.TestTrigger;\n}\n\ninterface PrismicWebhookOperations {\n\tupdate?: T[];\n\taddition?: T[];\n\tdeletion?: T[];\n}\n\ninterface PrismicWebhookMask {\n\tid: string;\n\tlabel: string;\n}\n\ninterface PrismicWebhookTag {\n\tid: string;\n}\n\nexport interface PrismicWebhookRelease {\n\tid: string;\n\tref: string;\n\tlabel: string;\n\tdocuments: string[];\n}\n\n/**\n * @deprecated Experiments are no longer supported by Prismic.\n */\ninterface PrismicWebhookExperiment {\n\tid: string;\n\tname: string;\n\tvariations: PrismicWebhookExperimentVariation[];\n}\n\n/**\n * @deprecated Experiments are no longer supported by Prismic.\n */\ninterface PrismicWebhookExperimentVariation {\n\tid: string;\n\tref: string;\n\tlabel: string;\n}\n\nexport type PrismicCustomTypeApiResponse = PrismicCustomTypeApiCustomType[];\n\nexport interface PrismicCustomTypeApiCustomType<\n\tModel extends prismicT.CustomTypeModel = prismicT.CustomTypeModel,\n> {\n\tid: string;\n\tlabel: string;\n\trepeatable: boolean;\n\tjson: Model;\n}\n","/**\n * Symbol used to identify if a value is a proxy. Attach this to proxies (done\n * automatically via `lib/createGetProxy`).\n */\nexport const IS_PROXY = Symbol(\"IS_PROXY\");\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const createGetProxy = (\n\ttarget: T,\n\tget: ProxyHandler[\"get\"],\n): T => {\n\t// @ts-expect-error - We are forcibly adding this \"is proxy\" property\n\ttarget[IS_PROXY] = true;\n\n\treturn new Proxy(target, { get });\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { createGetProxy } from \"../createGetProxy\";\nimport { NormalizeConfig, NormalizerDependencies } from \"../types\";\n\nimport { NormalizedDocumentValue } from \"./document\";\n\nexport type NormalizeAlternateLanguagesConfig = NormalizeConfig<\n\tprismicT.PrismicDocument[\"alternate_languages\"]\n> &\n\tPick;\n\nexport type NormalizedAlternateLanguagesValue = (prismicT.AlternateLanguage & {\n\tdocument?: NormalizedDocumentValue | null;\n\traw: prismicT.AlternateLanguage;\n})[];\n\nexport const alternateLanguages = (\n\tconfig: NormalizeAlternateLanguagesConfig,\n): NormalizedAlternateLanguagesValue => {\n\treturn config.value.map((alternateLanguage) => {\n\t\tconst value = {\n\t\t\t...alternateLanguage,\n\t\t\traw: alternateLanguage,\n\t\t};\n\n\t\treturn createGetProxy(value, (target, prop, receiver) => {\n\t\t\tif (prop === \"document\") {\n\t\t\t\treturn config.getNode(value.id) || null;\n\t\t\t}\n\n\t\t\treturn Reflect.get(target, prop, receiver);\n\t\t});\n\t});\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as prismicH from \"@prismicio/helpers\";\nimport * as gatsby from \"gatsby\";\n\nimport {\n\tNormalizeConfig,\n\tNormalizedValueMap,\n\tNormalizerDependencies,\n} from \"../types\";\nimport { normalize } from \"../normalize\";\nimport {\n\talternateLanguages,\n\tNormalizedAlternateLanguagesValue,\n} from \"./alternateLanguages\";\nimport { NormalizedDocumentDataValue } from \"./documentData\";\n\nexport const isDocument = (\n\tvalue: unknown,\n): value is prismicT.PrismicDocument => {\n\treturn typeof value === \"object\" && value !== null && \"type\" in value;\n};\n\ntype NormalizeDocumentConfig =\n\tNormalizeConfig & NormalizerDependencies;\n\nexport type NormalizedDocumentValue<\n\tValue extends prismicT.PrismicDocument = prismicT.PrismicDocument,\n> = Omit & {\n\t__typename: string;\n\t_previewable: string;\n\tprismicId: string;\n\talternate_languages: NormalizedAlternateLanguagesValue;\n\tdata: NormalizedValueMap;\n\tdataRaw: Value[\"data\"];\n} & gatsby.NodeInput;\n\nexport const document = (\n\tconfig: NormalizeDocumentConfig,\n): NormalizedDocumentValue => {\n\tconst fields = {\n\t\t...config.value,\n\t\t__typename: config.nodeHelpers.createTypeName(config.path),\n\t\t_previewable: config.value.id,\n\t\talternate_languages: alternateLanguages({\n\t\t\t...config,\n\t\t\tvalue: config.value[\"alternate_languages\"],\n\t\t}),\n\t\turl: prismicH.asLink(config.value, config.linkResolver),\n\t\tdata: {},\n\t\tdataRaw: config.value.data,\n\t};\n\n\tif (Object.keys(config.value.data).length > 0) {\n\t\tfields.data = normalize({\n\t\t\t...config,\n\t\t\tvalue: config.value.data,\n\t\t\tpath: [...config.path, \"data\"],\n\t\t}) as NormalizedDocumentDataValue;\n\t}\n\n\treturn config.nodeHelpers.createNodeFactory(config.value.type)(\n\t\tfields,\n\t) as NormalizedDocumentValue;\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport {\n\tNormalizeConfig,\n\tNormalizedValueMap,\n\tNormalizerDependencies,\n} from \"../types\";\nimport { normalize } from \"../normalize\";\n\nexport const isDocumentDataField = (\n\tvalue: unknown,\n): value is prismicT.PrismicDocument[\"data\"] => {\n\treturn typeof value === \"object\" && value !== null;\n};\n\ntype NormalizeDocumentDataConfig<\n\tValue extends prismicT.PrismicDocument[\"data\"],\n> = NormalizeConfig & NormalizerDependencies;\n\nexport type NormalizedDocumentDataValue<\n\tValue extends prismicT.PrismicDocument[\"data\"] = prismicT.PrismicDocument[\"data\"],\n> = NormalizedValueMap;\n\nexport const documentData = (\n\tconfig: NormalizeDocumentDataConfig,\n): NormalizedDocumentDataValue => {\n\tconst result = {} as NormalizedDocumentDataValue;\n\n\tfor (const key in config.value) {\n\t\tconst transformedKey = config.transformFieldName(\n\t\t\tkey,\n\t\t) as keyof NormalizedDocumentDataValue;\n\n\t\tresult[transformedKey] = normalize({\n\t\t\t...config,\n\t\t\tvalue: config.value[key],\n\t\t\tpath: [...config.path, transformedKey as string],\n\t\t});\n\t}\n\n\treturn result;\n};\n","import * as prismicT from \"@prismicio/types\";\nimport { IterableElement } from \"type-fest\";\n\nimport {\n\tNormalizeConfig,\n\tNormalizedValueMap,\n\tNormalizerDependencies,\n} from \"../types\";\nimport { normalize } from \"../normalize\";\n\nexport const isGroupField = (value: unknown): value is prismicT.GroupField => {\n\treturn (\n\t\tArray.isArray(value) &&\n\t\tvalue.every((element) => typeof element === \"object\" && element !== null)\n\t);\n};\n\ntype NormalizeGroupConfig =\n\tNormalizeConfig & NormalizerDependencies;\n\nexport type NormalizedGroupValue<\n\tValue extends prismicT.GroupField = prismicT.GroupField,\n> = NormalizedValueMap>[];\n\nexport const group = (\n\tconfig: NormalizeGroupConfig,\n): NormalizedGroupValue => {\n\treturn config.value.map((element) => {\n\t\tconst result: NormalizedValueMap = {};\n\n\t\tfor (const key in element) {\n\t\t\tconst transformedKey = config.transformFieldName(key);\n\n\t\t\tresult[transformedKey] = normalize({\n\t\t\t\t...config,\n\t\t\t\tvalue: element[key],\n\t\t\t\tpath: [...config.path, transformedKey],\n\t\t\t});\n\t\t}\n\n\t\treturn result;\n\t}) as NormalizedGroupValue;\n};\n","/**\n * Sanitizes an image URL. The following steps are taken:\n *\n * - Replace `+` in filename with a space\n * - Decode the URL\n *\n * @param url - Image URL to sanitize.\n *\n * @returns Sanitized image URL.\n */\n// TODO: Remove once the Prismic API properly handles spaces in filenames\nexport const sanitizeImageURL = (url: string): string =>\n\tdecodeURIComponent(url.replace(/\\+/g, \" \"));\n","import * as prismicT from \"@prismicio/types\";\nimport * as gatsbyImage from \"gatsby-image\";\nimport * as gatsbyPluginImage from \"gatsby-plugin-image\";\nimport * as imgixGatsby from \"@imgix/gatsby\";\nimport * as imgixGatsbyHelpers from \"@imgix/gatsby/dist/pluginHelpers.browser\";\n\nimport { sanitizeImageURL } from \"../../lib/sanitizeImageURL\";\nimport { stripURLQueryParameters } from \"../../lib/stripURLParameters\";\n\nimport { NormalizeConfig, NormalizerDependencies } from \"../types\";\nimport { PRISMIC_API_IMAGE_FIELDS } from \"../../constants\";\n\nconst getURLSearchParams = (url: string): Record => {\n\tconst urlInstance = new URL(url);\n\tconst result: Record = {};\n\n\tfor (const [key, value] of urlInstance.searchParams.entries()) {\n\t\tresult[key] = value;\n\t}\n\n\treturn result;\n};\n\nexport const isImageField = (value: unknown): value is prismicT.ImageField => {\n\t// Unfortunately, we can't check for specific properties here since it's\n\t// possible for the object to be empty if an image was never set.\n\treturn typeof value === \"object\" && value !== null;\n};\n\nexport type NormalizeImageConfig<\n\tValue extends prismicT.ImageField = prismicT.ImageField,\n> = NormalizeConfig &\n\tPick<\n\t\tNormalizerDependencies,\n\t\t\"imageImgixParams\" | \"imagePlaceholderImgixParams\"\n\t>;\n\ntype NormalizedImageBase =\n\tValue extends prismicT.FilledImageFieldImage\n\t\t? Value & {\n\t\t\t\tfixed: gatsbyImage.FixedObject;\n\t\t\t\tfluid: gatsbyImage.FluidObject;\n\t\t\t\tgatsbyImageData: gatsbyPluginImage.IGatsbyImageData;\n\t\t\t\tlocalFile: {\n\t\t\t\t\tpublicURL: Value[\"url\"];\n\t\t\t\t\tchildImageSharp: {\n\t\t\t\t\t\tfixed: gatsbyImage.FixedObject;\n\t\t\t\t\t\tfluid: gatsbyImage.FluidObject;\n\t\t\t\t\t\tgatsbyImageData: gatsbyPluginImage.IGatsbyImageData;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t }\n\t\t: Value extends prismicT.EmptyImageFieldImage\n\t\t? Value & {\n\t\t\t\tfixed: null;\n\t\t\t\tfluid: null;\n\t\t\t\tgatsbyImageData: null;\n\t\t\t\tlocalFile: null;\n\t\t }\n\t\t: never;\n\nexport type NormalizedImageValue =\n\tNormalizedImageBase & {\n\t\tthumbnails: Record>;\n\t};\n\ntype BuildImageFieldConfig = {\n\tvalue: Value;\n\timageImgixParams: imgixGatsby.ImgixUrlParams;\n\timagePlaceholderImgixParams: imgixGatsby.ImgixUrlParams;\n};\n\nconst buildImageField = (\n\tconfig: BuildImageFieldConfig,\n): NormalizedImageBase => {\n\tif (config.value.url) {\n\t\tconst imgixParams = {\n\t\t\t...getURLSearchParams(config.value.url),\n\t\t\t...config.imageImgixParams,\n\t\t};\n\t\tconst placeholderImgixParams = config.imagePlaceholderImgixParams;\n\n\t\tconst url = new URL(config.value.url);\n\n\t\tconst normalizedURL = sanitizeImageURL(\n\t\t\tstripURLQueryParameters(url.toString()),\n\t\t);\n\n\t\tconst populatedUrl = new URL(url.toString());\n\t\tfor (const paramKey in imgixParams) {\n\t\t\tpopulatedUrl.searchParams.set(\n\t\t\t\tparamKey,\n\t\t\t\tString(imgixParams[paramKey as keyof typeof imgixParams]),\n\t\t\t);\n\t\t}\n\n\t\tconst fixed = imgixGatsbyHelpers.buildFixedObject({\n\t\t\turl: normalizedURL,\n\t\t\targs: {\n\t\t\t\twidth: 400,\n\t\t\t\timgixParams,\n\t\t\t\tplaceholderImgixParams,\n\t\t\t},\n\t\t\tsourceWidth: config.value.dimensions.width,\n\t\t\tsourceHeight: config.value.dimensions.height,\n\t\t});\n\n\t\tconst fluid = imgixGatsbyHelpers.buildFluidObject({\n\t\t\turl: normalizedURL,\n\t\t\targs: {\n\t\t\t\tmaxWidth: 800,\n\t\t\t\timgixParams,\n\t\t\t\tplaceholderImgixParams,\n\t\t\t},\n\t\t\tsourceWidth: config.value.dimensions.width,\n\t\t\tsourceHeight: config.value.dimensions.height,\n\t\t});\n\n\t\tconst gatsbyImageData = imgixGatsbyHelpers.buildGatsbyImageDataObject({\n\t\t\turl: normalizedURL,\n\t\t\tdimensions: config.value.dimensions,\n\t\t\tdefaultParams: imgixParams,\n\t\t\tresolverArgs: {},\n\t\t});\n\n\t\treturn {\n\t\t\turl: sanitizeImageURL(populatedUrl.toString()),\n\t\t\talt: config.value.alt,\n\t\t\tcopyright: config.value.copyright,\n\t\t\tdimensions: config.value.dimensions,\n\t\t\tfixed,\n\t\t\tfluid,\n\t\t\tgatsbyImageData,\n\t\t\tlocalFile: {\n\t\t\t\tpublicURL: config.value.url,\n\t\t\t\tchildImageSharp: {\n\t\t\t\t\tfixed,\n\t\t\t\t\tfluid,\n\t\t\t\t\tgatsbyImageData,\n\t\t\t\t},\n\t\t\t},\n\t\t} as NormalizedImageBase;\n\t} else {\n\t\treturn {\n\t\t\turl: null,\n\t\t\talt: null,\n\t\t\tcopyright: null,\n\t\t\tdimensions: null,\n\t\t\tfixed: null,\n\t\t\tgatsbyImageData: null,\n\t\t\tfluid: null,\n\t\t\tlocalFile: null,\n\t\t} as NormalizedImageBase;\n\t}\n};\n\nexport const image = (\n\tconfig: NormalizeImageConfig,\n): NormalizedImageValue => {\n\tconst result = {\n\t\t...buildImageField({\n\t\t\tvalue: config.value,\n\t\t\timageImgixParams: config.imageImgixParams,\n\t\t\timagePlaceholderImgixParams: config.imagePlaceholderImgixParams,\n\t\t}),\n\t\tthumbnails: {},\n\t} as NormalizedImageValue;\n\n\tconst thumbnailNames = Object.keys(config.value).filter(\n\t\t(key) => !PRISMIC_API_IMAGE_FIELDS.includes(key),\n\t);\n\n\tfor (const thumbnailName of thumbnailNames) {\n\t\tresult.thumbnails[thumbnailName as keyof typeof result.thumbnails] =\n\t\t\tbuildImageField({\n\t\t\t\tvalue: config.value[thumbnailName as keyof typeof config.value],\n\t\t\t\timageImgixParams: config.imageImgixParams,\n\t\t\t\timagePlaceholderImgixParams: config.imagePlaceholderImgixParams,\n\t\t\t});\n\t}\n\n\treturn result;\n};\n","import * as O from \"fp-ts/Option\";\nimport { pipe } from \"fp-ts/function\";\n\n/**\n * Removes query parameters from a URL. If the URL is invalid, the input is\n * returned as is.\n *\n * @param url - URL from which to remove query parameters.\n *\n * @returns `url` without query parameters.\n */\nexport const stripURLQueryParameters = (url: string): string =>\n\tpipe(\n\t\tO.tryCatch(() => new URL(url)),\n\t\tO.map((instance) => `${instance.origin}${instance.pathname}`),\n\t\tO.getOrElse(() => url),\n\t);\n","import * as prismicT from \"@prismicio/types\";\nimport * as prismicH from \"@prismicio/helpers\";\n\nimport { PrismicDocumentNodeInput } from \"../../types\";\n\nimport { createGetProxy } from \"../createGetProxy\";\nimport { NormalizeConfig, NormalizerDependencies } from \"../types\";\n\nexport const isLinkField = (value: unknown): value is prismicT.LinkField => {\n\treturn typeof value === \"object\" && (value === null || \"link_type\" in value);\n};\n\nexport type NormalizeLinkConfig<\n\tValue extends prismicT.LinkField = prismicT.LinkField,\n> = NormalizeConfig &\n\tPick;\n\nexport type NormalizedLinkValue = Value & {\n\turl?: string | null;\n\traw: Value;\n\tdocument?: PrismicDocumentNodeInput | null;\n\tlocalFile?: {\n\t\tpublicURL: string;\n\t};\n};\n\nexport const link = (\n\tconfig: NormalizeLinkConfig,\n): NormalizedLinkValue => {\n\tconst value: NormalizedLinkValue = {\n\t\t...config.value,\n\t\turl: prismicH.asLink(config.value, config.linkResolver),\n\t\tlocalFile: undefined,\n\t\traw: config.value,\n\t};\n\n\tif (\n\t\tconfig.value.link_type === prismicT.LinkType.Media &&\n\t\t\"url\" in config.value\n\t) {\n\t\tvalue.localFile = {\n\t\t\tpublicURL: config.value.url,\n\t\t};\n\t}\n\n\treturn createGetProxy(value, (target, prop, receiver) => {\n\t\tif (\n\t\t\tprop === \"document\" &&\n\t\t\tconfig.value.link_type === prismicT.LinkType.Document &&\n\t\t\t\"id\" in config.value &&\n\t\t\t!config.value.isBroken\n\t\t) {\n\t\t\treturn config.getNode(config.value.id) || null;\n\t\t}\n\n\t\treturn Reflect.get(target, prop, receiver);\n\t});\n};\n","import * as prismicH from \"@prismicio/helpers\";\n\nimport {\n\tNormalizeConfig,\n\tNormalizerDependencies,\n\tStructuredTextField,\n} from \"../types\";\n\nexport const isStructuredTextField = (\n\tvalue: unknown,\n): value is StructuredTextField => {\n\t// We must be very loose here. An image element, for example, does not\n\t// contain a `text` property.\n\treturn Array.isArray(value) && value.every((element) => \"type\" in element);\n};\n\nexport type NormalizeStructuredTextConfig<\n\tValue extends StructuredTextField = StructuredTextField,\n> = NormalizeConfig &\n\tPick;\n\nexport type NormalizedStructuredTextValue = {\n\thtml: string;\n\ttext: string;\n\trichText: Value;\n\traw: Value;\n};\n\nexport const structuredText = (\n\tconfig: NormalizeStructuredTextConfig,\n): NormalizedStructuredTextValue => {\n\treturn {\n\t\thtml: prismicH.asHTML(\n\t\t\tconfig.value,\n\t\t\tconfig.linkResolver,\n\t\t\tconfig.htmlSerializer,\n\t\t),\n\t\ttext: prismicH.asText(config.value),\n\t\trichText: config.value,\n\t\traw: config.value,\n\t};\n};\n","import * as prismicT from \"@prismicio/types\";\nimport { IterableElement } from \"type-fest\";\n\nimport {\n\tNormalizeConfig,\n\tNormalizedValueMap,\n\tNormalizerDependencies,\n} from \"../types\";\nimport { normalize } from \"../normalize\";\n\nexport const isSlice = (\n\tvalue: unknown,\n): value is prismicT.Slice | prismicT.SharedSlice => {\n\treturn typeof value === \"object\" && value !== null && \"slice_type\" in value;\n};\n\nexport const isSharedSlice = (\n\tvalue: prismicT.Slice,\n): value is prismicT.SharedSlice => \"variation\" in value;\n\nexport type NormalizeSliceConfig =\n\tNormalizeConfig & NormalizerDependencies;\n\nexport type NormalizedSliceValue<\n\tValue extends prismicT.Slice | prismicT.SharedSlice =\n\t\t| prismicT.Slice\n\t\t| prismicT.SharedSlice,\n> = Value extends prismicT.SharedSlice\n\t? {\n\t\t\t__typename: string;\n\t\t\tid: string;\n\t\t\tslice_type: Value[\"slice_type\"];\n\t\t\tslice_label: Value[\"slice_label\"];\n\t\t\tvariation: string;\n\t\t\tversion: string;\n\t\t\tprimary: NormalizedValueMap;\n\t\t\titems: NormalizedValueMap>[];\n\t }\n\t: {\n\t\t\t__typename: string;\n\t\t\tid: string;\n\t\t\tslice_type: Value[\"slice_type\"];\n\t\t\tslice_label: Value[\"slice_label\"];\n\t\t\tprimary: NormalizedValueMap;\n\t\t\titems: NormalizedValueMap>[];\n\t };\n\nexport const slice = (\n\tconfig: NormalizeSliceConfig,\n): NormalizedSliceValue => {\n\tconst { primary, items, ...value } = config.value;\n\n\tconst result = {\n\t\t...value,\n\t\t__typename: config.nodeHelpers.createTypeName(config.path),\n\t\tid: config.nodeHelpers.createNodeId([\n\t\t\t...config.path,\n\t\t\tJSON.stringify(config.value),\n\t\t]),\n\t\tslice_type: config.value.slice_type,\n\t\tslice_label: config.value.slice_label,\n\t} as unknown as NormalizedSliceValue;\n\t// Yes, using `as unknown as X` is bad practice.\n\t// Yes, you can fix this if you know how to do it.\n\t// Yes, that means you!\n\n\tresult.primary = {} as NormalizedSliceValue[\"primary\"];\n\n\tfor (const key in primary) {\n\t\tconst transformedKey = config.transformFieldName(\n\t\t\tkey,\n\t\t) as keyof NormalizedSliceValue[\"primary\"];\n\n\t\tresult.primary[transformedKey] = normalize({\n\t\t\t...config,\n\t\t\tvalue: config.value.primary[key],\n\t\t\tpath: [...config.path, \"primary\", transformedKey],\n\t\t});\n\t}\n\n\tresult.items = items.map((item) => {\n\t\tconst result = {} as IterableElement;\n\n\t\tfor (const key in item) {\n\t\t\tconst transformedKey = config.transformFieldName(\n\t\t\t\tkey,\n\t\t\t) as keyof IterableElement;\n\n\t\t\tresult[transformedKey] = normalize({\n\t\t\t\t...config,\n\t\t\t\tvalue: item[key],\n\t\t\t\tpath: [...config.path, \"items\", transformedKey],\n\t\t\t});\n\t\t}\n\n\t\treturn result;\n\t});\n\n\treturn result;\n};\n","import * as prismicT from \"@prismicio/types\";\nimport { IterableElement, Simplify } from \"type-fest\";\n\nimport {\n\tNormalizeConfig,\n\tNormalizedValue,\n\tNormalizerDependencies,\n} from \"../types\";\nimport { normalize } from \"../normalize\";\nimport { isSharedSlice, isSlice } from \"./slice\";\n\nexport const isSlices = (value: unknown): value is prismicT.SliceZone => {\n\treturn Array.isArray(value) && value.every((element) => isSlice(element));\n};\n\ntype NormalizeSlicesConfig =\n\tNormalizeConfig & NormalizerDependencies;\n\nexport type NormalizedSlicesValue<\n\tValue extends prismicT.SliceZone = prismicT.SliceZone,\n> = NormalizedValue>>[];\n\nexport const slices = (\n\tconfig: NormalizeSlicesConfig,\n): NormalizedSlicesValue => {\n\treturn config.value.map((element) => {\n\t\treturn normalize({\n\t\t\t...config,\n\t\t\tvalue: element,\n\t\t\tpath: isSharedSlice(element)\n\t\t\t\t? [element.slice_type, element.variation]\n\t\t\t\t: [...config.path, element.slice_type],\n\t\t});\n\t}) as NormalizedSlicesValue;\n};\n","import * as prismicT from \"@prismicio/types\";\n\nimport { PrismicSpecialType } from \"../types\";\n\nimport * as normalizers from \"./normalizers\";\nimport {\n\tNormalizedValue,\n\tStructuredTextField,\n\tNormalizeConfig as BaseNormalizeConfig,\n\tNormalizerDependencies,\n} from \"./types\";\n\nfunction assertType(\n\ttype:\n\t\t| prismicT.CustomTypeModelFieldType\n\t\t| prismicT.CustomTypeModelSliceType\n\t\t| PrismicSpecialType,\n\tguard: (value: unknown) => boolean,\n\tvalue: unknown,\n): asserts value is T {\n\tif (!guard(value)) {\n\t\tthrow new Error(`Value is not expected type ${type}`);\n\t}\n}\n\ntype NormalizeConfig = BaseNormalizeConfig &\n\tNormalizerDependencies;\n\nexport const normalize = (\n\tconfig: NormalizeConfig,\n): NormalizedValue => {\n\tconst type = config.getTypePath(config.path);\n\tif (!type) {\n\t\tthrow new Error(\n\t\t\t`No type for path: ${config.path.join(\n\t\t\t\t\".\",\n\t\t\t)}. Did you register the Custom Type model?`,\n\t\t);\n\t}\n\n\tswitch (type.type) {\n\t\tcase PrismicSpecialType.Document: {\n\t\t\tassertType(\n\t\t\t\tPrismicSpecialType.Document,\n\t\t\t\tnormalizers.isDocument,\n\t\t\t\tconfig.value,\n\t\t\t);\n\n\t\t\treturn normalizers.document({\n\t\t\t\t...config,\n\t\t\t\tvalue: config.value,\n\t\t\t}) as NormalizedValue;\n\t\t}\n\n\t\tcase PrismicSpecialType.DocumentData: {\n\t\t\tassertType(\n\t\t\t\tPrismicSpecialType.DocumentData,\n\t\t\t\tnormalizers.isDocumentDataField,\n\t\t\t\tconfig.value,\n\t\t\t);\n\n\t\t\treturn normalizers.documentData({\n\t\t\t\t...config,\n\t\t\t\tvalue: config.value,\n\t\t\t}) as NormalizedValue;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Group: {\n\t\t\tassertType(\n\t\t\t\tprismicT.CustomTypeModelFieldType.Group,\n\t\t\t\tnormalizers.isGroupField,\n\t\t\t\tconfig.value,\n\t\t\t);\n\n\t\t\treturn normalizers.group({\n\t\t\t\t...config,\n\t\t\t\tvalue: config.value,\n\t\t\t}) as NormalizedValue;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Slices: {\n\t\t\tassertType(\n\t\t\t\tprismicT.CustomTypeModelFieldType.Slices,\n\t\t\t\tnormalizers.isSlices,\n\t\t\t\tconfig.value,\n\t\t\t);\n\n\t\t\treturn normalizers.slices({\n\t\t\t\t...config,\n\t\t\t\tvalue: config.value,\n\t\t\t}) as NormalizedValue;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelSliceType.Slice:\n\t\tcase PrismicSpecialType.SharedSliceVariation: {\n\t\t\tassertType(\n\t\t\t\tprismicT.CustomTypeModelSliceType.Slice,\n\t\t\t\tnormalizers.isSlice,\n\t\t\t\tconfig.value,\n\t\t\t);\n\n\t\t\treturn normalizers.slice({\n\t\t\t\t...config,\n\t\t\t\tvalue: config.value,\n\t\t\t}) as NormalizedValue;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Link: {\n\t\t\tassertType(\n\t\t\t\tprismicT.CustomTypeModelFieldType.Link,\n\t\t\t\tnormalizers.isLinkField,\n\t\t\t\tconfig.value,\n\t\t\t);\n\n\t\t\treturn normalizers.link({\n\t\t\t\tvalue: config.value,\n\t\t\t\tpath: config.path,\n\t\t\t\tgetNode: config.getNode,\n\t\t\t\tlinkResolver: config.linkResolver,\n\t\t\t}) as NormalizedValue;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Image: {\n\t\t\tassertType(\n\t\t\t\tprismicT.CustomTypeModelFieldType.Image,\n\t\t\t\tnormalizers.isImageField,\n\t\t\t\tconfig.value,\n\t\t\t);\n\n\t\t\treturn normalizers.image({\n\t\t\t\tvalue: config.value,\n\t\t\t\tpath: config.path,\n\t\t\t\timageImgixParams: config.imageImgixParams,\n\t\t\t\timagePlaceholderImgixParams: config.imagePlaceholderImgixParams,\n\t\t\t}) as NormalizedValue;\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.StructuredText: {\n\t\t\tassertType(\n\t\t\t\tprismicT.CustomTypeModelFieldType.StructuredText,\n\t\t\t\tnormalizers.isStructuredTextField,\n\t\t\t\tconfig.value,\n\t\t\t);\n\n\t\t\treturn normalizers.structuredText({\n\t\t\t\tvalue: config.value,\n\t\t\t\tpath: config.path,\n\t\t\t\tlinkResolver: config.linkResolver,\n\t\t\t\thtmlSerializer: config.htmlSerializer,\n\t\t\t}) as NormalizedValue;\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn config.value as NormalizedValue;\n\t\t}\n\t}\n};\n","import * as prismicT from \"@prismicio/types\";\nimport * as prismicH from \"@prismicio/helpers\";\nimport * as imgixGatsby from \"@imgix/gatsby\";\nimport * as nodeHelpers from \"gatsby-node-helpers\";\nimport { pipe } from \"fp-ts/function\";\nimport md5 from \"tiny-hashes/md5\";\n\nimport { SerializedTypePath, TransformFieldNameFn, TypePath } from \"../types\";\nimport { normalize } from \"./normalize\";\nimport {\n\tDEFAULT_IMGIX_PARAMS,\n\tDEFAULT_PLACEHOLDER_IMGIX_PARAMS,\n\tGLOBAL_TYPE_PREFIX,\n} from \"../constants\";\nimport { NormalizedValue } from \"./types\";\nimport { SetRequired } from \"type-fest\";\nimport {\n\tcustomTypeModelToTypePaths,\n\tsharedSliceModelToTypePaths,\n} from \"./typePaths\";\nimport { NormalizedDocumentValue } from \"./normalizers\";\nimport { serializeTypePaths } from \"./serializeTypePaths\";\nimport { serializePath } from \"./serializePath\";\n\nconst createNodeId = (input: string): string => md5(input);\nconst createContentDigest = (input: T): string => md5(JSON.stringify(input));\n\nexport type RuntimeConfig = {\n\ttypePrefix?: string;\n\tlinkResolver?: prismicH.LinkResolverFunction;\n\timageImgixParams?: imgixGatsby.ImgixUrlParams;\n\timagePlaceholderImgixParams?: imgixGatsby.ImgixUrlParams;\n\thtmlSerializer?: prismicH.HTMLMapSerializer | prismicH.HTMLFunctionSerializer;\n\ttransformFieldName?: TransformFieldNameFn;\n};\n\ntype SubscriberFn = () => void;\n\nexport const createRuntime = (config: RuntimeConfig = {}): Runtime => {\n\treturn new Runtime(config);\n};\n\nexport class Runtime {\n\tnodes: NormalizedDocumentValue[];\n\ttypePaths: SerializedTypePath[];\n\tsubscribers: SubscriberFn[];\n\n\tconfig: SetRequired<\n\t\tRuntimeConfig,\n\t\t\"imageImgixParams\" | \"imagePlaceholderImgixParams\" | \"transformFieldName\"\n\t>;\n\n\tnodeHelpers: nodeHelpers.NodeHelpers;\n\n\tconstructor(config: RuntimeConfig = {}) {\n\t\tthis.nodes = [];\n\t\tthis.typePaths = [];\n\t\tthis.subscribers = [];\n\n\t\tthis.config = {\n\t\t\t...config,\n\t\t\timageImgixParams: config.imageImgixParams ?? DEFAULT_IMGIX_PARAMS,\n\t\t\timagePlaceholderImgixParams:\n\t\t\t\tconfig.imagePlaceholderImgixParams ?? DEFAULT_PLACEHOLDER_IMGIX_PARAMS,\n\t\t\ttransformFieldName:\n\t\t\t\tconfig.transformFieldName ??\n\t\t\t\t((fieldName: string) => fieldName.replace(/-/g, \"_\")),\n\t\t};\n\n\t\tthis.nodeHelpers = nodeHelpers.createNodeHelpers({\n\t\t\ttypePrefix: [GLOBAL_TYPE_PREFIX, config.typePrefix]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(\" \"),\n\t\t\tfieldPrefix: GLOBAL_TYPE_PREFIX,\n\t\t\tcreateNodeId,\n\t\t\tcreateContentDigest,\n\t\t});\n\t}\n\n\tsubscribe(callback: SubscriberFn): void {\n\t\tthis.subscribers = [...this.subscribers, callback];\n\t}\n\n\tunsubscribe(callback: SubscriberFn): void {\n\t\tthis.subscribers = this.subscribers.filter(\n\t\t\t(registeredCallback) => registeredCallback !== callback,\n\t\t);\n\t}\n\n\tregisterCustomTypeModel(\n\t\tmodel: prismicT.CustomTypeModel,\n\t): SerializedTypePath[] {\n\t\tconst typePaths = pipe(\n\t\t\tcustomTypeModelToTypePaths(model, this.config.transformFieldName),\n\t\t\tserializeTypePaths,\n\t\t);\n\n\t\tthis.typePaths = [...this.typePaths, ...typePaths];\n\n\t\tthis.#notifySubscribers();\n\n\t\treturn typePaths;\n\t}\n\n\tregisterCustomTypeModels(\n\t\tmodels: prismicT.CustomTypeModel[],\n\t): SerializedTypePath[] {\n\t\tconst typePaths = pipe(\n\t\t\tmodels.flatMap((model) =>\n\t\t\t\tcustomTypeModelToTypePaths(model, this.config.transformFieldName),\n\t\t\t),\n\t\t\tserializeTypePaths,\n\t\t);\n\n\t\tthis.typePaths = [...this.typePaths, ...typePaths];\n\n\t\tthis.#notifySubscribers();\n\n\t\treturn typePaths;\n\t}\n\n\tregisterSharedSliceModel(\n\t\tmodel: prismicT.SharedSliceModel,\n\t): SerializedTypePath[] {\n\t\tconst typePaths = pipe(\n\t\t\tsharedSliceModelToTypePaths(model, this.config.transformFieldName),\n\t\t\tserializeTypePaths,\n\t\t);\n\n\t\tthis.typePaths = [...this.typePaths, ...typePaths];\n\n\t\tthis.#notifySubscribers();\n\n\t\treturn typePaths;\n\t}\n\n\tregisterSharedSliceModels(\n\t\tmodels: prismicT.SharedSliceModel[],\n\t): SerializedTypePath[] {\n\t\tconst typePaths = pipe(\n\t\t\tmodels.flatMap((model) =>\n\t\t\t\tsharedSliceModelToTypePaths(model, this.config.transformFieldName),\n\t\t\t),\n\t\t\tserializeTypePaths,\n\t\t);\n\n\t\tthis.typePaths = [...this.typePaths, ...typePaths];\n\n\t\tthis.#notifySubscribers();\n\n\t\treturn typePaths;\n\t}\n\n\tregisterDocument(\n\t\tdocument: PrismicDocument,\n\t): NormalizedDocumentValue {\n\t\tconst normalizedDocument = this.normalizeDocument(document);\n\n\t\tthis.nodes = [...this.nodes, normalizedDocument];\n\n\t\tthis.#notifySubscribers();\n\n\t\treturn normalizedDocument;\n\t}\n\n\tregisterDocuments(\n\t\tdocuments: PrismicDocument[],\n\t): NormalizedDocumentValue[] {\n\t\tconst nodes = documents.map((document) => {\n\t\t\treturn this.normalizeDocument(document);\n\t\t});\n\n\t\tthis.nodes = [...this.nodes, ...nodes];\n\n\t\tthis.#notifySubscribers();\n\n\t\treturn nodes;\n\t}\n\n\tnormalizeDocument(\n\t\tdocument: PrismicDocument,\n\t): NormalizedDocumentValue {\n\t\treturn this.normalize(document, [\n\t\t\tdocument.type,\n\t\t]) as NormalizedDocumentValue;\n\t}\n\n\tnormalize(value: Value, path: string[]): NormalizedValue {\n\t\treturn normalize({\n\t\t\tvalue,\n\t\t\tpath,\n\t\t\tgetNode: this.getNode.bind(this),\n\t\t\tgetTypePath: this.getTypePath.bind(this),\n\t\t\tnodeHelpers: this.nodeHelpers,\n\t\t\tlinkResolver: this.config.linkResolver,\n\t\t\thtmlSerializer: this.config.htmlSerializer,\n\t\t\timageImgixParams: this.config.imageImgixParams,\n\t\t\timagePlaceholderImgixParams: this.config.imagePlaceholderImgixParams,\n\t\t\ttransformFieldName: this.config.transformFieldName,\n\t\t});\n\t}\n\n\tgetNode(\n\t\tid: string,\n\t): NormalizedDocumentValue | undefined {\n\t\treturn this.nodes.find(\n\t\t\t(node): node is NormalizedDocumentValue =>\n\t\t\t\tnode.prismicId === id,\n\t\t);\n\t}\n\n\thasNode(id: string): boolean {\n\t\treturn this.nodes.some((node) => node.prismicId === id);\n\t}\n\n\tgetTypePath(path: string[]): SerializedTypePath | undefined {\n\t\treturn this.typePaths.find(\n\t\t\t(typePath) => typePath.path === serializePath(path),\n\t\t);\n\t}\n\n\texportTypePaths(): string {\n\t\treturn JSON.stringify(this.typePaths);\n\t}\n\n\timportTypePaths(typePathsExport: string): TypePath[] {\n\t\tconst importedTypePaths = JSON.parse(typePathsExport);\n\n\t\tthis.typePaths = [...this.typePaths, ...importedTypePaths];\n\n\t\tthis.#notifySubscribers();\n\n\t\treturn importedTypePaths;\n\t}\n\n\t#notifySubscribers(): void {\n\t\tfor (const subscriber of this.subscribers) {\n\t\t\tsubscriber();\n\t\t}\n\t}\n}\n","import * as prismicT from \"@prismicio/types\";\n\nimport {\n\tPrismicSpecialType,\n\tTransformFieldNameFn,\n\tTypePath,\n\tTypePathKind,\n} from \"../types\";\n\nconst fieldToTypePaths = <\n\tModel extends prismicT.CustomTypeModelField | prismicT.CustomTypeModelSlice,\n>(\n\tpath: string[],\n\tmodel: Model,\n\ttransformFieldName: TransformFieldNameFn,\n): TypePath[] => {\n\tswitch (model.type) {\n\t\tcase prismicT.CustomTypeModelFieldType.UID: {\n\t\t\treturn [];\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Group: {\n\t\t\tconst fields = Object.entries(model.config.fields).flatMap(\n\t\t\t\t([fieldId, fieldModel]) =>\n\t\t\t\t\tfieldToTypePaths(\n\t\t\t\t\t\t[...path, transformFieldName(fieldId)],\n\t\t\t\t\t\tfieldModel,\n\t\t\t\t\t\ttransformFieldName,\n\t\t\t\t\t),\n\t\t\t);\n\n\t\t\treturn [{ kind: TypePathKind.Field, type: model.type, path }, ...fields];\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Slices: {\n\t\t\tconst choices = Object.entries(model.config.choices)\n\t\t\t\t.filter(\n\t\t\t\t\t(entry): entry is [string, prismicT.CustomTypeModelSlice] =>\n\t\t\t\t\t\tentry[1].type === prismicT.CustomTypeModelSliceType.Slice,\n\t\t\t\t)\n\t\t\t\t.flatMap(([choiceId, choiceModel]) =>\n\t\t\t\t\tfieldToTypePaths(\n\t\t\t\t\t\t[...path, choiceId],\n\t\t\t\t\t\tchoiceModel,\n\t\t\t\t\t\ttransformFieldName,\n\t\t\t\t\t),\n\t\t\t\t);\n\n\t\t\treturn [{ kind: TypePathKind.Field, type: model.type, path }, ...choices];\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelSliceType.Slice: {\n\t\t\tconst primary = Object.entries(model[\"non-repeat\"] || {}).flatMap(\n\t\t\t\t([fieldId, fieldModel]) =>\n\t\t\t\t\tfieldToTypePaths(\n\t\t\t\t\t\t[...path, \"primary\", transformFieldName(fieldId)],\n\t\t\t\t\t\tfieldModel,\n\t\t\t\t\t\ttransformFieldName,\n\t\t\t\t\t),\n\t\t\t);\n\n\t\t\tconst items = Object.entries(model.repeat || {}).flatMap(\n\t\t\t\t([fieldId, fieldModel]) =>\n\t\t\t\t\tfieldToTypePaths(\n\t\t\t\t\t\t[...path, \"items\", transformFieldName(fieldId)],\n\t\t\t\t\t\tfieldModel,\n\t\t\t\t\t\ttransformFieldName,\n\t\t\t\t\t),\n\t\t\t);\n\n\t\t\treturn [\n\t\t\t\t{ kind: TypePathKind.Field, type: model.type, path },\n\t\t\t\t...primary,\n\t\t\t\t...items,\n\t\t\t];\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tkind: TypePathKind.Field,\n\t\t\t\t\tpath,\n\t\t\t\t\ttype: model.type,\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t}\n};\n\nexport const customTypeModelToTypePaths = <\n\tModel extends prismicT.CustomTypeModel,\n>(\n\tcustomTypeModel: Model,\n\ttransformFieldName: TransformFieldNameFn,\n): TypePath[] => {\n\tconst definition = customTypeModel.json;\n\tconst fieldModels = Object.assign({}, ...Object.values(definition)) as Record<\n\t\tstring,\n\t\tprismicT.CustomTypeModelField\n\t>;\n\n\tconst hasDataFields =\n\t\tObject.values(fieldModels).filter(\n\t\t\t(fieldModel) => fieldModel.type !== prismicT.CustomTypeModelFieldType.UID,\n\t\t).length > 0;\n\n\tconst documentTypePath = {\n\t\tkind: TypePathKind.CustomType,\n\t\ttype: PrismicSpecialType.Document,\n\t\tpath: [customTypeModel.id],\n\t};\n\n\tif (hasDataFields) {\n\t\tconst data = Object.entries(fieldModels).flatMap(([fieldId, fieldModel]) =>\n\t\t\tfieldToTypePaths(\n\t\t\t\t[customTypeModel.id, \"data\", transformFieldName(fieldId)],\n\t\t\t\tfieldModel,\n\t\t\t\ttransformFieldName,\n\t\t\t),\n\t\t);\n\n\t\treturn [\n\t\t\tdocumentTypePath,\n\t\t\t{\n\t\t\t\tkind: TypePathKind.Field,\n\t\t\t\ttype: PrismicSpecialType.DocumentData,\n\t\t\t\tpath: [customTypeModel.id, \"data\"],\n\t\t\t},\n\t\t\t...data,\n\t\t];\n\t} else {\n\t\treturn [documentTypePath];\n\t}\n};\n\nexport const sharedSliceModelToTypePaths = <\n\tModel extends prismicT.SharedSliceModel,\n>(\n\tsharedSliceModel: Model,\n\ttransformFieldName: TransformFieldNameFn,\n): TypePath[] => {\n\treturn sharedSliceModel.variations.flatMap((variation) => {\n\t\tconst primary = Object.entries(variation.primary || {}).flatMap(\n\t\t\t([fieldId, fieldModel]) =>\n\t\t\t\tfieldToTypePaths(\n\t\t\t\t\t[\n\t\t\t\t\t\tsharedSliceModel.id,\n\t\t\t\t\t\tvariation.id,\n\t\t\t\t\t\t\"primary\",\n\t\t\t\t\t\ttransformFieldName(fieldId),\n\t\t\t\t\t],\n\t\t\t\t\tfieldModel,\n\t\t\t\t\ttransformFieldName,\n\t\t\t\t),\n\t\t);\n\n\t\tconst items = Object.entries(variation.items || {}).flatMap(\n\t\t\t([fieldId, fieldModel]) =>\n\t\t\t\tfieldToTypePaths(\n\t\t\t\t\t[\n\t\t\t\t\t\tsharedSliceModel.id,\n\t\t\t\t\t\tvariation.id,\n\t\t\t\t\t\t\"items\",\n\t\t\t\t\t\ttransformFieldName(fieldId),\n\t\t\t\t\t],\n\t\t\t\t\tfieldModel,\n\t\t\t\t\ttransformFieldName,\n\t\t\t\t),\n\t\t);\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tkind: TypePathKind.SharedSliceVariation,\n\t\t\t\ttype: PrismicSpecialType.SharedSliceVariation,\n\t\t\t\tpath: [sharedSliceModel.id, variation.id],\n\t\t\t},\n\t\t\t...primary,\n\t\t\t...items,\n\t\t];\n\t});\n};\n","import md5 from \"tiny-hashes/md5\";\n\nexport const serializePath = (path: string[]): string =>\n\tprocess.env.NODE_ENV === \"production\" ? md5(path.join(\".\")) : path.join(\".\");\n","import { SerializedTypePath, TypePath } from \"../types\";\nimport { serializePath } from \"./serializePath\";\n\nexport const serializeTypePaths = (\n\ttypePaths: TypePath[],\n): SerializedTypePath[] => {\n\treturn typePaths.map((typePath) => {\n\t\treturn {\n\t\t\t...typePath,\n\t\t\tpath: serializePath(typePath.path),\n\t\t};\n\t});\n};\n","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.bind();\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}","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 _asyncToGenerator from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport _construct from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/construct.js\";\nimport _createClass from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/createClass.js\";\nimport _classCallCheck from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _inherits from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/inherits.js\";\nimport _possibleConstructorReturn from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\";\nimport _getPrototypeOf from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\";\nimport _wrapNativeSuper from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js\";\nimport _toConsumableArray from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";\nimport _defineProperty from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport _objectWithoutProperties from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\";\nvar _excluded = [\"predicates\"],\n _excluded2 = [\"limit\"];\nimport _regeneratorRuntime from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/regenerator/index.js\";\nimport \"core-js/modules/esnext.global-this.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\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 getGraphQLEndpoint = function getGraphQLEndpoint(repositoryName) {\n return \"https://\".concat(repositoryName, \".cdn.prismic.io/graphql\");\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 predicates = args.predicates,\n params = _objectWithoutProperties(args, _excluded);\n\n var url = new URL(\"documents/search\", \"\".concat(endpoint, \"/\"));\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 var objWithPredicates = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var predicates = arguments.length > 1 ? arguments[1] : undefined;\n return _objectSpread(_objectSpread({}, objWithPredicates), {}, {\n predicates: [].concat(_toConsumableArray(objWithPredicates.predicates || []), _toConsumableArray(castArray(predicates)))\n });\n};\n\nvar castThunk = function castThunk(a) {\n return typeof a === \"function\" ? a : function () {\n return a;\n };\n};\n\nvar PrismicError = /*#__PURE__*/function (_Error) {\n _inherits(PrismicError, _Error);\n\n var _super = _createSuper(PrismicError);\n\n function PrismicError() {\n var _this;\n\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"An invalid API response was returned\";\n var url = arguments.length > 1 ? arguments[1] : undefined;\n var response = arguments.length > 2 ? arguments[2] : undefined;\n\n _classCallCheck(this, PrismicError);\n\n _this = _super.call(this, message);\n _this.url = url;\n _this.response = response;\n return _this;\n }\n\n return _createClass(PrismicError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar findRef = function findRef(refs, predicate) {\n var ref = refs.find(function (ref2) {\n return predicate(ref2);\n });\n\n if (!ref) {\n throw new PrismicError(\"Ref could not be found.\", void 0, void 0);\n }\n\n return ref;\n};\n\nvar findMasterRef = function findMasterRef(refs) {\n return findRef(refs, function (ref) {\n return ref.isMasterRef;\n });\n};\n\nvar findRefByID = function findRefByID(refs, id) {\n return findRef(refs, function (ref) {\n return ref.id === id;\n });\n};\n\nvar findRefByLabel = function findRefByLabel(refs, label) {\n return findRef(refs, function (ref) {\n return ref.label === label;\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 ForbiddenError = /*#__PURE__*/function (_PrismicError) {\n _inherits(ForbiddenError, _PrismicError);\n\n var _super2 = _createSuper(ForbiddenError);\n\n function ForbiddenError() {\n _classCallCheck(this, ForbiddenError);\n\n return _super2.apply(this, arguments);\n }\n\n return _createClass(ForbiddenError);\n}(PrismicError);\n\nvar ParsingError = /*#__PURE__*/function (_PrismicError2) {\n _inherits(ParsingError, _PrismicError2);\n\n var _super3 = _createSuper(ParsingError);\n\n function ParsingError() {\n _classCallCheck(this, ParsingError);\n\n return _super3.apply(this, arguments);\n }\n\n return _createClass(ParsingError);\n}(PrismicError);\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 _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 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 _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return predicateFn.apply(void 0, [\"\"].concat(args));\n };\n\n return fn;\n};\n\nvar predicate = {\n at: pathWithArgsPredicate(\"at\"),\n not: pathWithArgsPredicate(\"not\"),\n any: pathWithArgsPredicate(\"any\"),\n in: pathWithArgsPredicate(\"in\"),\n fulltext: pathWithArgsPredicate(\"fulltext\"),\n has: pathPredicate(\"has\"),\n missing: pathPredicate(\"missing\"),\n similar: argsPredicate(\"similar\"),\n geopointNear: pathWithArgsPredicate(\"geopoint.near\"),\n numberLessThan: pathWithArgsPredicate(\"number.lt\"),\n numberGreaterThan: pathWithArgsPredicate(\"number.gt\"),\n numberInRange: pathWithArgsPredicate(\"number.inRange\"),\n dateAfter: pathWithArgsPredicate(\"date.after\"),\n dateBefore: pathWithArgsPredicate(\"date.before\"),\n dateBetween: pathWithArgsPredicate(\"date.between\"),\n dateDayOfMonth: pathWithArgsPredicate(\"date.day-of-month\"),\n dateDayOfMonthAfter: pathWithArgsPredicate(\"date.day-of-month-after\"),\n dateDayOfMonthBefore: pathWithArgsPredicate(\"date.day-of-month-before\"),\n dateDayOfWeek: pathWithArgsPredicate(\"date.day-of-week\"),\n dateDayOfWeekAfter: pathWithArgsPredicate(\"date.day-of-week-after\"),\n dateDayOfWeekBefore: pathWithArgsPredicate(\"date.day-of-week-before\"),\n dateMonth: pathWithArgsPredicate(\"date.month\"),\n dateMonthAfter: pathWithArgsPredicate(\"date.month-after\"),\n dateMonthBefore: pathWithArgsPredicate(\"date.month-before\"),\n dateYear: pathWithArgsPredicate(\"date.year\"),\n dateHour: pathWithArgsPredicate(\"date.hour\"),\n dateHourAfter: pathWithArgsPredicate(\"date.hour-after\"),\n dateHourBefore: pathWithArgsPredicate(\"date.hour-before\")\n};\nvar preview = \"io.prismic.preview\";\nvar cookie = /*#__PURE__*/Object.freeze({\n __proto__: null,\n preview: preview\n});\n\nvar NotFoundError = /*#__PURE__*/function (_PrismicError3) {\n _inherits(NotFoundError, _PrismicError3);\n\n var _super4 = _createSuper(NotFoundError);\n\n function NotFoundError() {\n _classCallCheck(this, NotFoundError);\n\n return _super4.apply(this, arguments);\n }\n\n return _createClass(NotFoundError);\n}(PrismicError);\n\nvar MAX_PAGE_SIZE = 100;\nvar REPOSITORY_CACHE_TTL = 5e3;\nvar GET_ALL_QUERY_DELAY = 500;\n\nvar typePredicate = function typePredicate(documentType) {\n return predicate.at(\"document.type\", documentType);\n};\n\nvar everyTagPredicate = function everyTagPredicate(tags) {\n return predicate.at(\"document.tags\", tags);\n};\n\nvar someTagsPredicate = function someTagsPredicate(tags) {\n return predicate.any(\"document.tags\", tags);\n};\n\nvar createClient = function createClient() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\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.refState = {\n mode: \"Master\"\n /* Master */\n ,\n autoPreviewsEnabled: true\n };\n this.cachedRepositoryExpiration = 0;\n\n if (process.env.NODE_ENV === \"development\" && /\\.prismic\\.io\\/(?!api\\/v2\\/?)/.test(endpoint)) {\n throw new PrismicError(\"@prismicio/client only supports Prismic Rest API V2. Please use the getEndpoint helper to generate a valid Rest API V2 endpoint URL.\", void 0, void 0);\n }\n\n this.endpoint = endpoint;\n this.accessToken = options.accessToken;\n this.routes = options.routes;\n this.defaultParams = options.defaultParams;\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 PrismicError(\"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.\", void 0, void 0);\n }\n\n if (this.fetchFn === globalThis.fetch) {\n this.fetchFn = this.fetchFn.bind(globalThis);\n }\n\n this.graphqlFetch = this.graphqlFetch.bind(this);\n }\n\n _createClass(Client, [{\n key: \"enableAutoPreviews\",\n value: function enableAutoPreviews() {\n this.refState.autoPreviewsEnabled = true;\n }\n }, {\n key: \"enableAutoPreviewsFromReq\",\n value: function enableAutoPreviewsFromReq(req) {\n this.refState.httpRequest = req;\n this.refState.autoPreviewsEnabled = true;\n }\n }, {\n key: \"disableAutoPreviews\",\n value: function disableAutoPreviews() {\n this.refState.autoPreviewsEnabled = false;\n }\n }, {\n key: \"query\",\n value: function () {\n var _query = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(predicates, 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(_objectSpread(_objectSpread({}, params), {}, {\n predicates: predicates\n }));\n\n case 2:\n url = _context.sent;\n _context.next = 5;\n return this.fetch(url, params);\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 query(_x, _x2) {\n return _query.apply(this, arguments);\n }\n\n return query;\n }()\n }, {\n key: \"get\",\n value: function () {\n var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(params) {\n var url;\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.buildQueryURL(params);\n\n case 2:\n url = _context2.sent;\n _context2.next = 5;\n return this.fetch(url, params);\n\n case 5:\n return _context2.abrupt(\"return\", _context2.sent);\n\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function get(_x3) {\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 _callee3(params) {\n var url, result, firstResult;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this.buildQueryURL(params);\n\n case 2:\n url = _context3.sent;\n _context3.next = 5;\n return this.fetch(url, params);\n\n case 5:\n result = _context3.sent;\n firstResult = result.results[0];\n\n if (!firstResult) {\n _context3.next = 9;\n break;\n }\n\n return _context3.abrupt(\"return\", firstResult);\n\n case 9:\n throw new PrismicError(\"No documents were returned\", url, void 0);\n\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function getFirst(_x4) {\n return _getFirst.apply(this, arguments);\n }\n\n return getFirst;\n }()\n }, {\n key: \"dangerouslyGetAll\",\n value: function () {\n var _dangerouslyGetAll = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n var params,\n _params$limit,\n limit,\n actualParams,\n resolvedParams,\n documents,\n latestResult,\n page,\n _args4 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n params = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : {};\n _params$limit = params.limit, limit = _params$limit === void 0 ? Infinity : _params$limit, actualParams = _objectWithoutProperties(params, _excluded2);\n resolvedParams = _objectSpread(_objectSpread({}, actualParams), {}, {\n pageSize: actualParams.pageSize || MAX_PAGE_SIZE\n });\n documents = [];\n\n case 4:\n if (!((!latestResult || latestResult.next_page) && documents.length < limit)) {\n _context4.next = 15;\n break;\n }\n\n page = latestResult ? latestResult.page + 1 : void 0;\n _context4.next = 8;\n return this.get(_objectSpread(_objectSpread({}, resolvedParams), {}, {\n page: page\n }));\n\n case 8:\n latestResult = _context4.sent;\n documents.push.apply(documents, _toConsumableArray(latestResult.results));\n\n if (!latestResult.next_page) {\n _context4.next = 13;\n break;\n }\n\n _context4.next = 13;\n return new Promise(function (res) {\n return setTimeout(res, GET_ALL_QUERY_DELAY);\n });\n\n case 13:\n _context4.next = 4;\n break;\n\n case 15:\n return _context4.abrupt(\"return\", documents.slice(0, limit));\n\n case 16:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function dangerouslyGetAll() {\n return _dangerouslyGetAll.apply(this, arguments);\n }\n\n return dangerouslyGetAll;\n }()\n }, {\n key: \"getByID\",\n value: function () {\n var _getByID = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(id, 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.getFirst(appendPredicates(params, predicate.at(\"document.id\", id)));\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 getByID(_x5, _x6) {\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 _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.get(appendPredicates(params, predicate.in(\"document.id\", ids)));\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 getByIDs(_x7, _x8) {\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 _callee7(ids, 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.dangerouslyGetAll(appendPredicates(params, predicate.in(\"document.id\", ids)));\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 getAllByIDs(_x9, _x10) {\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 _callee8(documentType, uid, 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(params, [typePredicate(documentType), predicate.at(\"my.\".concat(documentType, \".uid\"), uid)]));\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 getByUID(_x11, _x12, _x13) {\n return _getByUID.apply(this, arguments);\n }\n\n return getByUID;\n }()\n }, {\n key: \"getByUIDs\",\n value: function () {\n var _getByUIDs = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(documentType, uids, 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(params, [typePredicate(documentType), predicate.in(\"my.\".concat(documentType, \".uid\"), uids)]));\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 getByUIDs(_x14, _x15, _x16) {\n return _getByUIDs.apply(this, arguments);\n }\n\n return getByUIDs;\n }()\n }, {\n key: \"getAllByUIDs\",\n value: function () {\n var _getAllByUIDs = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(documentType, uids, 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.dangerouslyGetAll(appendPredicates(params, [typePredicate(documentType), predicate.in(\"my.\".concat(documentType, \".uid\"), uids)]));\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 getAllByUIDs(_x17, _x18, _x19) {\n return _getAllByUIDs.apply(this, arguments);\n }\n\n return getAllByUIDs;\n }()\n }, {\n key: \"getSingle\",\n value: function () {\n var _getSingle = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(documentType, 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.getFirst(appendPredicates(params, typePredicate(documentType)));\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 getSingle(_x20, _x21) {\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 _callee12(documentType, 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.get(appendPredicates(params, typePredicate(documentType)));\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 getByType(_x22, _x23) {\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 _callee13(documentType, 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.dangerouslyGetAll(appendPredicates(params, typePredicate(documentType)));\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 getAllByType(_x24, _x25) {\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 _callee14(tag, 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.get(appendPredicates(params, everyTagPredicate(tag)));\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 getByTag(_x26, _x27) {\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 _callee15(tag, params) {\n return _regeneratorRuntime.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n _context15.next = 2;\n return this.dangerouslyGetAll(appendPredicates(params, everyTagPredicate(tag)));\n\n case 2:\n return _context15.abrupt(\"return\", _context15.sent);\n\n case 3:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15, this);\n }));\n\n function getAllByTag(_x28, _x29) {\n return _getAllByTag.apply(this, arguments);\n }\n\n return getAllByTag;\n }()\n }, {\n key: \"getByEveryTag\",\n value: function () {\n var _getByEveryTag = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee16(tags, params) {\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.get(appendPredicates(params, everyTagPredicate(tags)));\n\n case 2:\n return _context16.abrupt(\"return\", _context16.sent);\n\n case 3:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee16, this);\n }));\n\n function getByEveryTag(_x30, _x31) {\n return _getByEveryTag.apply(this, arguments);\n }\n\n return getByEveryTag;\n }()\n }, {\n key: \"getAllByEveryTag\",\n value: function () {\n var _getAllByEveryTag = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee17(tags, params) {\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.dangerouslyGetAll(appendPredicates(params, everyTagPredicate(tags)));\n\n case 2:\n return _context17.abrupt(\"return\", _context17.sent);\n\n case 3:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee17, this);\n }));\n\n function getAllByEveryTag(_x32, _x33) {\n return _getAllByEveryTag.apply(this, arguments);\n }\n\n return getAllByEveryTag;\n }()\n }, {\n key: \"getBySomeTags\",\n value: function () {\n var _getBySomeTags = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18(tags, params) {\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.get(appendPredicates(params, someTagsPredicate(tags)));\n\n case 2:\n return _context18.abrupt(\"return\", _context18.sent);\n\n case 3:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee18, this);\n }));\n\n function getBySomeTags(_x34, _x35) {\n return _getBySomeTags.apply(this, arguments);\n }\n\n return getBySomeTags;\n }()\n }, {\n key: \"getAllBySomeTags\",\n value: function () {\n var _getAllBySomeTags = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee19(tags, params) {\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.dangerouslyGetAll(appendPredicates(params, someTagsPredicate(tags)));\n\n case 2:\n return _context19.abrupt(\"return\", _context19.sent);\n\n case 3:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee19, this);\n }));\n\n function getAllBySomeTags(_x36, _x37) {\n return _getAllBySomeTags.apply(this, arguments);\n }\n\n return getAllBySomeTags;\n }()\n }, {\n key: \"getRepository\",\n value: function () {\n var _getRepository = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20() {\n var url;\n return _regeneratorRuntime.wrap(function _callee20$(_context20) {\n while (1) {\n switch (_context20.prev = _context20.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 _context20.next = 4;\n return this.fetch(url.toString());\n\n case 4:\n return _context20.abrupt(\"return\", _context20.sent);\n\n case 5:\n case \"end\":\n return _context20.stop();\n }\n }\n }, _callee20, 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 _callee21() {\n var repository;\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.getRepository();\n\n case 2:\n repository = _context21.sent;\n return _context21.abrupt(\"return\", repository.refs);\n\n case 4:\n case \"end\":\n return _context21.stop();\n }\n }\n }, _callee21, 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 _callee22(id) {\n var refs;\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.getRefs();\n\n case 2:\n refs = _context22.sent;\n return _context22.abrupt(\"return\", findRefByID(refs, id));\n\n case 4:\n case \"end\":\n return _context22.stop();\n }\n }\n }, _callee22, this);\n }));\n\n function getRefByID(_x38) {\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 _callee23(label) {\n var refs;\n return _regeneratorRuntime.wrap(function _callee23$(_context23) {\n while (1) {\n switch (_context23.prev = _context23.next) {\n case 0:\n _context23.next = 2;\n return this.getRefs();\n\n case 2:\n refs = _context23.sent;\n return _context23.abrupt(\"return\", findRefByLabel(refs, label));\n\n case 4:\n case \"end\":\n return _context23.stop();\n }\n }\n }, _callee23, this);\n }));\n\n function getRefByLabel(_x39) {\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 _callee24() {\n var refs;\n return _regeneratorRuntime.wrap(function _callee24$(_context24) {\n while (1) {\n switch (_context24.prev = _context24.next) {\n case 0:\n _context24.next = 2;\n return this.getRefs();\n\n case 2:\n refs = _context24.sent;\n return _context24.abrupt(\"return\", findMasterRef(refs));\n\n case 4:\n case \"end\":\n return _context24.stop();\n }\n }\n }, _callee24, 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 _callee25() {\n var refs;\n return _regeneratorRuntime.wrap(function _callee25$(_context25) {\n while (1) {\n switch (_context25.prev = _context25.next) {\n case 0:\n _context25.next = 2;\n return this.getRefs();\n\n case 2:\n refs = _context25.sent;\n return _context25.abrupt(\"return\", refs.filter(function (ref) {\n return !ref.isMasterRef;\n }));\n\n case 4:\n case \"end\":\n return _context25.stop();\n }\n }\n }, _callee25, 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 _callee26(id) {\n var releases;\n return _regeneratorRuntime.wrap(function _callee26$(_context26) {\n while (1) {\n switch (_context26.prev = _context26.next) {\n case 0:\n _context26.next = 2;\n return this.getReleases();\n\n case 2:\n releases = _context26.sent;\n return _context26.abrupt(\"return\", findRefByID(releases, id));\n\n case 4:\n case \"end\":\n return _context26.stop();\n }\n }\n }, _callee26, this);\n }));\n\n function getReleaseByID(_x40) {\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 _callee27(label) {\n var releases;\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.getReleases();\n\n case 2:\n releases = _context27.sent;\n return _context27.abrupt(\"return\", findRefByLabel(releases, label));\n\n case 4:\n case \"end\":\n return _context27.stop();\n }\n }\n }, _callee27, this);\n }));\n\n function getReleaseByLabel(_x41) {\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 _callee28() {\n var tagsForm, repository;\n return _regeneratorRuntime.wrap(function _callee28$(_context28) {\n while (1) {\n switch (_context28.prev = _context28.next) {\n case 0:\n _context28.prev = 0;\n _context28.next = 3;\n return this.getCachedRepositoryForm(\"tags\");\n\n case 3:\n tagsForm = _context28.sent;\n _context28.next = 6;\n return this.fetch(tagsForm.action);\n\n case 6:\n return _context28.abrupt(\"return\", _context28.sent);\n\n case 9:\n _context28.prev = 9;\n _context28.t0 = _context28[\"catch\"](0);\n _context28.next = 13;\n return this.getRepository();\n\n case 13:\n repository = _context28.sent;\n return _context28.abrupt(\"return\", repository.tags);\n\n case 15:\n case \"end\":\n return _context28.stop();\n }\n }\n }, _callee28, 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 _callee29() {\n var params,\n ref,\n integrationFieldsRef,\n _args29 = arguments;\n return _regeneratorRuntime.wrap(function _callee29$(_context29) {\n while (1) {\n switch (_context29.prev = _context29.next) {\n case 0:\n params = _args29.length > 0 && _args29[0] !== undefined ? _args29[0] : {};\n _context29.t0 = params.ref;\n\n if (_context29.t0) {\n _context29.next = 6;\n break;\n }\n\n _context29.next = 5;\n return this.getResolvedRefString();\n\n case 5:\n _context29.t0 = _context29.sent;\n\n case 6:\n ref = _context29.t0;\n _context29.t2 = params.integrationFieldsRef;\n\n if (_context29.t2) {\n _context29.next = 12;\n break;\n }\n\n _context29.next = 11;\n return this.getCachedRepository();\n\n case 11:\n _context29.t2 = _context29.sent.integrationFieldsRef;\n\n case 12:\n _context29.t1 = _context29.t2;\n\n if (_context29.t1) {\n _context29.next = 15;\n break;\n }\n\n _context29.t1 = void 0;\n\n case 15:\n integrationFieldsRef = _context29.t1;\n return _context29.abrupt(\"return\", _buildQueryURL(this.endpoint, _objectSpread(_objectSpread(_objectSpread({}, this.defaultParams), params), {}, {\n ref: ref,\n integrationFieldsRef: integrationFieldsRef,\n routes: params.routes || this.routes,\n accessToken: params.accessToken || this.accessToken\n })));\n\n case 17:\n case \"end\":\n return _context29.stop();\n }\n }\n }, _callee29, 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 _callee30(args) {\n var _a, documentID, previewToken, searchParams, document;\n\n return _regeneratorRuntime.wrap(function _callee30$(_context30) {\n while (1) {\n switch (_context30.prev = _context30.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.refState.httpRequest) == null ? void 0 : _a.query) {\n documentID = documentID || this.refState.httpRequest.query.documentId;\n previewToken = previewToken || this.refState.httpRequest.query.token;\n }\n\n if (!(documentID != null)) {\n _context30.next = 10;\n break;\n }\n\n _context30.next = 6;\n return this.getByID(documentID, {\n ref: previewToken,\n lang: \"*\"\n });\n\n case 6:\n document = _context30.sent;\n return _context30.abrupt(\"return\", prismicH.asLink(document, args.linkResolver));\n\n case 10:\n return _context30.abrupt(\"return\", args.defaultURL);\n\n case 11:\n case \"end\":\n return _context30.stop();\n }\n }\n }, _callee30, this);\n }));\n\n function resolvePreviewURL(_x42) {\n return _resolvePreviewURL.apply(this, arguments);\n }\n\n return resolvePreviewURL;\n }()\n }, {\n key: \"queryLatestContent\",\n value: function queryLatestContent() {\n this.refState.mode = \"Master\"\n /* Master */\n ;\n }\n }, {\n key: \"queryContentFromReleaseByID\",\n value: function queryContentFromReleaseByID(releaseID) {\n this.refState = _objectSpread(_objectSpread({}, this.refState), {}, {\n mode: \"ReleaseID\"\n /* ReleaseID */\n ,\n releaseID: releaseID\n });\n }\n }, {\n key: \"queryContentFromReleaseByLabel\",\n value: function queryContentFromReleaseByLabel(releaseLabel) {\n this.refState = _objectSpread(_objectSpread({}, this.refState), {}, {\n mode: \"ReleaseLabel\"\n /* ReleaseLabel */\n ,\n releaseLabel: releaseLabel\n });\n }\n }, {\n key: \"queryContentFromRef\",\n value: function queryContentFromRef(ref) {\n this.refState = _objectSpread(_objectSpread({}, this.refState), {}, {\n mode: \"Manual\"\n /* Manual */\n ,\n ref: ref\n });\n }\n }, {\n key: \"graphqlFetch\",\n value: function () {\n var _graphqlFetch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee31(input, init) {\n var cachedRepository, ref, unsanitizedHeaders, headers, key;\n return _regeneratorRuntime.wrap(function _callee31$(_context31) {\n while (1) {\n switch (_context31.prev = _context31.next) {\n case 0:\n _context31.next = 2;\n return this.getCachedRepository();\n\n case 2:\n cachedRepository = _context31.sent;\n _context31.next = 5;\n return this.getResolvedRefString();\n\n case 5:\n ref = _context31.sent;\n unsanitizedHeaders = _objectSpread({\n \"Prismic-ref\": ref,\n \"Prismic-integration-field-ref\": cachedRepository.integrationFieldsRef || \"\",\n Authorization: this.accessToken ? \"Token \".concat(this.accessToken) : \"\"\n }, init ? init.headers : {});\n headers = {};\n\n for (key in unsanitizedHeaders) {\n if (unsanitizedHeaders[key]) {\n headers[key.toLowerCase()] = unsanitizedHeaders[key];\n }\n }\n\n _context31.next = 11;\n return this.fetchFn(input, _objectSpread(_objectSpread({}, init), {}, {\n headers: headers\n }));\n\n case 11:\n return _context31.abrupt(\"return\", _context31.sent);\n\n case 12:\n case \"end\":\n return _context31.stop();\n }\n }\n }, _callee31, this);\n }));\n\n function graphqlFetch(_x43, _x44) {\n return _graphqlFetch.apply(this, arguments);\n }\n\n return graphqlFetch;\n }()\n }, {\n key: \"getCachedRepository\",\n value: function () {\n var _getCachedRepository = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee32() {\n return _regeneratorRuntime.wrap(function _callee32$(_context32) {\n while (1) {\n switch (_context32.prev = _context32.next) {\n case 0:\n if (!(!this.cachedRepository || Date.now() >= this.cachedRepositoryExpiration)) {\n _context32.next = 5;\n break;\n }\n\n this.cachedRepositoryExpiration = Date.now() + REPOSITORY_CACHE_TTL;\n _context32.next = 4;\n return this.getRepository();\n\n case 4:\n this.cachedRepository = _context32.sent;\n\n case 5:\n return _context32.abrupt(\"return\", this.cachedRepository);\n\n case 6:\n case \"end\":\n return _context32.stop();\n }\n }\n }, _callee32, 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 _callee33(name) {\n var cachedRepository, form;\n return _regeneratorRuntime.wrap(function _callee33$(_context33) {\n while (1) {\n switch (_context33.prev = _context33.next) {\n case 0:\n _context33.next = 2;\n return this.getCachedRepository();\n\n case 2:\n cachedRepository = _context33.sent;\n form = cachedRepository.forms[name];\n\n if (form) {\n _context33.next = 6;\n break;\n }\n\n throw new PrismicError(\"Form with name \\\"\".concat(name, \"\\\" could not be found\"), void 0, void 0);\n\n case 6:\n return _context33.abrupt(\"return\", form);\n\n case 7:\n case \"end\":\n return _context33.stop();\n }\n }\n }, _callee33, this);\n }));\n\n function getCachedRepositoryForm(_x45) {\n return _getCachedRepositoryForm.apply(this, arguments);\n }\n\n return getCachedRepositoryForm;\n }()\n }, {\n key: \"getResolvedRefString\",\n value: function () {\n var _getResolvedRefString = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee34() {\n var _a, _b, _c, previewRef, cachedRepository, refModeType, res;\n\n return _regeneratorRuntime.wrap(function _callee34$(_context34) {\n while (1) {\n switch (_context34.prev = _context34.next) {\n case 0:\n if (!this.refState.autoPreviewsEnabled) {\n _context34.next = 5;\n break;\n }\n\n previewRef = void 0;\n\n if ((_a = globalThis.document) == null ? void 0 : _a.cookie) {\n previewRef = getCookie(preview, globalThis.document.cookie);\n } else if ((_c = (_b = this.refState.httpRequest) == null ? void 0 : _b.headers) == null ? void 0 : _c.cookie) {\n previewRef = getCookie(preview, this.refState.httpRequest.headers.cookie);\n }\n\n if (!previewRef) {\n _context34.next = 5;\n break;\n }\n\n return _context34.abrupt(\"return\", previewRef);\n\n case 5:\n _context34.next = 7;\n return this.getCachedRepository();\n\n case 7:\n cachedRepository = _context34.sent;\n refModeType = this.refState.mode;\n\n if (!(refModeType === \"ReleaseID\"\n /* ReleaseID */\n )) {\n _context34.next = 13;\n break;\n }\n\n return _context34.abrupt(\"return\", findRefByID(cachedRepository.refs, this.refState.releaseID).ref);\n\n case 13:\n if (!(refModeType === \"ReleaseLabel\"\n /* ReleaseLabel */\n )) {\n _context34.next = 17;\n break;\n }\n\n return _context34.abrupt(\"return\", findRefByLabel(cachedRepository.refs, this.refState.releaseLabel).ref);\n\n case 17:\n if (!(refModeType === \"Manual\"\n /* Manual */\n )) {\n _context34.next = 23;\n break;\n }\n\n _context34.next = 20;\n return castThunk(this.refState.ref)();\n\n case 20:\n res = _context34.sent;\n\n if (!(typeof res === \"string\")) {\n _context34.next = 23;\n break;\n }\n\n return _context34.abrupt(\"return\", res);\n\n case 23:\n return _context34.abrupt(\"return\", findMasterRef(cachedRepository.refs).ref);\n\n case 24:\n case \"end\":\n return _context34.stop();\n }\n }\n }, _callee34, 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 _callee35(url, _params) {\n var res, json;\n return _regeneratorRuntime.wrap(function _callee35$(_context35) {\n while (1) {\n switch (_context35.prev = _context35.next) {\n case 0:\n _context35.next = 2;\n return this.fetchFn(url);\n\n case 2:\n res = _context35.sent;\n _context35.prev = 3;\n _context35.next = 6;\n return res.json();\n\n case 6:\n json = _context35.sent;\n _context35.next = 16;\n break;\n\n case 9:\n _context35.prev = 9;\n _context35.t0 = _context35[\"catch\"](3);\n\n if (!(res.status === 404)) {\n _context35.next = 15;\n break;\n }\n\n throw new NotFoundError(\"Prismic repository not found. Check that \\\"\".concat(this.endpoint, \"\\\" is pointing to the correct repository.\"), url, void 0);\n\n case 15:\n throw new PrismicError(void 0, url, void 0);\n\n case 16:\n _context35.t1 = res.status;\n _context35.next = _context35.t1 === 200 ? 19 : _context35.t1 === 400 ? 20 : _context35.t1 === 401 ? 21 : _context35.t1 === 403 ? 21 : 22;\n break;\n\n case 19:\n return _context35.abrupt(\"return\", json);\n\n case 20:\n throw new ParsingError(json.message, url, json);\n\n case 21:\n throw new ForbiddenError(\"error\" in json ? json.error : json.message, url, json);\n\n case 22:\n throw new PrismicError(void 0, url, json);\n\n case 23:\n case \"end\":\n return _context35.stop();\n }\n }\n }, _callee35, this, [[3, 9]]);\n }));\n\n function fetch(_x46, _x47) {\n return _fetch.apply(this, arguments);\n }\n\n return fetch;\n }()\n }]);\n\n return Client;\n}();\n\nvar predicates = predicate;\nvar Predicates = predicate;\nexport { Client, ForbiddenError, NotFoundError, ParsingError, Predicates, PrismicError, _buildQueryURL as buildQueryURL, cookie, createClient, getEndpoint, getGraphQLEndpoint, predicate, predicates };","import \"core-js/modules/esnext.global-this.js\";\nimport e, { useRef as r, useEffect as t, createContext as n, forwardRef as o, useState as a, useContext as c } from \"react\";\nimport { createPortal as u } from \"react-dom\";\nimport l from \"prop-types\";\nvar i = \"undefined\" != typeof globalThis ? globalThis : \"undefined\" != typeof window ? window : \"undefined\" != typeof global ? global : \"undefined\" != typeof self ? self : {};\n\nfunction s(e, r) {\n return e(r = {\n exports: {}\n }, r.exports), r.exports;\n}\n\nvar f = s(function (e) {\n !function (r) {\n var t = function t(e, r, n) {\n if (!l(r) || s(r) || f(r) || p(r) || u(r)) return r;\n var o,\n a = 0,\n c = 0;\n if (i(r)) for (o = [], c = r.length; a < c; a++) {\n o.push(t(e, r[a], n));\n } else for (var d in o = {}, r) {\n Object.prototype.hasOwnProperty.call(r, d) && (o[e(d, n)] = t(e, r[d], n));\n }\n return o;\n },\n n = function n(e) {\n return d(e) ? e : (e = e.replace(/[\\-_\\s]+(.)?/g, function (e, r) {\n return r ? r.toUpperCase() : \"\";\n })).substr(0, 1).toLowerCase() + e.substr(1);\n },\n o = function o(e) {\n var r = n(e);\n return r.substr(0, 1).toUpperCase() + r.substr(1);\n },\n a = function a(e, r) {\n return function (e, r) {\n var t = (r = r || {}).separator || \"_\",\n n = r.split || /(?=[A-Z])/;\n return e.split(n).join(t);\n }(e, r).toLowerCase();\n },\n c = Object.prototype.toString,\n u = function u(e) {\n return \"function\" == typeof e;\n },\n l = function l(e) {\n return e === Object(e);\n },\n i = function i(e) {\n return \"[object Array]\" == c.call(e);\n },\n s = function s(e) {\n return \"[object Date]\" == c.call(e);\n },\n f = function f(e) {\n return \"[object RegExp]\" == c.call(e);\n },\n p = function p(e) {\n return \"[object Boolean]\" == c.call(e);\n },\n d = function d(e) {\n return (e -= 0) == e;\n },\n y = function y(e, r) {\n var t = r && \"process\" in r ? r.process : r;\n return \"function\" != typeof t ? e : function (r, n) {\n return t(r, e, n);\n };\n },\n h = {\n camelize: n,\n decamelize: a,\n pascalize: o,\n depascalize: a,\n camelizeKeys: function camelizeKeys(e, r) {\n return t(y(n, r), e);\n },\n decamelizeKeys: function decamelizeKeys(e, r) {\n return t(y(a, r), e, r);\n },\n pascalizeKeys: function pascalizeKeys(e, r) {\n return t(y(o, r), e);\n },\n depascalizeKeys: function depascalizeKeys() {\n return this.decamelizeKeys.apply(this, arguments);\n }\n };\n\n e.exports ? e.exports = h : r.humps = h;\n }(i);\n}).decamelize,\n p = s(function (e) {\n function r() {\n return e.exports = r = Object.assign || function (e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = arguments[r];\n\n for (var n in t) {\n Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);\n }\n }\n\n return e;\n }, r.apply(this, arguments);\n }\n\n e.exports = r;\n});\n\nvar d = function d(e) {\n if (Array.isArray(e)) return e;\n};\n\nvar y = function y(e, r) {\n if (\"undefined\" != typeof Symbol && Symbol.iterator in Object(e)) {\n var t = [],\n n = !0,\n o = !1,\n a = void 0;\n\n try {\n for (var c, u = e[Symbol.iterator](); !(n = (c = u.next()).done) && (t.push(c.value), !r || t.length !== r); n = !0) {\n ;\n }\n } catch (e) {\n o = !0, a = e;\n } finally {\n try {\n n || null == u.return || u.return();\n } finally {\n if (o) throw a;\n }\n }\n\n return t;\n }\n};\n\nvar h = function h(e, r) {\n (null == r || r > e.length) && (r = e.length);\n\n for (var t = 0, n = new Array(r); t < r; t++) {\n n[t] = e[t];\n }\n\n return n;\n};\n\nvar v = function v(e, r) {\n if (e) {\n if (\"string\" == typeof e) return h(e, r);\n var t = Object.prototype.toString.call(e).slice(8, -1);\n return \"Object\" === t && e.constructor && (t = e.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(e) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? h(e, r) : void 0;\n }\n};\n\nvar m = function m() {\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\nvar b = function b(e, r) {\n return d(e) || y(e, r) || v(e, r) || m();\n};\n\nvar g = function g(e, r) {\n if (null == e) return {};\n var t,\n n,\n o = {},\n a = Object.keys(e);\n\n for (n = 0; n < a.length; n++) {\n t = a[n], r.indexOf(t) >= 0 || (o[t] = e[t]);\n }\n\n return o;\n};\n\nvar S = function S(e, r) {\n if (null == e) return {};\n var t,\n n,\n o = g(e, r);\n\n if (Object.getOwnPropertySymbols) {\n var a = Object.getOwnPropertySymbols(e);\n\n for (n = 0; n < a.length; n++) {\n t = a[n], r.indexOf(t) >= 0 || Object.prototype.propertyIsEnumerable.call(e, t) && (o[t] = e[t]);\n }\n }\n\n return o;\n};\n\nvar w = n(null);\n\nfunction O(e) {\n var r = e.root,\n t = e.children;\n return u(t, r);\n}\n\nfunction j(n) {\n var c = o(function (o, c) {\n var u,\n l,\n i = o.mode,\n s = o.delegatesFocus,\n f = o.styleSheets,\n d = o.ssr,\n y = o.children,\n h = S(o, [\"mode\", \"delegatesFocus\", \"styleSheets\", \"ssr\", \"children\"]),\n v = (l = r((u = c) && u.current), t(function () {\n u && (u.current = l.current);\n }, [u]), l),\n m = a(null),\n g = b(m, 2),\n j = g[0],\n x = g[1],\n z = \"node_\".concat(i).concat(s);\n return t(function () {\n if (v.current) try {\n if (\"function\" == typeof c && c(v.current), d) {\n var e = v.current.shadowRoot;\n return void x(e);\n }\n\n var r = v.current.attachShadow({\n mode: i,\n delegatesFocus: s\n });\n f.length > 0 && (r.adoptedStyleSheets = f), x(r);\n } catch (e) {\n !function (e) {\n var r = e.error,\n t = e.styleSheets,\n n = e.root;\n\n switch (r.name) {\n case \"NotSupportedError\":\n t.length > 0 && (n.adoptedStyleSheets = t);\n break;\n\n default:\n throw r;\n }\n }({\n error: e,\n styleSheets: f,\n root: j\n });\n }\n }, [c, v, f]), e.createElement(e.Fragment, null, e.createElement(n.tag, p({\n key: z,\n ref: v\n }, h), (j || d) && e.createElement(w.Provider, {\n value: j\n }, d ? e.createElement(\"template\", {\n shadowroot: \"open\"\n }, n.render({\n root: j,\n ssr: d,\n children: y\n })) : e.createElement(O, {\n root: j\n }, n.render({\n root: j,\n ssr: d,\n children: y\n })))));\n });\n return c.propTypes = {\n mode: l.oneOf([\"open\", \"closed\"]),\n delegatesFocus: l.bool,\n styleSheets: l.arrayOf(l.instanceOf(global.CSSStyleSheet)),\n ssr: l.bool,\n children: l.node\n }, c.defaultProps = {\n mode: \"open\",\n delegatesFocus: !1,\n styleSheets: [],\n ssr: !1,\n children: null\n }, c;\n}\n\nO.propTypes = {\n root: l.object.isRequired,\n children: l.node\n}, O.defaultProps = {\n children: null\n};\nvar x = new Map();\n\nfunction z() {\n return c(w);\n}\n\nfunction E() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"core\",\n t = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : function (e) {\n return e.children;\n };\n return new Proxy(e, {\n get: function get(e, n) {\n var o = f(n, {\n separator: \"-\"\n }),\n a = \"\".concat(r, \"-\").concat(o);\n return x.has(a) || x.set(a, j({\n tag: o,\n render: t\n })), x.get(a);\n }\n });\n}\n\nvar A = E();\nexport default A;\nexport { E as createProxy, z as useShadowRoot };","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, useEffect, 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';\nimport warning from 'tiny-warning';\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 containerRef = _ref.containerRef;\n var mountNode = useRef(null);\n var portalNode = useRef(null);\n var forceUpdate = useForceUpdate();\n\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(function () {\n if (containerRef != null) {\n process.env.NODE_ENV !== \"production\" ? warning(typeof containerRef === \"object\" && \"current\" in containerRef, \"@reach/portal: Invalid value passed to the `containerRef` of a \" + \"`Portal`. The portal will be appended to the document body, but if \" + \"you want to attach it to another DOM node you must pass a valid \" + \"React ref object to `containerRef`.\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(containerRef ? containerRef.current != null : true, \"@reach/portal: A ref was passed to the `containerRef` prop of a \" + \"`Portal`, but no DOM node was attached to it. Be sure to pass the \" + \"ref to a DOM component.\\n\\nIf you are forwarding the ref from \" + \"another component, be sure to use the React.forwardRef API. \" + \"See https://reactjs.org/docs/forwarding-refs.html.\") : void 0;\n }\n }, [containerRef]);\n }\n\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 var body = (containerRef == null ? void 0 : containerRef.current) || ownerDocument.body;\n portalNode.current = ownerDocument == null ? void 0 : ownerDocument.createElement(type);\n body.appendChild(portalNode.current);\n forceUpdate();\n return function () {\n if (portalNode.current && body) {\n body.removeChild(portalNode.current);\n }\n };\n }, [type, forceUpdate, containerRef]);\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 { hiddenGuard } from './FocusGuard';\nimport { mediumFocus, mediumBlur, mediumSidecar } from './medium';\nimport { useEffect } from \"react\";\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 _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 (Boolean(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 && [/*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }),\n /*#__PURE__*/\n // nearest focus guard\n React.createElement(\"div\", {\n key: \"guard-nearest\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 1,\n style: hiddenGuard\n }) // first tabbed element guard\n ], !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 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 isRadio = function isRadio(node) {\n return node.tagName === 'INPUT' && node.type === 'radio';\n};\n\nvar findSelectedRadio = function findSelectedRadio(node, nodes) {\n return nodes.filter(isRadio).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 (isRadio(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};","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 notHiddenInput = function notHiddenInput(node) {\n return !((node.tagName === 'INPUT' || node.tagName === 'BUTTON') && (node.type === 'hidden' || node.disabled));\n};\nexport var isGuard = function isGuard(node) {\n return Boolean(node && node.dataset && node.dataset.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 { 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 (innerNodes.indexOf(activeElement) >= 0) {\n return undefined;\n }\n\n var activeIndex = outerNodes.indexOf(activeElement);\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 correctedIndexDiff = correctedNodes.indexOf(activeElement) - (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 { 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(\"[\" + FOCUS_GROUP + \"=\\\"\" + group + \"\\\"]:not([\" + FOCUS_DISABLED + \"=\\\"disabled\\\"])\"))) : [currentNode]);\n return acc;\n }, []);\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 = 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(\"[\" + 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 { asArray } from './array';\nimport { parentAutofocusables } from './DOMutils';\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 { getAllAffectedNodes } from './utils/all-affected';\nimport { getAllTabbableNodes, getTabbableNodes } from './utils/DOMutils';\nimport { pickFirstFocus } from './utils/firstFocus';\nimport { isDefined, isNotAGuard } from './utils/is';\nimport { allParentAutofocusables, getTopCommonParent } from './utils/parenting';\n\nvar findAutoFocused = function findAutoFocused(autoFocusables) {\n return function (node) {\n return node.autofocus || node.dataset && !!node.dataset.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 && document.activeElement;\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 target.focus(focusOptions);\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 { getFocusabledIn } from './focusables';\nimport { focusInside } from './focusInside';\nimport { focusIsHidden } from './focusIsHidden';\nimport { getFocusMerge as focusMerge } from './focusMerge';\nimport { setFocus } from './setFocus';\nimport { focusNextElement, focusPrevElement } from './sibling';\nimport tabHook from './tabHook';\nimport { getAllAffectedNodes } from './utils/all-affected';\nexport { tabHook, focusInside, focusIsHidden, focusMerge, getFocusabledIn, constants, getAllAffectedNodes, focusNextElement, focusPrevElement };\nexport default setFocus;","import { getAllAffectedNodes } from './utils/all-affected';\nimport { toArray } from './utils/array';\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 && document.activeElement;\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 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 && !(focusInside(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';\nexport var focusIsHidden = function focusIsHidden() {\n return document && toArray(document.querySelectorAll(\"[\" + FOCUS_ALLOW + \"]\")).some(function (node) {\n return node.contains(document.activeElement);\n });\n};","import { getAllAffectedNodes } from './utils/all-affected';\nimport { getTabbableNodes } from './utils/DOMutils';\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\nexport var handleScroll = function handleScroll(axis, endTarget, event, sourceDelta, noOverscroll) {\n var delta = 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 - 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 unstable_lockFocusAcrossFrames = _ref2.unstable_lockFocusAcrossFrames,\n props = _objectWithoutPropertiesLoose(_ref2, _excluded2);\n\n var lockFocusAcrossFramesIsDefined = unstable_lockFocusAcrossFrames !== undefined;\n\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(function () {\n if (lockFocusAcrossFramesIsDefined) {\n console.warn(\"The unstable_lockFocusAcrossFrames in @reach/dialog is deprecated. It will be removed in the next minor release.\");\n }\n }, [lockFocusAcrossFramesIsDefined]);\n }\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 != null ? unstable_lockFocusAcrossFrames : true\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 gatsbyPrismic from \"gatsby-source-prismic\";\nimport * as prismicT from \"@prismicio/types\";\nimport * as cookie from \"es-cookie\";\n\nimport { sprintf } from \"./lib/sprintf\";\n\nimport {\n\tCOOKIE_ACCESS_TOKEN_NAME,\n\tWINDOW_PLUGIN_OPTIONS_KEY,\n\tWINDOW_PROVIDER_PRESENCE_KEY,\n} from \"./constants\";\nimport {\n\tPluginOptions,\n\tPrismicRepositoryConfig,\n\tPrismicUnpublishedRepositoryConfigs,\n} from \"./types\";\n\nexport type PrismicContextValue = readonly [\n\tPrismicContextState,\n\tReact.Dispatch,\n];\n\nexport enum PrismicPreviewState {\n\tIDLE = \"IDLE\",\n\tRESOLVING = \"RESOLVING\",\n\tRESOLVED = \"RESOLVED\",\n\tBOOTSTRAPPING = \"BOOTSTRAPPING\",\n\tACTIVE = \"ACTIVE\",\n\tPROMPT_FOR_ACCESS_TOKEN = \"PROMPT_FOR_ACCESS_TOKEN\",\n\tFAILED = \"FAILED\",\n\tNOT_PREVIEW = \"NOT_PREVIEW\",\n}\n\nexport type PrismicContextState = {\n\t/**\n\t * The repository name of the preview session, if active.\n\t */\n\tactiveRepositoryName: string | undefined;\n\t/**\n\t * The repository name of the preview session, if active.\n\t */\n\tpreviewState: PrismicPreviewState;\n\t/**\n\t * The error if the preview produced a failure.\n\t */\n\terror?: Error;\n\t/**\n\t * The resolved preview path if entered from a preview resolver page.\n\t */\n\tresolvedPath?: string;\n\t/**\n\t * Determines if all preview content has been fetched and prepared.\n\t */\n\tisBootstrapped: boolean;\n\t/**\n\t * Record of `gatsby-source-prismic` runtimes keyed by their repository name.\n\t */\n\truntimeStore: Record;\n\t/**\n\t * Record of plugin options keyed by their repository name.\n\t */\n\tpluginOptionsStore: Record;\n\t/**\n\t * Configuration for each repository\n\t */\n\trepositoryConfigs: PrismicUnpublishedRepositoryConfigs;\n};\n\nexport enum PrismicContextActionType {\n\tSetActiveRepositoryName = \"SetActiveRepositoryName\",\n\tSetAccessToken = \"SetAccessToken\",\n\n\tSetupRuntime = \"SetupRuntime\",\n\tRegisterDocuments = \"RegisterDocuments\",\n\tImportTypePaths = \"ImportTypePaths\",\n\n\tStartResolving = \"StartResolving\",\n\tResolved = \"Resolved\",\n\n\tStartBootstrapping = \"StartBootstrapping\",\n\tBootstrapped = \"Bootstrapped\",\n\n\tFailed = \"Failed\",\n\tNotAPreview = \"NotAPreview\",\n\tPromptForAccessToken = \"PromptForAccessToken\",\n\n\tGoToIdle = \"GoToIdle\",\n}\n\nexport type PrismicContextAction =\n\t| {\n\t\t\ttype: PrismicContextActionType.SetActiveRepositoryName;\n\t\t\tpayload: { repositoryName: string };\n\t }\n\t| {\n\t\t\ttype: PrismicContextActionType.SetAccessToken;\n\t\t\tpayload: { repositoryName: string; accessToken: string };\n\t }\n\t| {\n\t\t\ttype: PrismicContextActionType.SetupRuntime;\n\t\t\tpayload: {\n\t\t\t\trepositoryName: string;\n\t\t\t\trepositoryConfig: PrismicRepositoryConfig;\n\t\t\t\tpluginOptions: PluginOptions;\n\t\t\t};\n\t }\n\t| {\n\t\t\ttype: PrismicContextActionType.RegisterDocuments;\n\t\t\tpayload: {\n\t\t\t\trepositoryName: string;\n\t\t\t\tdocuments: prismicT.PrismicDocument[];\n\t\t\t};\n\t }\n\t| {\n\t\t\ttype: PrismicContextActionType.ImportTypePaths;\n\t\t\tpayload: { repositoryName: string; typePathsExport: string };\n\t }\n\t| {\n\t\t\ttype: PrismicContextActionType.StartResolving;\n\t }\n\t| {\n\t\t\ttype: PrismicContextActionType.Resolved;\n\t\t\tpayload: { path: string };\n\t }\n\t| {\n\t\t\ttype: PrismicContextActionType.StartBootstrapping;\n\t }\n\t| {\n\t\t\ttype: PrismicContextActionType.Bootstrapped;\n\t }\n\t| {\n\t\t\ttype: PrismicContextActionType.NotAPreview;\n\t }\n\t| {\n\t\t\ttype: PrismicContextActionType.PromptForAccessToken;\n\t }\n\t| {\n\t\t\ttype: PrismicContextActionType.Failed;\n\t\t\tpayload: { error: Error };\n\t }\n\t| {\n\t\t\ttype: PrismicContextActionType.Failed;\n\t\t\tpayload: { error: Error };\n\t }\n\t| {\n\t\t\ttype: PrismicContextActionType.GoToIdle;\n\t };\n\nexport const contextReducer = (\n\tstate: PrismicContextState,\n\taction: PrismicContextAction,\n): PrismicContextState => {\n\tswitch (action.type) {\n\t\tcase PrismicContextActionType.SetActiveRepositoryName: {\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tactiveRepositoryName: action.payload.repositoryName,\n\t\t\t};\n\t\t}\n\n\t\tcase PrismicContextActionType.SetupRuntime: {\n\t\t\tconst runtime = gatsbyPrismic.createRuntime({\n\t\t\t\tlinkResolver: action.payload.repositoryConfig.linkResolver,\n\t\t\t\thtmlSerializer: action.payload.repositoryConfig.htmlSerializer,\n\t\t\t\ttransformFieldName: action.payload.repositoryConfig.transformFieldName,\n\t\t\t\ttypePrefix: action.payload.pluginOptions.typePrefix,\n\t\t\t\timageImgixParams: action.payload.pluginOptions.imageImgixParams,\n\t\t\t\timagePlaceholderImgixParams:\n\t\t\t\t\taction.payload.pluginOptions.imagePlaceholderImgixParams,\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\truntimeStore: {\n\t\t\t\t\t...state.runtimeStore,\n\t\t\t\t\t[action.payload.repositoryName]: runtime,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tcase PrismicContextActionType.RegisterDocuments: {\n\t\t\tconst runtime = state.runtimeStore[action.payload.repositoryName];\n\n\t\t\tif (runtime) {\n\t\t\t\truntime.registerDocuments(action.payload.documents);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`A runtime for repository \"${action.payload.repositoryName}\" as not found`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn state;\n\t\t}\n\n\t\tcase PrismicContextActionType.ImportTypePaths: {\n\t\t\tconst runtime = state.runtimeStore[action.payload.repositoryName];\n\n\t\t\tif (runtime) {\n\t\t\t\truntime.importTypePaths(action.payload.typePathsExport);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`A runtime for repository \"${action.payload.repositoryName}\" as not found`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn state;\n\t\t}\n\n\t\tcase PrismicContextActionType.SetAccessToken: {\n\t\t\tconst repositoryName = action.payload.repositoryName;\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tpluginOptionsStore: {\n\t\t\t\t\t...state.pluginOptionsStore,\n\t\t\t\t\t[repositoryName]: {\n\t\t\t\t\t\t...state.pluginOptionsStore[repositoryName],\n\t\t\t\t\t\taccessToken: action.payload.accessToken,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tcase PrismicContextActionType.StartResolving: {\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tpreviewState: PrismicPreviewState.RESOLVING,\n\t\t\t};\n\t\t}\n\n\t\tcase PrismicContextActionType.Resolved: {\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tpreviewState: PrismicPreviewState.RESOLVED,\n\t\t\t\tresolvedPath: action.payload.path,\n\t\t\t};\n\t\t}\n\n\t\tcase PrismicContextActionType.StartBootstrapping: {\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tpreviewState: PrismicPreviewState.BOOTSTRAPPING,\n\t\t\t\tisBootstrapped: false,\n\t\t\t};\n\t\t}\n\n\t\tcase PrismicContextActionType.Bootstrapped: {\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tpreviewState: PrismicPreviewState.ACTIVE,\n\t\t\t\tisBootstrapped: true,\n\t\t\t};\n\t\t}\n\n\t\tcase PrismicContextActionType.Failed: {\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tpreviewState: PrismicPreviewState.FAILED,\n\t\t\t\terror: action.payload.error,\n\t\t\t};\n\t\t}\n\n\t\tcase PrismicContextActionType.NotAPreview: {\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tpreviewState: PrismicPreviewState.NOT_PREVIEW,\n\t\t\t};\n\t\t}\n\n\t\tcase PrismicContextActionType.PromptForAccessToken: {\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tpreviewState: PrismicPreviewState.PROMPT_FOR_ACCESS_TOKEN,\n\t\t\t};\n\t\t}\n\n\t\tcase PrismicContextActionType.GoToIdle: {\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tpreviewState: PrismicPreviewState.IDLE,\n\t\t\t};\n\t\t}\n\t}\n};\n\nconst defaultInitialState: PrismicContextState = {\n\tactiveRepositoryName: undefined,\n\tpreviewState: PrismicPreviewState.IDLE,\n\tisBootstrapped: false,\n\truntimeStore: {},\n\tpluginOptionsStore: {},\n\trepositoryConfigs: [],\n};\n\nconst createInitialState = (\n\trepositoryConfigs = defaultInitialState.repositoryConfigs,\n): PrismicContextState => {\n\tconst pluginOptionsStore =\n\t\ttypeof window === \"undefined\"\n\t\t\t? {}\n\t\t\t: window[WINDOW_PLUGIN_OPTIONS_KEY] || {};\n\tconst repositoryNames = Object.keys(pluginOptionsStore);\n\n\tconst injectedPluginOptionsStore = repositoryNames.reduce(\n\t\t(acc: Record, repositoryName) => {\n\t\t\tconst persistedAccessTokenCookieName = sprintf(\n\t\t\t\tCOOKIE_ACCESS_TOKEN_NAME,\n\t\t\t\trepositoryName,\n\t\t\t);\n\t\t\tconst persistedAccessToken = cookie.get(persistedAccessTokenCookieName);\n\n\t\t\tacc[repositoryName] = pluginOptionsStore[repositoryName];\n\n\t\t\tif (acc[repositoryName].accessToken == null && persistedAccessToken) {\n\t\t\t\tacc[repositoryName].accessToken = persistedAccessToken;\n\t\t\t}\n\n\t\t\treturn acc;\n\t\t},\n\t\t{},\n\t);\n\n\treturn {\n\t\t...defaultInitialState,\n\t\tpluginOptionsStore: injectedPluginOptionsStore,\n\t\trepositoryConfigs,\n\t};\n};\n\nconst defaultContextValue: PrismicContextValue = [\n\tdefaultInitialState,\n\t() => void 0,\n];\n\nexport const PrismicContext = React.createContext(defaultContextValue);\n\nexport type PrismicProviderProps = {\n\trepositoryConfigs?: PrismicUnpublishedRepositoryConfigs;\n\tchildren?: React.ReactNode;\n};\n\nexport const PrismicPreviewProvider = ({\n\trepositoryConfigs,\n\tchildren,\n}: PrismicProviderProps): JSX.Element => {\n\tconst initialState = createInitialState(repositoryConfigs);\n\tconst reducerTuple = React.useReducer(contextReducer, initialState);\n\n\tif (typeof window !== \"undefined\") {\n\t\twindow[WINDOW_PROVIDER_PRESENCE_KEY] = true;\n\t}\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n","/**\n * Interpolate values into a string using a `sprintf`-like syntax. Each instance\n * of \"`%s`\" in the string will be replaced with a given value in the order they\n * are given.\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 * @see https://gist.github.com/rmariuzzo/8761698#gistcomment-2375590\n */\nexport const sprintf = (string: string, ...args: string[]): string => {\n\tlet i = 0;\n\n\treturn string.replace(/%s/g, () => args[i++]);\n};\n","import * as React from \"react\";\n\nimport {\n\tMISSING_PROVIDER_MSG,\n\tWINDOW_PROVIDER_PRESENCE_KEY,\n} from \"./constants\";\nimport {\n\tPrismicContext,\n\tPrismicContextAction,\n\tPrismicContextState,\n} from \"./context\";\n\ntype UsePrismicPreviewContextValue = readonly [\n\tPrismicContextState,\n\tReact.Dispatch,\n];\n\n/**\n * Returns the global state for Prismic preview sessions.\n */\nexport const usePrismicPreviewContext = (): UsePrismicPreviewContextValue => {\n\tReact.useEffect(() => {\n\t\tif (\n\t\t\tprocess.env.NODE_ENV === \"development\" &&\n\t\t\t!window[WINDOW_PROVIDER_PRESENCE_KEY]\n\t\t) {\n\t\t\tconsole.warn(MISSING_PROVIDER_MSG);\n\t\t}\n\t}, []);\n\n\treturn React.useContext(PrismicContext);\n};\n","import * as React from \"react\";\nimport * as gatsbyPrismic from \"gatsby-source-prismic\";\n\nimport { isPlainObject } from \"./lib/isPlainObject\";\nimport { isProxy } from \"./lib/isProxy\";\n\nimport { UnknownRecord } from \"./types\";\nimport { PrismicPreviewState } from \"./context\";\nimport { usePrismicPreviewContext } from \"./usePrismicPreviewContext\";\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\n * previewable content.\n */\nconst findAndReplacePreviewables = (\n\truntime: gatsbyPrismic.Runtime,\n\tnodeOrLeaf: unknown,\n): unknown => {\n\tif (isPlainObject(nodeOrLeaf)) {\n\t\t// If the value is a proxy, we can't reliably replace properties since\n\t\t// property keys could be synthetic. We opt to ignore the object\n\t\t// completely.\n\t\t//\n\t\t// At the time of writing this comment, Proxies are only present in Link\n\t\t// fields. We can safely opt out of merging preview data in this case.\n\t\tif (isProxy(nodeOrLeaf)) {\n\t\t\treturn nodeOrLeaf;\n\t\t}\n\n\t\tconst nodeId = nodeOrLeaf[gatsbyPrismic.PREVIEWABLE_NODE_ID_FIELD] as\n\t\t\t| string\n\t\t\t| undefined;\n\t\tif (nodeId && runtime.hasNode(nodeId)) {\n\t\t\treturn runtime.getNode(nodeId);\n\t\t}\n\n\t\t// We didn't find a previewable field, so continue to iterate through all\n\t\t// properties to find it.\n\t\tconst newNode = {} as typeof nodeOrLeaf;\n\t\tfor (const key in nodeOrLeaf) {\n\t\t\tnewNode[key] = findAndReplacePreviewables(runtime, nodeOrLeaf[key]);\n\t\t}\n\n\t\treturn newNode;\n\t}\n\n\t// Iterate all elements in the node to find the previewable value.\n\tif (Array.isArray(nodeOrLeaf)) {\n\t\treturn (nodeOrLeaf as unknown[]).map((subnode) =>\n\t\t\tfindAndReplacePreviewables(runtime, subnode),\n\t\t);\n\t}\n\n\t// If the node is not an object or array, it cannot be a previewable value.\n\treturn 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 `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 `nodes`.\n */\nconst traverseAndReplace = (\n\tstaticData: TStaticData,\n\truntime: gatsbyPrismic.Runtime,\n): { data: TStaticData; isPreview: boolean } => {\n\tif (runtime.nodes.length > 0) {\n\t\treturn {\n\t\t\tdata: findAndReplacePreviewables(runtime, staticData) as TStaticData,\n\t\t\tisPreview: true,\n\t\t};\n\t} else {\n\t\treturn {\n\t\t\tdata: staticData,\n\t\t\tisPreview: false,\n\t\t};\n\t}\n};\n\nexport type UsePrismicPreviewDataConfig = {\n\t/**\n\t * Determines if merging should be skipped.\n\t */\n\tskip?: boolean;\n};\n\nexport type UsePrismicPreviewDataResult = {\n\t/**\n\t * Data with previewed content merged if matching documents are found.\n\t */\n\tdata: TStaticData;\n\n\t/**\n\t * Boolean determining if `data` contains previewed data.\n\t */\n\tisPreview: 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 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\n * the merged data contains preview data.\n */\nexport const useMergePrismicPreviewData = (\n\tstaticData: TStaticData,\n\tconfig: UsePrismicPreviewDataConfig = { skip: false },\n): UsePrismicPreviewDataResult => {\n\tconst [state] = usePrismicPreviewContext();\n\n\treturn React.useMemo(() => {\n\t\tconst runtime = state.activeRepositoryName\n\t\t\t? state.runtimeStore[state.activeRepositoryName]\n\t\t\t: undefined;\n\n\t\tif (\n\t\t\t!config.skip &&\n\t\t\truntime &&\n\t\t\tstate.previewState === PrismicPreviewState.ACTIVE\n\t\t) {\n\t\t\treturn traverseAndReplace(staticData, runtime);\n\t\t} else {\n\t\t\treturn { data: staticData, isPreview: false };\n\t\t}\n\t}, [staticData, config.skip, state]);\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 = <\n\tT extends Record = Record,\n>(\n\tvalue: unknown,\n): value is T => {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\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 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\treturn Boolean(\n\t\t// @ts-expect-error - We are forcibly adding this \"is proxy\" property\n\t\tvalue[IS_PROXY],\n\t);\n};\n","import * as O from \"fp-ts/Option\";\n\nconst extractFirstSubdomain = (host: string): O.Option =>\n\tO.fromNullable(host.split(\".\")[0]);\n\nconst parseObjectRef = (previewRef: string): O.Option => {\n\ttry {\n\t\tconst parsed = JSON.parse(previewRef);\n\t\tconst keys = Object.keys(parsed);\n\t\tconst domainKey = keys.find((key) => /\\.prismic\\.io$/.test(key));\n\n\t\treturn domainKey ? extractFirstSubdomain(domainKey) : O.none;\n\t} catch {\n\t\treturn O.none;\n\t}\n};\n\nconst parseURLRef = (previewRef: string): O.Option => {\n\ttry {\n\t\tconst url = new URL(previewRef);\n\n\t\treturn extractFirstSubdomain(url.host);\n\t} catch {\n\t\treturn O.none;\n\t}\n};\n\nexport const extractPreviewRefRepositoryName = (\n\tpreviewRef: string,\n): O.Option => {\n\tconst fromObjectRef = parseObjectRef(previewRef);\n\tif (O.isSome(fromObjectRef)) {\n\t\treturn fromObjectRef;\n\t} else {\n\t\treturn parseURLRef(previewRef);\n\t}\n};\n","import * as gatsby from \"gatsby\";\nimport * as E from \"fp-ts/Either\";\n\nimport { FetchLike } from \"../types\";\n\nimport { buildTypePathsStoreFilename } from \"./buildTypePathsStoreFilename\";\n\ntype FetchTypePathsConfig = {\n\trepositoryName: string;\n\tfetch?: FetchLike;\n};\n\nexport const fetchTypePaths = async (\n\tconfig: FetchTypePathsConfig,\n): Promise> => {\n\tconst filename = buildTypePathsStoreFilename(config.repositoryName);\n\tconst url = gatsby.withAssetPrefix(`/static/${filename}`);\n\tconst fetchFn = config.fetch || globalThis.fetch;\n\n\ttry {\n\t\tconst res = await fetchFn(url, {\n\t\t\t// We opt out of the cache to ensure we always fetch the latest type paths.\n\t\t\t// Since the URL to the type paths JSON file is always the same (a hashed\n\t\t\t// version of the repository name), some servers may not properly cache\n\t\t\t// bust the resource.\n\t\t\t//\n\t\t\t// Type paths are only fetched at bootstrap so the additional network time\n\t\t\t// this imposes should be minimal.\n\t\t\tcache: \"no-cache\",\n\t\t});\n\t\tconst text = await res.text();\n\n\t\treturn E.right(text);\n\t} catch (error) {\n\t\treturn E.left(error as Error);\n\t}\n};\n","import md5 from \"tiny-hashes/md5\";\n\nimport { TYPE_PATHS_BASENAME_TEMPLATE } from \"../constants\";\nimport { sprintf } from \"./sprintf\";\n\nexport interface BuildTypePathsStoreFilenameEnv {\n\trepositoryName: string;\n}\n\nexport const buildTypePathsStoreFilename = (repositoryName: string): string => {\n\treturn `${md5(sprintf(TYPE_PATHS_BASENAME_TEMPLATE, repositoryName))}.json`;\n};\n","import * as React from \"react\";\nimport * as prismic from \"@prismicio/client\";\nimport * as prismicT from \"@prismicio/types\";\nimport * as E from \"fp-ts/Either\";\nimport * as O from \"fp-ts/Option\";\nimport * as cookie from \"es-cookie\";\n\nimport { extractPreviewRefRepositoryName } from \"./lib/extractPreviewRefRepositoryName\";\nimport { fetchTypePaths } from \"./lib/fetchTypePaths\";\nimport { sprintf } from \"./lib/sprintf\";\n\nimport { FetchLike, PrismicRepositoryConfigs } from \"./types\";\nimport {\n\tMISSING_PLUGIN_OPTIONS_MSG,\n\tMISSING_REPOSITORY_CONFIG_MSG,\n} from \"./constants\";\nimport {\n\tPrismicContextActionType,\n\tPrismicContextState,\n\tPrismicPreviewState,\n} from \"./context\";\nimport { usePrismicPreviewContext } from \"./usePrismicPreviewContext\";\n\nexport type UsePrismicPreviewBootstrapConfig = {\n\tfetch?: FetchLike;\n};\n\nexport type UsePrismicPreviewBootstrapFn = () => Promise;\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\n * function runs.\n */\nexport const usePrismicPreviewBootstrap = (\n\trepositoryConfigs: PrismicRepositoryConfigs = [],\n\tconfig: UsePrismicPreviewBootstrapConfig = {},\n): UsePrismicPreviewBootstrapFn => {\n\tconst [contextState, contextDispatch] = usePrismicPreviewContext();\n\n\t// A ref to the latest contextState is setup specifically for getTypePath\n\t// which is populated during the program's runtime. Since\n\t// contextState.typePaths is empty at all times during the program's run due\n\t// to closures, we need to opt out of the closure and use a ref.\n\t//\n\t// If you have a better idea how to handle this, please share!\n\tconst contextStateRef = React.useRef(contextState);\n\n\t// We need to update the ref anytime contextState changes to ensure lazy\n\t// functions get the latest data.\n\tReact.useEffect(() => {\n\t\tcontextStateRef.current = contextState;\n\t}, [contextState]);\n\n\treturn React.useCallback(async (): Promise => {\n\t\tif (\n\t\t\t(contextStateRef.current.previewState !== PrismicPreviewState.IDLE &&\n\t\t\t\tcontextStateRef.current.previewState !==\n\t\t\t\t\tPrismicPreviewState.RESOLVED) ||\n\t\t\tcontextStateRef.current.isBootstrapped\n\t\t) {\n\t\t\t// No op. Bootstrapping should only happen once.\n\t\t\treturn;\n\t\t}\n\n\t\tconst previewRef = cookie.get(prismic.cookie.preview);\n\t\tconst repositoryName = previewRef\n\t\t\t? extractPreviewRefRepositoryName(previewRef)\n\t\t\t: O.none;\n\n\t\tif (O.isNone(repositoryName)) {\n\t\t\treturn contextDispatch({\n\t\t\t\ttype: PrismicContextActionType.NotAPreview,\n\t\t\t});\n\t\t}\n\n\t\tcontextDispatch({\n\t\t\ttype: PrismicContextActionType.SetActiveRepositoryName,\n\t\t\tpayload: { repositoryName: repositoryName.value },\n\t\t});\n\n\t\t// TODO: Deeply merge repository configs\n\t\tconst resolvedRepositoryConfigs = [\n\t\t\t...repositoryConfigs,\n\t\t\t...contextState.repositoryConfigs,\n\t\t];\n\t\tconst repositoryConfig = resolvedRepositoryConfigs.find(\n\t\t\t(config) => config.repositoryName === repositoryName.value,\n\t\t);\n\t\tif (!repositoryConfig) {\n\t\t\treturn contextDispatch({\n\t\t\t\ttype: PrismicContextActionType.Failed,\n\t\t\t\tpayload: {\n\t\t\t\t\terror: new Error(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\tMISSING_REPOSITORY_CONFIG_MSG,\n\t\t\t\t\t\t\trepositoryName.value,\n\t\t\t\t\t\t\t\"withPrismicPreview and withPrismicUnpublishedPreview\",\n\t\t\t\t\t\t),\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tconst repositoryPluginOptions =\n\t\t\tcontextState.pluginOptionsStore[repositoryName.value];\n\t\tif (!repositoryPluginOptions) {\n\t\t\treturn contextDispatch({\n\t\t\t\ttype: PrismicContextActionType.Failed,\n\t\t\t\tpayload: {\n\t\t\t\t\terror: new Error(\n\t\t\t\t\t\tsprintf(MISSING_PLUGIN_OPTIONS_MSG, repositoryName.value),\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tcontextDispatch({\n\t\t\ttype: PrismicContextActionType.SetupRuntime,\n\t\t\tpayload: {\n\t\t\t\trepositoryName: repositoryName.value,\n\t\t\t\trepositoryConfig,\n\t\t\t\tpluginOptions: repositoryPluginOptions,\n\t\t\t},\n\t\t});\n\n\t\t// Begin bootstrap phase.\n\t\tcontextDispatch({\n\t\t\ttype: PrismicContextActionType.StartBootstrapping,\n\t\t});\n\n\t\tconst typePaths = await fetchTypePaths({\n\t\t\trepositoryName: repositoryName.value,\n\t\t\tfetch: config.fetch,\n\t\t});\n\t\tif (E.isLeft(typePaths)) {\n\t\t\treturn contextDispatch({\n\t\t\t\ttype: PrismicContextActionType.Failed,\n\t\t\t\tpayload: { error: typePaths.left },\n\t\t\t});\n\t\t}\n\n\t\tcontextDispatch({\n\t\t\ttype: PrismicContextActionType.ImportTypePaths,\n\t\t\tpayload: {\n\t\t\t\trepositoryName: repositoryName.value,\n\t\t\t\ttypePathsExport: typePaths.right,\n\t\t\t},\n\t\t});\n\n\t\tconst endpoint =\n\t\t\trepositoryPluginOptions.apiEndpoint ??\n\t\t\tprismic.getEndpoint(repositoryName.value);\n\t\tconst client = prismic.createClient(endpoint, {\n\t\t\taccessToken: repositoryPluginOptions.accessToken,\n\t\t\troutes: repositoryPluginOptions.routes,\n\t\t\tdefaultParams: {\n\t\t\t\tlang: repositoryPluginOptions.lang,\n\t\t\t\tfetchLinks: repositoryPluginOptions.fetchLinks,\n\t\t\t\tgraphQuery: repositoryPluginOptions.graphQuery,\n\t\t\t\tpageSize: repositoryPluginOptions.pageSize,\n\t\t\t},\n\t\t\tfetch: config.fetch,\n\t\t});\n\t\tclient.enableAutoPreviews();\n\n\t\tlet allDocuments: prismicT.PrismicDocument[];\n\t\ttry {\n\t\t\tallDocuments = await client.dangerouslyGetAll();\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\terror instanceof prismic.ForbiddenError &&\n\t\t\t\trepositoryPluginOptions.promptForAccessToken\n\t\t\t) {\n\t\t\t\treturn contextDispatch({\n\t\t\t\t\ttype: PrismicContextActionType.PromptForAccessToken,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn contextDispatch({\n\t\t\t\t\ttype: PrismicContextActionType.Failed,\n\t\t\t\t\tpayload: { error: error as Error },\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tcontextDispatch({\n\t\t\ttype: PrismicContextActionType.RegisterDocuments,\n\t\t\tpayload: {\n\t\t\t\trepositoryName: repositoryName.value,\n\t\t\t\tdocuments: allDocuments,\n\t\t\t},\n\t\t});\n\n\t\tcontextDispatch({\n\t\t\ttype: PrismicContextActionType.Bootstrapped,\n\t\t});\n\t}, [\n\t\trepositoryConfigs,\n\t\tcontextState.repositoryConfigs,\n\t\tcontextState.pluginOptionsStore,\n\t\tcontextDispatch,\n\t\tconfig.fetch,\n\t]);\n};\n","import * as React from \"react\";\n\n/**\n * Returns a component's display name. If none is provided, \"Component\" is 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\tWrappedComponent: React.ComponentType,\n): string =>\n\tWrappedComponent.displayName || WrappedComponent.name || \"Component\";\n","import * as React from \"react\";\nimport root from \"react-shadow\";\n\nimport styles from \"../styles.css\";\n\ntype RootProps = {\n\tchildren?: React.ReactNode;\n};\n\nexport const Root = ({ children }: RootProps): JSX.Element => {\n\treturn (\n\t\t\n\t\t\t
{children}
\n\t\t\t\n\t\t
\n\t);\n};\n","import * as prismic from \"@prismicio/client\";\n\nexport const userFriendlyError = (error: Error): Error => {\n\tif (error instanceof prismic.ForbiddenError) {\n\t\treturn new Error(\"Unauthorized access\");\n\t} else {\n\t\treturn error;\n\t}\n};\n","import * as React from \"react\";\nimport { Dialog } from \"@reach/dialog\";\nimport clsx from \"clsx\";\n\nimport { Root } from \"./Root\";\n\nconst CloseSVG = (props: React.SVGProps): JSX.Element => (\n\t\n\t\t\n\t\n);\n\ntype PrismicLogoProps = {\n\tfillWhite?: boolean;\n} & React.SVGProps;\n\nconst PrismicLogo = ({\n\tfillWhite,\n\t...props\n}: PrismicLogoProps): JSX.Element => (\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n);\n\nexport type ModalProps = {\n\tchildren?: React.ReactNode;\n\tvariant?: \"base\" | \"red\";\n\trepositoryName: string;\n\tonDismiss: () => void;\n\tisOpen: boolean;\n\t[\"aria-label\"]: string;\n};\n\nexport const Modal = ({\n\tvariant = \"base\",\n\trepositoryName,\n\tonDismiss,\n\tisOpen,\n\tchildren,\n\t\"aria-label\": ariaLabel,\n}: ModalProps): JSX.Element => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
{children}
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tClose modal\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\t\t\n\t);\n};\n","import * as React from \"react\";\nimport clsx from \"clsx\";\n\ntype ButtonProps = {\n\tvariant: \"purple\" | \"white\" | \"whiteOutline\";\n} & React.ButtonHTMLAttributes;\n\nexport const Button = ({\n\tclassName,\n\tvariant,\n\t...props\n}: ButtonProps): JSX.Element => (\n\t\n);\n","import * as React from \"react\";\nimport { PolymorphicPropsWithoutRef } from \"react-polymorphic-types\";\nimport clsx from \"clsx\";\n\nconst defaultElement = \"div\";\n\nconst variants = {\n\t\"sans-12\": {\n\t\tfontFamilyClassName: \"font-sans\",\n\t\tfontSizeClassName: \"text-12\",\n\t\tleadingClassName: \"leading-1_5\",\n\t\ttrackingClassName: undefined,\n\t},\n\t\"sans-12-14\": {\n\t\tfontFamilyClassName: \"font-sans\",\n\t\tfontSizeClassName: \"text-12 sm:text-14\",\n\t\tleadingClassName: \"leading-1_5\",\n\t\ttrackingClassName: undefined,\n\t},\n\t\"sans-14\": {\n\t\tfontFamilyClassName: \"font-sans\",\n\t\tfontSizeClassName: \"text-14\",\n\t\tleadingClassName: \"leading-1_1\",\n\t\ttrackingClassName: undefined,\n\t},\n\t\"sans-16\": {\n\t\tfontFamilyClassName: \"font-sans\",\n\t\tfontSizeClassName: \"text-16\",\n\t\tleadingClassName: \"leading-1_1\",\n\t\ttrackingClassName: undefined,\n\t},\n\t\"sans-24\": {\n\t\tfontFamilyClassName: \"font-sans\",\n\t\tfontSizeClassName: \"text-24\",\n\t\tleadingClassName: \"leading-1_1\",\n\t\ttrackingClassName: \"tracking-tight\",\n\t},\n\t\"mono-20\": {\n\t\tfontFamilyClassName: \"font-mono\",\n\t\tfontSizeClassName: \"text-20\",\n\t\tleadingClassName: \"leading-1_4\",\n\t\ttrackingClassName: undefined,\n\t},\n} as const;\n\ntype TextOwnProps = {\n\tvariant: keyof typeof variants;\n\tfontFamilyClassName?: string;\n\tfontSizeClassName?: string;\n\tleadingClassName?: string;\n\ttrackingClassName?: string;\n\tchildren?: React.ReactNode;\n};\n\nexport type TextProps =\n\tPolymorphicPropsWithoutRef;\n\nexport const Text = ({\n\tas,\n\tvariant: variantName,\n\tfontFamilyClassName,\n\tfontSizeClassName,\n\tleadingClassName,\n\ttrackingClassName,\n\tclassName,\n\t...restProps\n}: TextProps): JSX.Element => {\n\tconst Element: React.ElementType = as ?? defaultElement;\n\tconst variant = variants[variantName];\n\n\treturn (\n\t\t\n\t);\n};\n","import * as React from \"react\";\nimport clsx from \"clsx\";\n\nimport { SetAccessTokenFn } from \"../usePrismicPreviewAccessToken\";\n\nimport { Modal, ModalProps } from \"./Modal\";\nimport { Button } from \"./Button\";\nimport { Text } from \"./Text\";\n\nconst PRISMIC_DOCS_GENERATING_AN_ACCESS_TOKEN =\n\t\"https://user-guides.prismic.io/en/articles/1036153-generating-an-access-token\";\n\ntype ModalAccessTokenProps = {\n\tstate?: \"IDLE\" | \"INCORRECT\";\n\tinitialAccessToken?: string;\n\tsetAccessToken: SetAccessTokenFn;\n\tafterSubmit?: () => void;\n} & Pick;\n\nexport const ModalAccessToken = ({\n\trepositoryName,\n\tstate = \"IDLE\",\n\tinitialAccessToken = \"\",\n\tafterSubmit,\n\tsetAccessToken,\n\tisOpen,\n\tonDismiss,\n}: ModalAccessTokenProps): JSX.Element => {\n\tconst [ephemeralAccessToken, setEphemeralAccessToken] =\n\t\tReact.useState(initialAccessToken);\n\n\tReact.useEffect(() => {\n\t\tsetEphemeralAccessToken(initialAccessToken);\n\t}, [initialAccessToken]);\n\n\tconst onAccessTokenChange = (\n\t\tevent: React.FormEvent,\n\t): void => setEphemeralAccessToken(event.currentTarget.value);\n\n\tconst onSubmit = (event: React.FormEvent) => {\n\t\tevent.preventDefault();\n\t\tsetAccessToken(ephemeralAccessToken);\n\n\t\tif (afterSubmit) {\n\t\t\tafterSubmit();\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\n\t);\n};\n","import * as React from \"react\";\n\nimport { VERSION } from \"../constants\";\n\nimport { Modal, ModalProps } from \"./Modal\";\nimport { Button } from \"./Button\";\nimport { Text } from \"./Text\";\n\ntype ModalErrorProps = {\n\terrorMessage?: string;\n} & Pick;\n\nexport const ModalError = ({\n\trepositoryName,\n\terrorMessage,\n\tisOpen,\n\tonDismiss,\n}: ModalErrorProps): JSX.Element => {\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tError\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tThe preview could not be loaded.\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t{errorMessage && (\n\t\t\t\t\t\n\t\t\t\t\t\t{errorMessage}\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tRepository\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{repositoryName}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tPlugin Version\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{VERSION}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n","import * as React from \"react\";\n\nimport { Modal, ModalProps } from \"./Modal\";\nimport { Button } from \"./Button\";\nimport { Text } from \"./Text\";\n\ntype ModalLoadingProps = Pick<\n\tModalProps,\n\t\"repositoryName\" | \"isOpen\" | \"onDismiss\"\n>;\n\nexport const ModalLoading = ({\n\trepositoryName,\n\tisOpen,\n\tonDismiss,\n}: ModalLoadingProps): JSX.Element => {\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tFetching preview\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tPlease wait while your updates are loading…\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n","import * as React from \"react\";\n\nimport { userFriendlyError } from \"../lib/userFriendlyError\";\n\nimport { PrismicContextActionType, PrismicPreviewState } from \"../context\";\nimport { usePrismicPreviewContext } from \"../usePrismicPreviewContext\";\nimport { usePrismicPreviewAccessToken } from \"../usePrismicPreviewAccessToken\";\n\nimport { Root } from \"./Root\";\nimport { ModalAccessToken } from \"./ModalAccessToken\";\nimport { ModalError } from \"./ModalError\";\nimport { ModalLoading } from \"./ModalLoading\";\n\ntype PrismicPreviewUIProps = {\n\tafterAccessTokenSet(): void;\n};\n\nexport const PrismicPreviewUI = ({\n\tafterAccessTokenSet,\n}: PrismicPreviewUIProps): JSX.Element => {\n\tconst [state, dispatch] = usePrismicPreviewContext();\n\tconst [accessToken, accessTokenActions] = usePrismicPreviewAccessToken(\n\t\tstate.activeRepositoryName,\n\t);\n\n\tconst goToIdle = () => dispatch({ type: PrismicContextActionType.GoToIdle });\n\n\t// TODO: Handle modal visibility state locally, not by transitioning globally to IDLE.\n\n\treturn (\n\t\t<>\n\t\t\t{state.activeRepositoryName && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n","import * as React from \"react\";\nimport * as cookie from \"es-cookie\";\n\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 = (\n\taccessToken: string,\n\tremember?: boolean,\n) => void;\n\ntype UsePrismicPreviewAccessTokenActions = {\n\tset: SetAccessTokenFn;\n\tremoveCookie(): 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\trepositoryName?: string,\n): readonly [\n\taccessToken: string | undefined,\n\tactions: UsePrismicPreviewAccessTokenActions,\n] => {\n\tconst [contextState, contextDispatch] = usePrismicPreviewContext();\n\n\tconst cookieName = repositoryName\n\t\t? sprintf(COOKIE_ACCESS_TOKEN_NAME, repositoryName)\n\t\t: undefined;\n\n\t/**\n\t * Sets an access token for the repository and, by default, stores it in a\n\t * cookie for future preview sessions. If a cookie is not stored, the access\n\t * token is available only for the current preview session.\n\t *\n\t * @param accessToken - Access token to set for the repository.\n\t * @param remember - Determines if the access token should be stored for\n\t * future preview sessions.\n\t */\n\tconst setAccessToken = React.useCallback(\n\t\t(accessToken: string, remember = true as boolean): void => {\n\t\t\tif (!repositoryName || !cookieName) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"A repository name must be provided to usePrismicPreviewAccessToken before using the set function.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tcontextDispatch({\n\t\t\t\ttype: PrismicContextActionType.SetAccessToken,\n\t\t\t\tpayload: { repositoryName, accessToken },\n\t\t\t});\n\n\t\t\tif (remember) {\n\t\t\t\tcookie.set(cookieName, accessToken);\n\t\t\t}\n\t\t},\n\t\t[cookieName, contextDispatch, repositoryName],\n\t);\n\n\t/**\n\t * Removes the stored access token, if set.\n\t */\n\tconst removeAccessTokenCookie = React.useCallback(() => {\n\t\tif (!cookieName) {\n\t\t\tthrow new Error(\n\t\t\t\t\"A repository name must be provided to usePrismicPreviewAccessToken before using the removeCookie function.\",\n\t\t\t);\n\t\t}\n\n\t\tcookie.remove(cookieName);\n\t}, [cookieName]);\n\n\treturn React.useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\trepositoryName\n\t\t\t\t\t? contextState.pluginOptionsStore[repositoryName]?.accessToken\n\t\t\t\t\t: undefined,\n\t\t\t\t{\n\t\t\t\t\tset: setAccessToken,\n\t\t\t\t\tremoveCookie: removeAccessTokenCookie,\n\t\t\t\t},\n\t\t\t] as const,\n\t\t[\n\t\t\trepositoryName,\n\t\t\tcontextState.pluginOptionsStore,\n\t\t\tsetAccessToken,\n\t\t\tremoveAccessTokenCookie,\n\t\t],\n\t);\n};\n","import * as React from \"react\";\nimport * as gatsby from \"gatsby\";\n\nimport { getComponentDisplayName } from \"./lib/getComponentDisplayName\";\n\nimport { FetchLike, PrismicRepositoryConfigs, UnknownRecord } from \"./types\";\nimport { usePrismicPreviewBootstrap } from \"./usePrismicPreviewBootstrap\";\nimport { useMergePrismicPreviewData } from \"./useMergePrismicPreviewData\";\nimport { usePrismicPreviewContext } from \"./usePrismicPreviewContext\";\nimport { PrismicContextActionType } from \"./context\";\n\nimport { PrismicPreviewUI } from \"./components/PrismicPreviewUI\";\n\nexport interface WithPrismicPreviewProps<\n\tTStaticData extends UnknownRecord = UnknownRecord,\n> {\n\tisPrismicPreview: boolean | null;\n\tprismicPreviewOriginalData: TStaticData;\n}\n\nexport type WithPrismicPreviewConfig = {\n\tmergePreviewData?: boolean;\n\tfetch?: FetchLike;\n};\n\n/**\n * A React higher order component (HOC) that wraps a Gatsby page to\n * automatically merge previewed content during a Prismic preview session.\n *\n * @param WrappedComponent - The Gatsby page component.\n * @param usePrismicPreviewBootstrapConfig - Configuration determining how the\n * preview session is managed.\n * @param config - Configuration determining how the HOC handes previewed content.\n *\n * @returns `WrappedComponent` with automatic Prismic preview data.\n */\nexport const withPrismicPreview = <\n\tTStaticData extends UnknownRecord,\n\tTProps extends gatsby.PageProps,\n>(\n\tWrappedComponent: React.ComponentType<\n\t\tTProps & WithPrismicPreviewProps\n\t>,\n\trepositoryConfigs: PrismicRepositoryConfigs = [],\n\tconfig: WithPrismicPreviewConfig = {},\n): React.ComponentType => {\n\tconst WithPrismicPreview = (props: TProps): React.ReactElement => {\n\t\tconst [, contextDispatch] = usePrismicPreviewContext();\n\t\tconst bootstrapPreview = usePrismicPreviewBootstrap(repositoryConfigs, {\n\t\t\tfetch: config.fetch,\n\t\t});\n\t\tconst mergedData = useMergePrismicPreviewData(props.data, {\n\t\t\tskip: config.mergePreviewData,\n\t\t});\n\n\t\tconst afterAccessTokenSet = React.useCallback(() => {\n\t\t\tcontextDispatch({ type: PrismicContextActionType.GoToIdle });\n\t\t\tbootstrapPreview();\n\t\t}, [bootstrapPreview, contextDispatch]);\n\n\t\tReact.useEffect(() => {\n\t\t\tbootstrapPreview();\n\t\t}, [bootstrapPreview]);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n\tconst wrappedComponentName = getComponentDisplayName(WrappedComponent);\n\tWithPrismicPreview.displayName = `withPrismicPreview(${wrappedComponentName})`;\n\n\treturn WithPrismicPreview;\n};\n","import * as React from \"react\";\nimport * as gatsby from \"gatsby\";\n\nimport { getComponentDisplayName } from \"./lib/getComponentDisplayName\";\n\nimport { FetchLike, PrismicRepositoryConfigs } from \"./types\";\nimport { usePrismicPreviewResolver } from \"./usePrismicPreviewResolver\";\nimport { usePrismicPreviewContext } from \"./usePrismicPreviewContext\";\n\nimport {\n\tPrismicContextActionType,\n\tPrismicContextState,\n\tPrismicPreviewState,\n} from \"./context\";\nimport { PrismicPreviewUI } from \"./components/PrismicPreviewUI\";\n\nexport interface WithPrismicPreviewResolverProps {\n\tisPrismicPreview: boolean | null;\n\tprismicPreviewPath: PrismicContextState[\"resolvedPath\"];\n}\n\nexport type WithPrismicPreviewResolverConfig = {\n\tautoRedirect?: boolean;\n\tnavigate?: typeof gatsby.navigate;\n\tfetch?: FetchLike;\n};\n\n/**\n * A React higher order component (HOC) that wraps a Gatsby page to\n * automatically setup a Prismic preview resolver page. It can automatically\n * redirect an editor to the previewed document's page.\n *\n * @param WrappedComponent - The Gatsby page component.\n * @param usePrismicPreviewResolverConfig - Configuration determining how the\n * preview session is resolved.\n * @param config - Configuration determining how the HOC handes the resolved preview.\n *\n * @returns `WrappedComponent` with automatic Prismic preview resolving.\n */\nexport const withPrismicPreviewResolver = (\n\tWrappedComponent: React.ComponentType<\n\t\tTProps & WithPrismicPreviewResolverProps\n\t>,\n\trepositoryConfigs: PrismicRepositoryConfigs = [],\n\tconfig: WithPrismicPreviewResolverConfig = {},\n): React.ComponentType => {\n\tconst WithPrismicPreviewResolver = (props: TProps): React.ReactElement => {\n\t\tconst [contextState, contextDispatch] = usePrismicPreviewContext();\n\t\tconst resolvePreview = usePrismicPreviewResolver(repositoryConfigs, {\n\t\t\tfetch: config.fetch,\n\t\t});\n\n\t\tconst isPreview =\n\t\t\tcontextState.previewState === PrismicPreviewState.IDLE\n\t\t\t\t? null\n\t\t\t\t: contextState.previewState !== PrismicPreviewState.NOT_PREVIEW;\n\n\t\tconst afterAccessTokenSet = React.useCallback(() => {\n\t\t\tcontextDispatch({ type: PrismicContextActionType.GoToIdle });\n\t\t\tresolvePreview();\n\t\t}, [resolvePreview, contextDispatch]);\n\n\t\tReact.useEffect(() => {\n\t\t\tresolvePreview();\n\t\t}, [resolvePreview]);\n\n\t\tReact.useEffect(() => {\n\t\t\tif (contextState.resolvedPath && (config.autoRedirect ?? true)) {\n\t\t\t\tconst navigate = config.navigate || gatsby.navigate;\n\n\t\t\t\tnavigate(contextState.resolvedPath);\n\t\t\t}\n\t\t}, [contextState.resolvedPath]);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n\tconst wrappedComponentName = getComponentDisplayName(WrappedComponent);\n\tWithPrismicPreviewResolver.displayName = `withPrismicPreviewResolver(${wrappedComponentName})`;\n\n\treturn WithPrismicPreviewResolver;\n};\n","import * as React from \"react\";\nimport * as prismic from \"@prismicio/client\";\nimport * as O from \"fp-ts/Option\";\nimport * as cookie from \"es-cookie\";\n\nimport { extractPreviewRefRepositoryName } from \"./lib/extractPreviewRefRepositoryName\";\nimport { sprintf } from \"./lib/sprintf\";\n\nimport { FetchLike, PrismicRepositoryConfigs } from \"./types\";\nimport {\n\tMISSING_PLUGIN_OPTIONS_MSG,\n\tMISSING_REPOSITORY_CONFIG_MSG,\n} from \"./constants\";\nimport {\n\tPrismicContextActionType,\n\tPrismicContextState,\n\tPrismicPreviewState,\n} from \"./context\";\nimport { usePrismicPreviewContext } from \"./usePrismicPreviewContext\";\nimport { getURLSearchParam } from \"./lib/getURLSearchParam\";\n\nexport type UsePrismicPreviewResolverConfig = {\n\tfetch?: FetchLike;\n};\n\nexport type UsePrismicPreviewResolverFn = () => Promise;\n\nexport const usePrismicPreviewResolver = (\n\trepositoryConfigs: PrismicRepositoryConfigs = [],\n\tconfig: UsePrismicPreviewResolverConfig = {},\n): UsePrismicPreviewResolverFn => {\n\tconst [contextState, contextDispatch] = usePrismicPreviewContext();\n\n\tconst contextStateRef = React.useRef(contextState);\n\n\t// We need to update the ref anytime contextState changes to ensure lazy\n\t// functions get the latest data.\n\tReact.useEffect(() => {\n\t\tcontextStateRef.current = contextState;\n\t}, [contextState]);\n\n\treturn React.useCallback(async (): Promise => {\n\t\tif (contextStateRef.current.previewState !== PrismicPreviewState.IDLE) {\n\t\t\t// No op. Resolving should only happen at IDLE.\n\t\t\treturn;\n\t\t}\n\n\t\tconst previewRef = cookie.get(prismic.cookie.preview);\n\t\tconst documentId = getURLSearchParam(\"documentId\");\n\t\tconst repositoryName = previewRef\n\t\t\t? extractPreviewRefRepositoryName(previewRef)\n\t\t\t: O.none;\n\n\t\tif (O.isNone(documentId) || O.isNone(repositoryName)) {\n\t\t\treturn contextDispatch({\n\t\t\t\ttype: PrismicContextActionType.NotAPreview,\n\t\t\t});\n\t\t}\n\n\t\tcontextDispatch({\n\t\t\ttype: PrismicContextActionType.SetActiveRepositoryName,\n\t\t\tpayload: { repositoryName: repositoryName.value },\n\t\t});\n\n\t\t// TODO: Deeply merge repository configs\n\t\tconst resolvedRepositoryConfigs = [\n\t\t\t...repositoryConfigs,\n\t\t\t...contextState.repositoryConfigs,\n\t\t];\n\t\tconst repositoryConfig = resolvedRepositoryConfigs.find(\n\t\t\t(config) => config.repositoryName === repositoryName.value,\n\t\t);\n\t\tif (!repositoryConfig) {\n\t\t\treturn contextDispatch({\n\t\t\t\ttype: PrismicContextActionType.Failed,\n\t\t\t\tpayload: {\n\t\t\t\t\terror: new Error(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\tMISSING_REPOSITORY_CONFIG_MSG,\n\t\t\t\t\t\t\trepositoryName.value,\n\t\t\t\t\t\t\t\"withPrismicPreview and withPrismicUnpublishedPreview\",\n\t\t\t\t\t\t),\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tconst repositoryPluginOptions =\n\t\t\tcontextState.pluginOptionsStore[repositoryName.value];\n\t\tif (!repositoryPluginOptions) {\n\t\t\treturn contextDispatch({\n\t\t\t\ttype: PrismicContextActionType.Failed,\n\t\t\t\tpayload: {\n\t\t\t\t\terror: new Error(\n\t\t\t\t\t\tsprintf(MISSING_PLUGIN_OPTIONS_MSG, repositoryName.value),\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\t// Begin resolving stage.\n\t\tcontextDispatch({\n\t\t\ttype: PrismicContextActionType.StartResolving,\n\t\t});\n\n\t\tconst endpoint =\n\t\t\trepositoryPluginOptions.apiEndpoint ??\n\t\t\tprismic.getEndpoint(repositoryName.value);\n\t\tconst client = prismic.createClient(endpoint, {\n\t\t\taccessToken: repositoryPluginOptions.accessToken,\n\t\t\troutes: repositoryPluginOptions.routes,\n\t\t\tdefaultParams: {\n\t\t\t\tlang: repositoryPluginOptions.lang,\n\t\t\t\tfetchLinks: repositoryPluginOptions.fetchLinks,\n\t\t\t\tgraphQuery: repositoryPluginOptions.graphQuery,\n\t\t\t},\n\t\t\tfetch: config.fetch,\n\t\t});\n\t\tclient.enableAutoPreviews();\n\n\t\tlet path: string;\n\t\ttry {\n\t\t\tpath = await client.resolvePreviewURL({\n\t\t\t\tlinkResolver: repositoryConfig.linkResolver,\n\t\t\t\tdefaultURL: \"/\",\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\terror instanceof prismic.ForbiddenError &&\n\t\t\t\trepositoryPluginOptions.promptForAccessToken\n\t\t\t) {\n\t\t\t\treturn contextDispatch({\n\t\t\t\t\ttype: PrismicContextActionType.PromptForAccessToken,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn contextDispatch({\n\t\t\t\t\ttype: PrismicContextActionType.Failed,\n\t\t\t\t\tpayload: { error: error as Error },\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tcontextDispatch({\n\t\t\ttype: PrismicContextActionType.Resolved,\n\t\t\tpayload: { path },\n\t\t});\n\t}, [\n\t\tcontextDispatch,\n\t\tcontextState.pluginOptionsStore,\n\t\tcontextState.repositoryConfigs,\n\t\trepositoryConfigs,\n\t\tconfig.fetch,\n\t]);\n};\n","import * as O from \"fp-ts/Option\";\n\nexport const getURLSearchParam = (key: string): O.Option => {\n\tconst params = new URLSearchParams(window.location.search);\n\n\treturn O.fromNullable(params.get(key));\n};\n","import * as React from \"react\";\nimport * as gatsby from \"gatsby\";\nimport * as gatsbyPrismic from \"gatsby-source-prismic\";\n\nimport { camelCase } from \"./lib/camelCase\";\nimport { getComponentDisplayName } from \"./lib/getComponentDisplayName\";\n\nimport {\n\tFetchLike,\n\tPrismicUnpublishedRepositoryConfig,\n\tPrismicUnpublishedRepositoryConfigs,\n\tUnknownRecord,\n} from \"./types\";\nimport { usePrismicPreviewBootstrap } from \"./usePrismicPreviewBootstrap\";\nimport { usePrismicPreviewContext } from \"./usePrismicPreviewContext\";\nimport { PrismicContextActionType, PrismicPreviewState } from \"./context\";\nimport { PrismicPreviewUI } from \"./components/PrismicPreviewUI\";\n\n/**\n * A convenience function to create a `componentResolver` function from a record\n * mapping a Prismic document type to a React component.\n *\n * In most cases, this convenience function is sufficient to provide a working\n * unpublished preview experience.\n *\n * @param componentMap - A record mapping a Prismic document type to a React component.\n *\n * @returns A `componentResolver` function that can be passed to\n * `withPrismicUnpublishedPreview`'s configuration.\n */\nexport const componentResolverFromMap =\n\t(\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tcomponentMap: Record>,\n\t): PrismicUnpublishedRepositoryConfig[\"componentResolver\"] =>\n\t(nodes) => {\n\t\tif (nodes.length > 0) {\n\t\t\treturn componentMap[nodes[0].type] || null;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t};\n\n/**\n * A `dataResolver` function that assumes the first matching node for the page's\n * URL is the primary document. The document is added to the page's `data` prop\n * using the Prismic document's type formatted using Gatsby's camel-cased query\n * convention.\n */\nexport const defaultDataResolver: PrismicUnpublishedRepositoryConfig[\"dataResolver\"] =\n\t(nodes, data) => {\n\t\tif (nodes.length > 0) {\n\t\t\tconst key = camelCase(nodes[0].internal.type);\n\n\t\t\treturn {\n\t\t\t\t...data,\n\t\t\t\t[key]: nodes[0],\n\t\t\t};\n\t\t} else {\n\t\t\treturn data;\n\t\t}\n\t};\n\nconst useNodesForPath = (\n\tpath: string,\n): gatsbyPrismic.NormalizedDocumentValue[] => {\n\tconst [state, setState] = React.useState(0);\n\tconst rerender = () => setState((i) => i + 1);\n\n\tconst activeRuntime = useActiveRuntime();\n\n\tReact.useEffect(() => {\n\t\tif (activeRuntime) {\n\t\t\tactiveRuntime.subscribe(rerender);\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (activeRuntime) {\n\t\t\t\tactiveRuntime.unsubscribe(rerender);\n\t\t\t}\n\t\t};\n\t}, [activeRuntime]);\n\n\treturn React.useMemo(() => {\n\t\t// To appease the exhaustive-deps linter rule\n\t\tstate;\n\n\t\treturn activeRuntime\n\t\t\t? activeRuntime.nodes.filter((node) => node.url === path)\n\t\t\t: [];\n\t}, [state, path, activeRuntime]);\n};\n\nconst useActiveRuntime = (): gatsbyPrismic.Runtime | undefined => {\n\tconst [contextState] = usePrismicPreviewContext();\n\n\treturn React.useMemo(\n\t\t() =>\n\t\t\tcontextState.activeRepositoryName\n\t\t\t\t? contextState.runtimeStore[contextState.activeRepositoryName]\n\t\t\t\t: undefined,\n\t\t[contextState.activeRepositoryName, contextState.runtimeStore],\n\t);\n};\n\nconst useActiveRepositoryConfig = (\n\trepositoryConfigs: PrismicUnpublishedRepositoryConfigs = [],\n) => {\n\tconst [contextState] = usePrismicPreviewContext();\n\n\treturn React.useMemo(\n\t\t() =>\n\t\t\t[...repositoryConfigs, ...contextState.repositoryConfigs].find(\n\t\t\t\t(config) => config.repositoryName === contextState.activeRepositoryName,\n\t\t\t),\n\t\t[\n\t\t\tcontextState.activeRepositoryName,\n\t\t\tcontextState.repositoryConfigs,\n\t\t\trepositoryConfigs,\n\t\t],\n\t);\n};\n\nexport type WithPrismicUnpublishedPreviewConfig = {\n\tfetch?: FetchLike;\n};\n\n/**\n * A React higher order component (HOC) that wraps a Gatsby page to\n * automatically display a template for an unpublished Prismic document. This\n * HOC should be used on your app's 404 page (usually `src/pages/404.js`).\n *\n * @param WrappedComponent - The Gatsby page component.\n * @param usePrismicPreviewBootstrapConfig - Configuration determining how the\n * preview session is managed.\n * @param config - Configuration determining how the HOC handes previewed content.\n *\n * @returns `WrappedComponent` with automatic unpublished Prismic preview data.\n */\nexport const withPrismicUnpublishedPreview = <\n\tTStaticData extends UnknownRecord,\n\tTProps extends gatsby.PageProps,\n>(\n\tWrappedComponent: React.ComponentType,\n\trepositoryConfigs?: PrismicUnpublishedRepositoryConfigs,\n\tconfig: WithPrismicUnpublishedPreviewConfig = {},\n): React.ComponentType => {\n\tconst WithPrismicUnpublishedPreview = (props: TProps): React.ReactElement => {\n\t\tconst [contextState, contextDispatch] = usePrismicPreviewContext();\n\t\tconst bootstrapPreview = usePrismicPreviewBootstrap(repositoryConfigs, {\n\t\t\tfetch: config.fetch,\n\t\t});\n\t\tconst nodesForPath = useNodesForPath(props.location.pathname);\n\t\tconst repositoryConfig = useActiveRepositoryConfig(repositoryConfigs);\n\n\t\tconst ResolvedComponent = React.useMemo(\n\t\t\t() =>\n\t\t\t\trepositoryConfig?.componentResolver(nodesForPath) ?? WrappedComponent,\n\t\t\t[repositoryConfig, nodesForPath],\n\t\t);\n\n\t\tconst resolvedData = React.useMemo(() => {\n\t\t\tconst dataResolver =\n\t\t\t\trepositoryConfig?.dataResolver || defaultDataResolver;\n\n\t\t\treturn dataResolver(nodesForPath, props.data);\n\t\t}, [repositoryConfig?.dataResolver, nodesForPath, props.data]);\n\n\t\tconst afterAccessTokenSet = React.useCallback(() => {\n\t\t\tcontextDispatch({ type: PrismicContextActionType.GoToIdle });\n\t\t\tbootstrapPreview();\n\t\t}, [bootstrapPreview, contextDispatch]);\n\n\t\tReact.useEffect(() => {\n\t\t\tbootstrapPreview();\n\t\t}, [bootstrapPreview]);\n\n\t\treturn contextState.previewState === PrismicPreviewState.ACTIVE ? (\n\t\t\t\n\t\t) : (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n\tconst wrappedComponentName = getComponentDisplayName(WrappedComponent);\n\tWithPrismicUnpublishedPreview.displayName = `withPrismicUnpublishedPreview(${wrappedComponentName})`;\n\n\treturn WithPrismicUnpublishedPreview;\n};\n","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 * @returns Camel cased string version of `parts`.\n */\nexport const camelCase = (...parts: (string | null | undefined)[]): string =>\n\tcc.camelCase(parts.filter((p) => p != null).join(\" \"), {\n\t\ttransform: cc.camelCaseTransformMerge,\n\t});\n","/**\n * This file is used for setting up and connecting to Prismic.\n */\n\nmodule.exports = {\n // The domain name of your Prismic repository. This can be found in the URL of\n // your repository.\n //\n // Example: 'my-repo' if your Prismic repository URL is 'my-repo.prismic.io'.\n prismicRepo: 'mtv-club',\n\n // The default language for content in your Prismic repository.\n defaultLanguage: 'en-us',\n\n // All available languages for content in your Prismic repository.\n langs: ['en-us', 'fr-fr'],\n}\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n } // Special case for innerHTML which doesn't work lowercased\n\n\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n }); // Update seen tags with tags from this instance\n\n var keys = Object.keys(instanceSeenTags);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps; // assigning into an array to define toString function on it\n\n\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport default HelmetExport;\nexport { HelmetExport as Helmet };","import * as React from 'react';\nvar SelectableContext = /*#__PURE__*/React.createContext(null);\nexport var makeEventKey = function makeEventKey(eventKey) {\n var href = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (eventKey != null) return String(eventKey);\n return href || null;\n};\nexport default SelectableContext;","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 rHyphen = /-(.)/g;\nexport default function camelize(string) {\n return string.replace(rHyphen, function (_, chr) {\n return chr.toUpperCase();\n });\n}","import _defineProperty from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/defineProperty.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\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport var DEFAULT_MIN_BREAKPOINT = 'xs';\nvar ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS,\n minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nvar Consumer = ThemeContext.Consumer,\n Provider = ThemeContext.Provider;\n\nfunction ThemeProvider(_ref) {\n var _ref$prefixes = _ref.prefixes,\n prefixes = _ref$prefixes === void 0 ? {} : _ref$prefixes,\n _ref$breakpoints = _ref.breakpoints,\n breakpoints = _ref$breakpoints === void 0 ? DEFAULT_BREAKPOINTS : _ref$breakpoints,\n _ref$minBreakpoint = _ref.minBreakpoint,\n minBreakpoint = _ref$minBreakpoint === void 0 ? DEFAULT_MIN_BREAKPOINT : _ref$minBreakpoint,\n dir = _ref.dir,\n children = _ref.children;\n var contextValue = useMemo(function () {\n return {\n prefixes: _objectSpread({}, prefixes),\n breakpoints: breakpoints,\n minBreakpoint: minBreakpoint,\n dir: dir\n };\n }, [prefixes, breakpoints, minBreakpoint, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\n\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n var _useContext = useContext(ThemeContext),\n prefixes = _useContext.prefixes;\n\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n var _useContext2 = useContext(ThemeContext),\n breakpoints = _useContext2.breakpoints;\n\n return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n var _useContext3 = useContext(ThemeContext),\n minBreakpoint = _useContext3.minBreakpoint;\n\n return minBreakpoint;\n}\nexport function useIsRTL() {\n var _useContext4 = useContext(ThemeContext),\n dir = _useContext4.dir;\n\n return dir === 'rtl';\n}\n\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n var isClassy = Component.prototype && Component.prototype.isReactComponent; // If it's a functional component make sure we don't break it with a ref\n\n var _opts = opts,\n prefix = _opts.prefix,\n _opts$forwardRefAs = _opts.forwardRefAs,\n forwardRefAs = _opts$forwardRefAs === void 0 ? isClassy ? 'ref' : 'innerRef' : _opts$forwardRefAs;\n var Wrapped = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {\n var props = Object.assign({}, _ref2);\n props[forwardRefAs] = ref;\n var bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, _objectSpread(_objectSpread({}, props), {}, {\n bsPrefix: bsPrefix\n }));\n });\n Wrapped.displayName = \"Bootstrap(\".concat(Component.displayName || Component.name, \")\");\n return Wrapped;\n}\n\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","import _defineProperty from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport _objectWithoutProperties from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\";\nvar _excluded = [\"className\", \"bsPrefix\", \"as\"];\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 classNames from 'classnames';\nimport camelize from 'dom-helpers/camelize';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nvar pascalCase = function pascalCase(str) {\n return str[0].toUpperCase() + camelize(str).slice(1);\n}; // TODO: emstricten & fix the typing here! `createWithBsPrefix...`\n\n\nexport default function createWithBsPrefix(prefix) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$displayName = _ref.displayName,\n displayName = _ref$displayName === void 0 ? pascalCase(prefix) : _ref$displayName,\n Component = _ref.Component,\n defaultProps = _ref.defaultProps;\n\n var BsComponent = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {\n var className = _ref2.className,\n bsPrefix = _ref2.bsPrefix,\n _ref2$as = _ref2.as,\n Tag = _ref2$as === void 0 ? Component || 'div' : _ref2$as,\n props = _objectWithoutProperties(_ref2, _excluded);\n\n var resolvedPrefix = useBootstrapPrefix(bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Tag, _objectSpread({\n ref: ref,\n className: classNames(className, resolvedPrefix)\n }, props));\n });\n BsComponent.defaultProps = defaultProps;\n BsComponent.displayName = displayName;\n return BsComponent;\n}","import _defineProperty from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport _objectWithoutProperties from \"/codebuild/output/src2927845676/src/mtv-club/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\";\nvar _excluded = [\"bsPrefix\", \"className\", \"as\"];\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 classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar NavbarBrand = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n as = _ref.as,\n props = _objectWithoutProperties(_ref, _excluded);\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'navbar-brand');\n var Component = as || (props.href ? 'a' : 'span');\n return /*#__PURE__*/_jsx(Component, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n className: classNames(className, bsPrefix)\n }));\n});\nNavbarBrand.displayName = 'NavbarBrand';\nexport default NavbarBrand;","/**\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}","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;","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\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;","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\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;","/**\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;","import css from './css';\nimport listen from './listen';\nimport triggerEvent from './triggerEvent';\n\nfunction parseDuration(node) {\n var str = css(node, 'transitionDuration') || '';\n var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\n\nfunction emulateTransitionEnd(element, duration, padding) {\n if (padding === void 0) {\n padding = 5;\n }\n\n var called = false;\n var handle = setTimeout(function () {\n if (!called) triggerEvent(element, 'transitionend', true);\n }, duration + padding);\n var remove = listen(element, 'transitionend', function () {\n called = true;\n }, {\n once: true\n });\n return function () {\n clearTimeout(handle);\n remove();\n };\n}\n\nexport default function transitionEnd(element, handler, duration, padding) {\n if (duration == null) duration = parseDuration(element) || 0;\n var removeEmulate = emulateTransitionEnd(element, duration, padding);\n var remove = listen(element, 'transitionend', handler);\n return function () {\n removeEmulate();\n remove();\n };\n}","/**\n * Triggers an event on a given element.\n * \n * @param node the element\n * @param eventName the event name to trigger\n * @param bubbles whether the event should bubble up\n * @param cancelable whether the event should be cancelable\n */\nexport default function triggerEvent(node, eventName, bubbles, cancelable) {\n if (bubbles === void 0) {\n bubbles = false;\n }\n\n if (cancelable === void 0) {\n cancelable = true;\n }\n\n if (node) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent(eventName, bubbles, cancelable);\n node.dispatchEvent(event);\n }\n}","import css from 'dom-helpers/css';\nimport transitionEnd from 'dom-helpers/transitionEnd';\n\nfunction parseDuration(node, property) {\n var str = css(node, property) || '';\n var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\n\nexport default function transitionEndListener(element, handler) {\n var duration = parseDuration(element, 'transitionDuration');\n var delay = parseDuration(element, 'transitionDelay');\n var remove = transitionEnd(element, function (e) {\n if (e.target === element) {\n remove();\n handler(e);\n }\n }, duration + delay);\n}","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nfunction createChainedFunction() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n return funcs.filter(function (f) {\n return f != null;\n }).reduce(function (acc, f) {\n if (typeof f !== 'function') {\n throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');\n }\n\n if (acc === null) return f;\n return function chainedFunction() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n // @ts-ignore\n acc.apply(this, args); // @ts-ignore\n\n f.apply(this, args);\n };\n }, null);\n}\n\nexport default createChainedFunction;","// reading a dimension prop will cause the browser to recalculate,\n// which will let our animations work\nexport default function triggerBrowserReflow(node) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n node.offsetHeight;\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\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tEnter your Prismic
\n\t\t\t\t\t\taccess token\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tAn access token is required to view this preview.\n\t\t\t\t\t\t
\n\t\t\t\t\t\tRepository Name:{\" \"}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{repositoryName}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\tNot sure what your access token is?
\n\t\t\t\t\t\n\t\t\t\t\t\tLearn about generating one here.\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t