{"version":3,"sources":["webpack:///./node_modules/fp-ts/lib/Either.js","webpack:///./img/ui/nav_icons/note_text.svg","webpack:///./node_modules/fp-ts/lib/Apply.js","webpack:///./src/components/Line.tsx","webpack:///./node_modules/date-fns/esm/toDate/index.js","webpack:///./src/components/Column.tsx","webpack:///./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack:///./src/components/Gutter.tsx","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./img/ui/modal-close.svg","webpack:///./img/ui/mobile_menu_prompt.svg","webpack:///./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack:///./img/ui/mobile_menu_back.svg","webpack:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./src/components/Grid.tsx","webpack:///./img/ui/nav_icons/book.svg","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack:///./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/index.js","webpack:///./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack:///./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack:///./img/ui/curved_dividers/bottom_newdark2.svg","webpack:///./img/icons/favicon_48.png","webpack:///./node_modules/fp-ts/lib/Chain.js","webpack:///./img/ui/curved_dividers/bottom_glow_blue.svg","webpack:///./node_modules/imgix-core-js/dist/imgix-core-js.js","webpack:///./img/ui/mobile_menu_close.svg","webpack:///./src/components/BlogCard.tsx","webpack:///./src/components/BulletTick.tsx","webpack:///./src/components/CurvedSectionDivider.tsx","webpack:///./src/components/CurvedSectionDividerGlow.tsx","webpack:///./src/components/FormattedText.tsx","webpack:///./src/components/Gain.tsx","webpack:///./src/components/GatedContentForm.tsx","webpack:///./src/components/Modal.tsx","webpack:///./src/components/WrappingLogos.tsx","webpack:///./src/components/SectionCustomerLogos.tsx","webpack:///./src/components/SectionIntegrations.tsx","webpack:///./node_modules/swiper/esm/react/utils.js","webpack:///./node_modules/swiper/esm/react/params-list.js","webpack:///./node_modules/swiper/esm/react/loop.js","webpack:///./node_modules/swiper/esm/react/get-children.js","webpack:///./node_modules/swiper/esm/react/update-swiper.js","webpack:///./node_modules/swiper/esm/react/use-isomorphic-layout-effect.js","webpack:///./node_modules/swiper/esm/react/swiper.js","webpack:///./node_modules/swiper/esm/react/get-params.js","webpack:///./node_modules/swiper/esm/react/init-swiper.js","webpack:///./node_modules/swiper/esm/react/get-changed-params.js","webpack:///./node_modules/swiper/esm/react/virtual.js","webpack:///./node_modules/swiper/esm/react/swiper-slide.js","webpack:///./src/components/Quote.tsx","webpack:///./src/components/SectionQuotes.tsx","webpack:///./src/components/SectionUseCases.tsx","webpack:///./src/components/SimpleHero.tsx","webpack:///./src/components/TryNowPageInner.tsx","webpack:///./src/components/VideoModal.tsx","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/gatsby-image/index.js","webpack:///./node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack:///./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack:///./node_modules/swiper/esm/components/scrollbar/scrollbar.js","webpack:///./img/ui/nav_icons/clipboard_checked.svg","webpack:///./node_modules/fp-ts/lib/Applicative.js","webpack:///./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/react-helmet/node_modules/react-side-effect/lib/index.js","webpack:///./img/ui/nav_icons/pencil_edit.svg","webpack:///./src/components/Text.tsx","webpack:///./src/components/PageMaxWidth.tsx","webpack:///./node_modules/shallowequal/index.js","webpack:///./node_modules/js-base64/base64.js","webpack:///./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./img/ui/nav_icons/newspaper.svg","webpack:///./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack:///./src/components/HorizontalAlign.tsx","webpack:///./node_modules/fp-ts/lib/function.js","webpack:///./img/components/bullet_tick/circle_with_tick.svg","webpack:///../../../src/modules/gatsby-transform-url/index.ts","webpack:///./img/ui/logo_light.svg","webpack:///./img/ui/nav_icons/grid_orange.svg","webpack:///../../src/common/ar.ts","webpack:///./img/components/section_use_cases/icon_pencil.svg","webpack:///./node_modules/react-is/index.js","webpack:///./node_modules/core-js/modules/es.regexp.flags.js","webpack:///./img/components/section_use_cases/icon_note.svg","webpack:///./img/ui/curved_dividers/top_glow_orange.svg","webpack:///./node_modules/swiper/esm/components/pagination/pagination.js","webpack:///./node_modules/fp-ts/lib/Separated.js","webpack:///./src/prismic-tools.tsx","webpack:///./src/constants/Config.tsx","webpack:///./src/constants/Dimen.tsx","webpack:///./node_modules/swiper/esm/components/a11y/a11y.js","webpack:///./img/ui/nav_icons/info.svg","webpack:///./img/ui/curved_dividers/bottom_glow_light4.svg","webpack:///./img/components/icon_play_button.svg","webpack:///./img/icons/favicon_16.png","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/swiper/esm/components/core/core-class.js","webpack:///./node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/esm/components/core/slide/index.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/loop/index.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/swiper/esm/components/core/images/index.js","webpack:///./node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///../src/publicTypes.ts","webpack:///./node_modules/react-fast-compare/index.js","webpack:///./img/ui/nav_icons/bar_chart.svg","webpack:///./img/ui/logo_dark.svg","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./img/ui/nav_icons/people.svg","webpack:///./img/icons/favicon_32.png","webpack:///./img/ui/nav_icons/file_upload.svg","webpack:///./img/ui/curved_dividers/top_glow_orange_mobile.svg","webpack:///../../src/common/number.ts","webpack:///./src/constants/Color.tsx","webpack:///./node_modules/jsuri/Uri.js","webpack:///./node_modules/swiper/esm/components/navigation/navigation.js","webpack:///./src/components/Visibility.tsx","webpack:///./node_modules/fp-ts/lib/internal.js","webpack:///./img/icons/favicon.ico","webpack:///../../src/common/uri.ts","webpack:///./src/components/HelmetSeo.tsx","webpack:///./img/components/section_use_cases/icon_link.svg","webpack:///./node_modules/fp-ts/es6/function.js","webpack:///./node_modules/fp-ts/es6/Functor.js","webpack:///./node_modules/fp-ts/es6/internal.js","webpack:///./node_modules/fp-ts/es6/ChainRec.js","webpack:///./node_modules/fp-ts/es6/Separated.js","webpack:///./node_modules/fp-ts/es6/Either.js","webpack:///./node_modules/io-ts/es6/index.js","webpack:///./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack:///../../src/common/ioTs.ts","webpack:///./img/ui/nav_icons/grid.svg","webpack:///./img/ui/nav_icons/database.svg","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./src/components/Button.tsx","webpack:///./img/ui/footer/striped_background.svg","webpack:///./src/components/Section.tsx","webpack:///./img/components/gated_content_form/icon_download.svg","webpack:///./img/ui/nav_icons/docrouter.svg","webpack:///../../src/common/constants.ts","webpack:///./node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/react-helmet/es/Helmet.js","webpack:///./node_modules/hoist-non-react-statics/node_modules/react-is/index.js","webpack:///./src/components/MaxWidth.tsx","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./img/ui/footer/striped_curve.svg","webpack:///./node_modules/date-fns/esm/isDate/index.js","webpack:///./node_modules/date-fns/esm/isValid/index.js","webpack:///./node_modules/date-fns/esm/addMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/subMilliseconds/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack:///./node_modules/date-fns/esm/format/index.js","webpack:///./node_modules/ramda/es/F.js","webpack:///./node_modules/ramda/es/T.js","webpack:///./node_modules/ramda/es/__.js","webpack:///./node_modules/ramda/es/internal/_isPlaceholder.js","webpack:///./node_modules/ramda/es/internal/_curry1.js","webpack:///./node_modules/ramda/es/internal/_curry2.js","webpack:///./node_modules/ramda/es/add.js","webpack:///./node_modules/ramda/es/internal/_concat.js","webpack:///./node_modules/ramda/es/internal/_arity.js","webpack:///./node_modules/ramda/es/internal/_curryN.js","webpack:///./node_modules/ramda/es/curryN.js","webpack:///./node_modules/ramda/es/addIndex.js","webpack:///./node_modules/ramda/es/internal/_curry3.js","webpack:///./node_modules/ramda/es/adjust.js","webpack:///./node_modules/ramda/es/internal/_isArray.js","webpack:///./node_modules/ramda/es/internal/_isTransformer.js","webpack:///./node_modules/ramda/es/internal/_dispatchable.js","webpack:///./node_modules/ramda/es/internal/_reduced.js","webpack:///./node_modules/ramda/es/internal/_xfBase.js","webpack:///./node_modules/ramda/es/internal/_xall.js","webpack:///./node_modules/ramda/es/all.js","webpack:///./node_modules/ramda/es/max.js","webpack:///./node_modules/ramda/es/internal/_map.js","webpack:///./node_modules/ramda/es/internal/_isString.js","webpack:///./node_modules/ramda/es/internal/_isArrayLike.js","webpack:///./node_modules/ramda/es/internal/_xwrap.js","webpack:///./node_modules/ramda/es/bind.js","webpack:///./node_modules/ramda/es/internal/_reduce.js","webpack:///./node_modules/ramda/es/internal/_xmap.js","webpack:///./node_modules/ramda/es/internal/_has.js","webpack:///./node_modules/ramda/es/internal/_isArguments.js","webpack:///./node_modules/ramda/es/keys.js","webpack:///./node_modules/ramda/es/map.js","webpack:///./node_modules/ramda/es/internal/_isInteger.js","webpack:///./node_modules/ramda/es/nth.js","webpack:///./node_modules/ramda/es/paths.js","webpack:///./node_modules/ramda/es/path.js","webpack:///./node_modules/ramda/es/prop.js","webpack:///./node_modules/ramda/es/pluck.js","webpack:///./node_modules/ramda/es/reduce.js","webpack:///./node_modules/ramda/es/allPass.js","webpack:///./node_modules/ramda/es/always.js","webpack:///./node_modules/ramda/es/and.js","webpack:///./node_modules/ramda/es/internal/_xany.js","webpack:///./node_modules/ramda/es/any.js","webpack:///./node_modules/ramda/es/anyPass.js","webpack:///./node_modules/ramda/es/ap.js","webpack:///./node_modules/ramda/es/internal/_aperture.js","webpack:///./node_modules/ramda/es/internal/_xaperture.js","webpack:///./node_modules/ramda/es/aperture.js","webpack:///./node_modules/ramda/es/append.js","webpack:///./node_modules/ramda/es/apply.js","webpack:///./node_modules/ramda/es/values.js","webpack:///./node_modules/ramda/es/applySpec.js","webpack:///./node_modules/ramda/es/applyTo.js","webpack:///./node_modules/ramda/es/ascend.js","webpack:///./node_modules/ramda/es/assoc.js","webpack:///./node_modules/ramda/es/isNil.js","webpack:///./node_modules/ramda/es/assocPath.js","webpack:///./node_modules/ramda/es/nAry.js","webpack:///./node_modules/ramda/es/binary.js","webpack:///./node_modules/ramda/es/internal/_isFunction.js","webpack:///./node_modules/ramda/es/liftN.js","webpack:///./node_modules/ramda/es/lift.js","webpack:///./node_modules/ramda/es/both.js","webpack:///./node_modules/ramda/es/curry.js","webpack:///./node_modules/ramda/es/call.js","webpack:///./node_modules/ramda/es/internal/_makeFlat.js","webpack:///./node_modules/ramda/es/internal/_flatCat.js","webpack:///./node_modules/ramda/es/internal/_forceReduced.js","webpack:///./node_modules/ramda/es/chain.js","webpack:///./node_modules/ramda/es/internal/_xchain.js","webpack:///./node_modules/ramda/es/clamp.js","webpack:///./node_modules/ramda/es/internal/_cloneRegExp.js","webpack:///./node_modules/ramda/es/type.js","webpack:///./node_modules/ramda/es/internal/_clone.js","webpack:///./node_modules/ramda/es/clone.js","webpack:///./node_modules/ramda/es/comparator.js","webpack:///./node_modules/ramda/es/not.js","webpack:///./node_modules/ramda/es/complement.js","webpack:///./node_modules/ramda/es/internal/_pipe.js","webpack:///./node_modules/ramda/es/internal/_checkForMethod.js","webpack:///./node_modules/ramda/es/slice.js","webpack:///./node_modules/ramda/es/tail.js","webpack:///./node_modules/ramda/es/pipe.js","webpack:///./node_modules/ramda/es/reverse.js","webpack:///./node_modules/ramda/es/compose.js","webpack:///./node_modules/ramda/es/composeK.js","webpack:///./node_modules/ramda/es/internal/_pipeP.js","webpack:///./node_modules/ramda/es/pipeP.js","webpack:///./node_modules/ramda/es/composeP.js","webpack:///./node_modules/ramda/es/head.js","webpack:///./node_modules/ramda/es/internal/_identity.js","webpack:///./node_modules/ramda/es/identity.js","webpack:///./node_modules/ramda/es/pipeWith.js","webpack:///./node_modules/ramda/es/composeWith.js","webpack:///./node_modules/ramda/es/internal/_arrayFromIterator.js","webpack:///./node_modules/ramda/es/internal/_includesWith.js","webpack:///./node_modules/ramda/es/internal/_objectIs.js","webpack:///./node_modules/ramda/es/internal/_equals.js","webpack:///./node_modules/ramda/es/internal/_functionName.js","webpack:///./node_modules/ramda/es/equals.js","webpack:///./node_modules/ramda/es/internal/_indexOf.js","webpack:///./node_modules/ramda/es/internal/_includes.js","webpack:///./node_modules/ramda/es/internal/_quote.js","webpack:///./node_modules/ramda/es/internal/_toISOString.js","webpack:///./node_modules/ramda/es/internal/_complement.js","webpack:///./node_modules/ramda/es/internal/_filter.js","webpack:///./node_modules/ramda/es/internal/_isObject.js","webpack:///./node_modules/ramda/es/internal/_xfilter.js","webpack:///./node_modules/ramda/es/filter.js","webpack:///./node_modules/ramda/es/reject.js","webpack:///./node_modules/ramda/es/internal/_toString.js","webpack:///./node_modules/ramda/es/toString.js","webpack:///./node_modules/ramda/es/concat.js","webpack:///./node_modules/ramda/es/cond.js","webpack:///./node_modules/ramda/es/constructN.js","webpack:///./node_modules/ramda/es/construct.js","webpack:///./node_modules/ramda/es/contains.js","webpack:///./node_modules/ramda/es/converge.js","webpack:///./node_modules/ramda/es/internal/_xreduceBy.js","webpack:///./node_modules/ramda/es/reduceBy.js","webpack:///./node_modules/ramda/es/countBy.js","webpack:///./node_modules/ramda/es/dec.js","webpack:///./node_modules/ramda/es/defaultTo.js","webpack:///./node_modules/ramda/es/descend.js","webpack:///./node_modules/ramda/es/internal/_Set.js","webpack:///./node_modules/ramda/es/difference.js","webpack:///./node_modules/ramda/es/differenceWith.js","webpack:///./node_modules/ramda/es/dissoc.js","webpack:///./node_modules/ramda/es/remove.js","webpack:///./node_modules/ramda/es/update.js","webpack:///./node_modules/ramda/es/dissocPath.js","webpack:///./node_modules/ramda/es/divide.js","webpack:///./node_modules/ramda/es/internal/_xdrop.js","webpack:///./node_modules/ramda/es/drop.js","webpack:///./node_modules/ramda/es/internal/_xtake.js","webpack:///./node_modules/ramda/es/take.js","webpack:///./node_modules/ramda/es/internal/_dropLast.js","webpack:///./node_modules/ramda/es/internal/_xdropLast.js","webpack:///./node_modules/ramda/es/dropLast.js","webpack:///./node_modules/ramda/es/internal/_dropLastWhile.js","webpack:///./node_modules/ramda/es/internal/_xdropLastWhile.js","webpack:///./node_modules/ramda/es/dropLastWhile.js","webpack:///./node_modules/ramda/es/internal/_xdropRepeatsWith.js","webpack:///./node_modules/ramda/es/last.js","webpack:///./node_modules/ramda/es/dropRepeatsWith.js","webpack:///./node_modules/ramda/es/dropRepeats.js","webpack:///./node_modules/ramda/es/internal/_xdropWhile.js","webpack:///./node_modules/ramda/es/dropWhile.js","webpack:///./node_modules/ramda/es/or.js","webpack:///./node_modules/ramda/es/either.js","webpack:///./node_modules/ramda/es/empty.js","webpack:///./node_modules/ramda/es/takeLast.js","webpack:///./node_modules/ramda/es/endsWith.js","webpack:///./node_modules/ramda/es/eqBy.js","webpack:///./node_modules/ramda/es/eqProps.js","webpack:///./node_modules/ramda/es/evolve.js","webpack:///./node_modules/ramda/es/internal/_xfind.js","webpack:///./node_modules/ramda/es/find.js","webpack:///./node_modules/ramda/es/internal/_xfindIndex.js","webpack:///./node_modules/ramda/es/findIndex.js","webpack:///./node_modules/ramda/es/internal/_xfindLast.js","webpack:///./node_modules/ramda/es/findLast.js","webpack:///./node_modules/ramda/es/internal/_xfindLastIndex.js","webpack:///./node_modules/ramda/es/findLastIndex.js","webpack:///./node_modules/ramda/es/flatten.js","webpack:///./node_modules/ramda/es/flip.js","webpack:///./node_modules/ramda/es/forEach.js","webpack:///./node_modules/ramda/es/forEachObjIndexed.js","webpack:///./node_modules/ramda/es/fromPairs.js","webpack:///./node_modules/ramda/es/groupBy.js","webpack:///./node_modules/ramda/es/groupWith.js","webpack:///./node_modules/ramda/es/gt.js","webpack:///./node_modules/ramda/es/gte.js","webpack:///./node_modules/ramda/es/hasPath.js","webpack:///./node_modules/ramda/es/has.js","webpack:///./node_modules/ramda/es/hasIn.js","webpack:///./node_modules/ramda/es/identical.js","webpack:///./node_modules/ramda/es/ifElse.js","webpack:///./node_modules/ramda/es/inc.js","webpack:///./node_modules/ramda/es/includes.js","webpack:///./node_modules/ramda/es/indexBy.js","webpack:///./node_modules/ramda/es/indexOf.js","webpack:///./node_modules/ramda/es/init.js","webpack:///./node_modules/ramda/es/innerJoin.js","webpack:///./node_modules/ramda/es/insert.js","webpack:///./node_modules/ramda/es/insertAll.js","webpack:///./node_modules/ramda/es/uniqBy.js","webpack:///./node_modules/ramda/es/uniq.js","webpack:///./node_modules/ramda/es/intersection.js","webpack:///./node_modules/ramda/es/intersperse.js","webpack:///./node_modules/ramda/es/internal/_objectAssign.js","webpack:///./node_modules/ramda/es/objOf.js","webpack:///./node_modules/ramda/es/internal/_stepCat.js","webpack:///./node_modules/ramda/es/into.js","webpack:///./node_modules/ramda/es/invert.js","webpack:///./node_modules/ramda/es/invertObj.js","webpack:///./node_modules/ramda/es/invoker.js","webpack:///./node_modules/ramda/es/is.js","webpack:///./node_modules/ramda/es/isEmpty.js","webpack:///./node_modules/ramda/es/join.js","webpack:///./node_modules/ramda/es/juxt.js","webpack:///./node_modules/ramda/es/keysIn.js","webpack:///./node_modules/ramda/es/lastIndexOf.js","webpack:///./node_modules/ramda/es/internal/_isNumber.js","webpack:///./node_modules/ramda/es/length.js","webpack:///./node_modules/ramda/es/lens.js","webpack:///./node_modules/ramda/es/lensIndex.js","webpack:///./node_modules/ramda/es/lensPath.js","webpack:///./node_modules/ramda/es/lensProp.js","webpack:///./node_modules/ramda/es/lt.js","webpack:///./node_modules/ramda/es/lte.js","webpack:///./node_modules/ramda/es/mapAccum.js","webpack:///./node_modules/ramda/es/mapAccumRight.js","webpack:///./node_modules/ramda/es/mapObjIndexed.js","webpack:///./node_modules/ramda/es/match.js","webpack:///./node_modules/ramda/es/mathMod.js","webpack:///./node_modules/ramda/es/maxBy.js","webpack:///./node_modules/ramda/es/sum.js","webpack:///./node_modules/ramda/es/mean.js","webpack:///./node_modules/ramda/es/median.js","webpack:///./node_modules/ramda/es/memoizeWith.js","webpack:///./node_modules/ramda/es/merge.js","webpack:///./node_modules/ramda/es/mergeAll.js","webpack:///./node_modules/ramda/es/mergeWithKey.js","webpack:///./node_modules/ramda/es/mergeDeepWithKey.js","webpack:///./node_modules/ramda/es/mergeDeepLeft.js","webpack:///./node_modules/ramda/es/mergeDeepRight.js","webpack:///./node_modules/ramda/es/mergeDeepWith.js","webpack:///./node_modules/ramda/es/mergeLeft.js","webpack:///./node_modules/ramda/es/mergeRight.js","webpack:///./node_modules/ramda/es/mergeWith.js","webpack:///./node_modules/ramda/es/min.js","webpack:///./node_modules/ramda/es/minBy.js","webpack:///./node_modules/ramda/es/modulo.js","webpack:///./node_modules/ramda/es/move.js","webpack:///./node_modules/ramda/es/multiply.js","webpack:///./node_modules/ramda/es/negate.js","webpack:///./node_modules/ramda/es/none.js","webpack:///./node_modules/ramda/es/nthArg.js","webpack:///./node_modules/ramda/es/o.js","webpack:///./node_modules/ramda/es/internal/_of.js","webpack:///./node_modules/ramda/es/of.js","webpack:///./node_modules/ramda/es/omit.js","webpack:///./node_modules/ramda/es/once.js","webpack:///./node_modules/ramda/es/internal/_assertPromise.js","webpack:///./node_modules/ramda/es/otherwise.js","webpack:///./node_modules/ramda/es/over.js","webpack:///./node_modules/ramda/es/pair.js","webpack:///./node_modules/ramda/es/internal/_createPartialApplicator.js","webpack:///./node_modules/ramda/es/partial.js","webpack:///./node_modules/ramda/es/partialRight.js","webpack:///./node_modules/ramda/es/partition.js","webpack:///./node_modules/ramda/es/pathEq.js","webpack:///./node_modules/ramda/es/pathOr.js","webpack:///./node_modules/ramda/es/pathSatisfies.js","webpack:///./node_modules/ramda/es/pick.js","webpack:///./node_modules/ramda/es/pickAll.js","webpack:///./node_modules/ramda/es/pickBy.js","webpack:///./node_modules/ramda/es/pipeK.js","webpack:///./node_modules/ramda/es/prepend.js","webpack:///./node_modules/ramda/es/product.js","webpack:///./node_modules/ramda/es/useWith.js","webpack:///./node_modules/ramda/es/project.js","webpack:///./node_modules/ramda/es/propEq.js","webpack:///./node_modules/ramda/es/propIs.js","webpack:///./node_modules/ramda/es/propOr.js","webpack:///./node_modules/ramda/es/propSatisfies.js","webpack:///./node_modules/ramda/es/props.js","webpack:///./node_modules/ramda/es/range.js","webpack:///./node_modules/ramda/es/reduceRight.js","webpack:///./node_modules/ramda/es/reduceWhile.js","webpack:///./node_modules/ramda/es/reduced.js","webpack:///./node_modules/ramda/es/times.js","webpack:///./node_modules/ramda/es/repeat.js","webpack:///./node_modules/ramda/es/replace.js","webpack:///./node_modules/ramda/es/scan.js","webpack:///./node_modules/ramda/es/sequence.js","webpack:///./node_modules/ramda/es/set.js","webpack:///./node_modules/ramda/es/sort.js","webpack:///./node_modules/ramda/es/sortBy.js","webpack:///./node_modules/ramda/es/sortWith.js","webpack:///./node_modules/ramda/es/split.js","webpack:///./node_modules/ramda/es/splitAt.js","webpack:///./node_modules/ramda/es/splitEvery.js","webpack:///./node_modules/ramda/es/splitWhen.js","webpack:///./node_modules/ramda/es/startsWith.js","webpack:///./node_modules/ramda/es/subtract.js","webpack:///./node_modules/ramda/es/symmetricDifference.js","webpack:///./node_modules/ramda/es/symmetricDifferenceWith.js","webpack:///./node_modules/ramda/es/takeLastWhile.js","webpack:///./node_modules/ramda/es/internal/_xtakeWhile.js","webpack:///./node_modules/ramda/es/takeWhile.js","webpack:///./node_modules/ramda/es/internal/_xtap.js","webpack:///./node_modules/ramda/es/tap.js","webpack:///./node_modules/ramda/es/test.js","webpack:///./node_modules/ramda/es/internal/_isRegExp.js","webpack:///./node_modules/ramda/es/andThen.js","webpack:///./node_modules/ramda/es/toLower.js","webpack:///./node_modules/ramda/es/toPairs.js","webpack:///./node_modules/ramda/es/toPairsIn.js","webpack:///./node_modules/ramda/es/toUpper.js","webpack:///./node_modules/ramda/es/transduce.js","webpack:///./node_modules/ramda/es/transpose.js","webpack:///./node_modules/ramda/es/traverse.js","webpack:///./node_modules/ramda/es/trim.js","webpack:///./node_modules/ramda/es/tryCatch.js","webpack:///./node_modules/ramda/es/unapply.js","webpack:///./node_modules/ramda/es/unary.js","webpack:///./node_modules/ramda/es/uncurryN.js","webpack:///./node_modules/ramda/es/unfold.js","webpack:///./node_modules/ramda/es/union.js","webpack:///./node_modules/ramda/es/uniqWith.js","webpack:///./node_modules/ramda/es/unionWith.js","webpack:///./node_modules/ramda/es/unless.js","webpack:///./node_modules/ramda/es/unnest.js","webpack:///./node_modules/ramda/es/until.js","webpack:///./node_modules/ramda/es/valuesIn.js","webpack:///./node_modules/ramda/es/view.js","webpack:///./node_modules/ramda/es/when.js","webpack:///./node_modules/ramda/es/where.js","webpack:///./node_modules/ramda/es/whereEq.js","webpack:///./node_modules/ramda/es/without.js","webpack:///./node_modules/ramda/es/xor.js","webpack:///./node_modules/ramda/es/xprod.js","webpack:///./node_modules/ramda/es/zip.js","webpack:///./node_modules/ramda/es/zipObj.js","webpack:///./node_modules/ramda/es/zipWith.js","webpack:///./node_modules/ramda/es/thunkify.js","webpack:///../../../src/modules/gatsby-source-url/index.ts","webpack:///./src/nav.tsx","webpack:///./src/components/LayoutFooter.tsx","webpack:///./src/components/DemoBanner.tsx","webpack:///./src/components/LayoutNavDropdown.tsx","webpack:///./src/components/LayoutMobileNavItem.tsx","webpack:///./src/components/LayoutMobileMenu.tsx","webpack:///./src/components/LayoutLoginDropdown.tsx","webpack:///./src/components/LayoutHeader.tsx","webpack:///./src/components/LayoutSvgSprites.tsx","webpack:///./src/components/Layout.tsx","webpack:///./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js","webpack:///../src/index.ts","webpack:///./img/ui/footer/social_linkedin.svg","webpack:///./node_modules/fp-ts/lib/Functor.js","webpack:///./img/ui/nav_icons/file_download.svg","webpack:///./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack:///./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack:///./node_modules/prismic-reactjs/dist/prismic-reactjs.js","webpack:///./img/ui/nav_icons/clipboard_text.svg","webpack:///./img/ui/curved_dividers/top_newdark2.svg","webpack:///./node_modules/fp-ts/lib/ChainRec.js","webpack:///./img/ui/footer/social_twitter.svg","webpack:///./img/ui/nav_icons/calculator.svg","webpack:///./img/components/section_use_cases/icon_download.svg"],"names":["__createBinding","this","Object","create","o","m","k","k2","undefined","defineProperty","enumerable","get","__setModuleDefault","v","value","__importStar","mod","__esModule","result","prototype","hasOwnProperty","call","exports","getFilterable","getCompactable","getSemigroup","getEq","getShow","URI","throwError","sequence","traverse","reduceRight","foldMap","reduce","duplicate","extend","alt","altW","flatten","chain","chainW","of","ap","apW","mapLeft","bimap","map","filterOrElse","filterOrElseW","orElse","orElseW","swap","chainOptionK","fromOptionK","toUnion","chainNullableK","fromNullableK","tryCatchK","tryCatch","fromNullable","getOrElse","getOrElseW","fold","match","foldW","matchW","fromPredicate","fromOption","right","left","isRight","isLeft","getValidation","getValidationMonoid","getValidationSemigroup","getApplyMonoid","getApplySemigroup","either","stringifyJSON","parseJSON","sequenceArray","traverseArray","traverseArrayWithIndex","apSW","apS","bindW","bind","bindTo","Do","exists","elem","toError","FromEither","MonadThrow","ChainRec","Extend","Alt","Bifunctor","Traversable","Foldable","chainFirstW","chainFirst","Monad","Chain","Applicative","apSecond","apFirst","Apply","Pointed","flap","Functor","getAltValidation","getApplicativeValidation","getWitherable","Applicative_1","Apply_1","Chain_1","ChainRec_1","function_1","Functor_1","_","Separated_1","ma","_tag","e","a","onNone","predicate","onFalse","onLeft","onRight","f","onThrow","_i","arguments","length","apply","from","flow","identity","_map","fa","pipe","_ap","fab","_chain","_reduce","b","_foldMap","M","foldMapM","_reduceRight","_traverse","F","traverseF","ta","_bimap","g","_mapLeft","_alt","that","_extend","wa","_chainRec","tailRec","empty","SE","SA","show","EL","EA","equals","x","y","S","concat","_a","compact","separate","_E","filter","filterMap","ob","partition","p","separated","partitionMap","me","ea","F_","wither","wilt","chainRec","fromEither","Error","String","E","as","out","i","push","s","onError","JSON","parse","u","stringify","getApplicativeMonoid","MA","module","sequenceS","sequenceT","curried","n","acc","combined","Array","G","gab","ga","A","second","first","name","fb","assign","tupleConstructors","1","2","3","c","4","d","5","getTupleConstructor","len","tuple","args","fas","r","keys","getRecordConstructor","fr","Line","_ref","color","lowOpacity","React","StyledHorizontalLine","$color","$lowOpacity","styled","withConfig","displayName","componentId","Color","_typeof","obj","Symbol","iterator","constructor","toDate","argument","argStr","toString","Date","getTime","console","warn","stack","NaN","Column","children","size","widthInPercentage","StyledColumn","$width","Dimen","gutterWidth","breakpointDownMd","toInteger","dirtyNumber","number","Number","isNaN","Math","ceil","floor","Gutter","md","sm","xs","StyledGutter","$size","$xs","$sm","$md","breakpointDownSm","breakpointDownXs","isObject","target","src","forEach","key","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","W","X","h","trim","split","ia","Z","charCodeAt","replace","indexOf","P","substring","w","L","ja","ka","test","aa","ba","la","R","na","oa","H","q","B","U","prefix","D","z","C","K","l","I","t","J","N","charAt","ca","O","join","da","Y","ha","Q","use","T","set","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","type","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","Grid","reverseColumns","breakpoint","alignColumns","justifyColumns","StyledGrid","$reverseColumns","$breakpoint","$alignColumns","$justifyColumns","gridWidth","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","token","count","options","tokenValue","addSuffix","comparison","buildFormatLongFn","width","defaultWidth","format","formats","formatLong","date","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","context","formattingValues","defaultFormattingWidth","_defaultWidth","_width","values","argumentCallback","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","isArray","findIndex","pattern","findKey","valueCallback","rest","slice","object","array","code","formatDistance","formatRelative","_date","_baseDate","_options","localize","ordinalNumber","rem100","era","narrow","abbreviated","wide","quarter","month","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseInt","parseResult","any","index","weekStartsOn","firstWeekContainsDate","_md5","_jsBase64","md5","Base64","DOMAIN_REGEX","DPR_QUALITIES","DEFAULTS","domain","useHTTPS","includeLibraryParam","ImgixClient","opts","val","settings","exec","libraryParam","urlPrefix","validateRange","min","max","isInteger","validateWidthTolerance","widthTolerance","buildURL","path","params","_sanitizePath","queryParams","_buildParams","secureURLToken","_signParams","encodeURIComponent","encodeURI","encodedKey","encodedVal","substr","signatureBase","signature","buildSrcSet","height","aspectRatio","ar","_buildDPRSrcSet","_buildSrcSetPairs","currentWidth","targetWidths","srcset","customWidths","widths","srcsetOptions","minWidth","maxWidth","validateAndDestructureOptions","every","validateWidths","_generateTargetWidths","targetRatios","disableVariableQuality","quality","validateVariableQuality","currentRatio","dpr","targetWidthsCache","resolutions","INCREMENT_PERCENTAGE","cacheKey","prev","round","VERSION","BlogCard","to","image","logoUrl","title","description","readTime","StyledCard","StyledAreaImage","Img","fluid","fluidImage","StyledLogoWrap","StyledAreaMain","Text","typeface","bold","StyledAreaBelow","xlinkHref","_ref2","Link","light1","div","newDark2","blue1","BulletTick","StyledBullet","ORANGE_TICK","CurvedSectionDivider","img","position","frontColor","backColor","TOP_NEWDARK2","BOTTOM_NEWDARK2","StyledContainer","$position","$curveImageUrl","$backColor","breakpointDownXl","breakpointDownLg","imgMobile","glowColor","require","$curveImageMobileUrl","FormattedText","onDark","baseTypeface","textAlign","StyledContent","$onDark","$baseTypeface","$textAlign","orange1","Gain","preTitle","preTitleColor","content","buttonLabel","linkTo","MaxWidth","uppercase","RichText","raw","HorizontalAlign","align","Button","colorTheme","label","GatedContentForm","pardotForm","formTitle","StyledTopRow","frameBorder","allowTransparency","border","Modal","visible","onDismiss","$visible","onClick","StyledModal","ev","stopPropagation","StyledClose","WrappingLogos","logos","blendMode","logo","StyledLogo","$url","url","$blendMode","aria-label","SectionCustomerLogos","_useStaticQuery$prism","_data$logos","background","gutterSize","data","useStaticQuery","prismicSectionCustomerLogosComponent","isDarkBackground","_logo$logo_image","logo_image","logo_dark","Section","tint","PageMaxWidth","button_label","SectionIntegrations","_data$integrations","_data$below_descripti","prismicSectionIntegrationsComponent","integrations","integration","StyledCardWrap","StyledCardShadow","integration_link","className","integration_logo","integration_description","flex","below_title","below_description","below_button_label","noExtend","__swiper__","needsNavigation","navigation","nextEl","prevEl","needsPagination","pagination","el","needsScrollbar","scrollbar","uniqueClasses","classNames","classes","unique","paramsList","calcLoopedSlides","slides","swiperParams","slidesPerViewParams","slidesPerView","breakpoints","getBreakpoint","breakpointOnlyParams","loopedSlides","parseFloat","loopAdditionalSlides","getChildren","slots","Children","toArray","child","props","slot","foundSlides","processChildren","slide","updateSwiper","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","swiper","passedParams","changedParams","scrollbarEl","paginationEl","updateParams","currentParams","virtual","thumbs","includes","controller","control","newValue","destroy","enabled","update","lazy","load","init","updateSize","setTranslate","allowSlideNext","allowSlidePrev","changeDirection","direction","useIsomorphicLayoutEffect","deps","_excluded","_extends","source","Swiper","_temp","externalElRef","_ref$tag","tag","Tag","_ref$wrapperTag","wrapperTag","WrapperTag","onSwiper","excluded","sourceKeys","_objectWithoutPropertiesLoose","eventsAssigned","_useState","containerClasses","setContainerClasses","_useState2","virtualData","setVirtualData","_useState3","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","on","events","defaults","extendedDefaults","_emitClasses","allowedParams","toLowerCase","getParams","restProps","_getChildren","onBeforeBreakpoint","_containerClasses","current","initSwiper","loopCreate","loopDestroy","loop","extendWith","cache","renderExternal","renderExternalUpdate","originalParams","off","emitSlidesClasses","mountSwiper","destroyed","eventName","oldParams","oldChildren","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","updateSlides","updateProgress","updateSlidesClasses","parallax","ref","Fragment","isHorizontal","rtlTranslate","offset","top","cloneElement","renderVirtual","modifiedSlides","duplicateSlide","slideDuplicateClass","loopFillGroupWithBlank","blankSlidesNum","slidesPerGroup","blankSlide","slideClass","slideBlankClass","prependSlides","appendSlides","renderLoop","SwiperSlide","externalRef","slideData","_ref$className","zoom","virtualIndex","slideElRef","slideClasses","setSlideClasses","updateClasses","getSlideClasses","isActive","isVisible","isDuplicate","isPrev","isNext","renderChildren","Quote","_quote$quote_content","quote","buttonHref","StyledQuoteAuthor","quote_author_image","fixed","fixedImage","bg","newDark1","quote_author_name","quote_author_role","quote_company_logo","StyledQuoteMain","quote_title","quote_content","SectionQuotes","quotes","prismicSectionQuotesComponent","finalQuotes","Boolean","finalButtonLabel","inner","spaceBetween","clickable","SwiperCore","Navigation","Pagination","Scrollbar","A11y","SectionUseCases","StyledUseCaseCard","SimpleHero","contactButtonLabel","tryNowButtonlabel","calculatorButtonLabel","StyledButtons","Visibility","hideAbove","TryNowPageInner","_prismicData$hero_con","prismicData","step","setStep","Layout","HelmetSeo","hero_title","hero_content","StyledNegativeCurve","CurvedSectionDividerGlow","StyledForm","form","$active","light6","$done","light5","VideoModal","wistiaId","StyledMask","StyledVideoIframeEmbed","allowFullScreen","iframe","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","nextTick","browser","env","argv","version","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","_interopRequireDefault","default","io","_assertThisInitialized2","_inheritsLoose2","_objectWithoutPropertiesLoose2","_extends2","_react","_propTypes","convertProps","convertedProps","sizes","critical","loading","groupByMedia","matchesMedia","media","isBrowser","matches","getImageCacheKey","srcData","getCurrentSrcData","currentData","some","hasArtDirectionSupport","foundMedia","noMedia","imageCache","inImageCache","hasNativeLazyLoadSupport","HTMLImageElement","hasIOSupport","IntersectionObserver","WeakMap","generateImageSources","imageVariants","_ref3","srcSet","srcSetWebp","withMedia","without","variant","generateTracedSVGSources","_ref4","tracedSVG","generateBase64Sources","_ref5","base64","generateNoscriptSource","_ref6","isWebp","listenToIntersections","cb","observer","entries","entry","has","isIntersecting","intersectionRatio","unobserve","delete","rootMargin","observe","noscriptImg","crossOrigin","draggable","Placeholder","forwardRef","generateSources","spreadProps","ariaHidden","baseImage","onLoad","otherProps","objectFit","objectPosition","func","_React$Component","_this","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","state","imgLoaded","imgCached","isHydrated","imageRef","createRef","placeholderRef","handleImageLoaded","handleRef","_proto","componentDidMount","setState","onStartLoad","wasCached","complete","componentWillUnmount","cleanUpListeners","_this2","imageInCache","currentSrc","_convertProps","_convertProps$style","_convertProps$imgStyl","imgStyle","_convertProps$placeho","placeholderStyle","placeholderClassName","backgroundColor","durationFadeIn","itemProp","shouldReveal","shouldFadeIn","imageStyle","opacity","transition","bgColor","delayHideStyle","transitionDelay","imagePlaceholderStyle","placeholderImageProps","overflow","maxHeight","paddingBottom","bottom","dangerouslySetInnerHTML","__html","divStyle","display","Component","fixedObject","shape","isRequired","srcWebp","fluidObject","requireFixedOrFluid","originalPropTypes","propName","componentName","_PropTypes$checkPropT","checkPropTypes","oneOfType","arrayOf","bool","oneOf","_default","reactPropsRegex","fn","arg","prop","rtl","progress","dragSize","trackSize","$dragEl","$el","newSize","newPos","transform","hide","setTransition","duration","offsetWidth","offsetHeight","divider","virtualSize","moveDivider","watchOverflow","isLocked","lockClass","getPointerPosition","targetTouches","clientX","clientY","setDragPosition","positionRatio","dragStartPos","minTranslate","maxTranslate","updateActiveIndex","onDragStart","$wrapperEl","isTouched","getBoundingClientRect","preventDefault","dragTimeout","css","cssMode","onDragMove","returnValue","onDragEnd","snapOnRelease","slideToClosest","enableDraggable","touchEventsTouch","touchEventsDesktop","support","activeListener","passiveListener","passiveListeners","passive","capture","touch","start","move","end","disableDraggable","$swiperEl","createElements","uniqueNavElements","find","dragClass","append","dragEl","resize","observerUpdate","getApplicativeComposition","getFunctorComposition","fgab","fga","for","$$typeof","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","ex","React__default","_defineProperty","configurable","writable","canUseDOM","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","WrappedComponent","mountedInstances","emitChange","instance","SideEffect","_PureComponent","subClass","superClass","__proto__","peek","rewind","recordedState","UNSAFE_componentWillMount","componentDidUpdate","splice","PureComponent","getDisplayName","StyledText","$align","$bold","$typeface","$uppercase","typefaceStyles","caption","h1","h2","h3","h4","h5","smallprint","tiny","span","objA","objB","compareContext","ret","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","global","factory","fromUint8Array","_Base64","b64chars","b64tab","bin","fromCharCode","cb_utob","cc","re_utob","utob","cb_encode","ccc","padlen","ord","btoa","RangeError","_encode","mkUriSafe","b64","m0","encode","urisafe","Uint8Array","a0","a1","a2","toUint8Array","re_btou","cb_btou","cccc","btou","cb_decode","chars","_atob","atob","_fromURI","decode","_decode","noConflict","fromBase64","toBase64","noEnum","extendString","self","getTimezoneOffsetInMilliseconds","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","_getPrototypeOf","setPrototypeOf","_setPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","_construct","Parent","Class","Function","_wrapNativeSuper","_cache","Map","TypeError","Wrapper","Dom7","_Array","items","proto","ReferenceError","_assertThisInitialized","arrayFlat","arr","res","arrayFilter","$","selector","html","toCreate","tempParent","innerHTML","qsa","nodeType","uniqueArray","arrayUnique","noTrigger","shortcut","_len","_key","trigger","Methods","addClass","_el$classList","classList","add","removeClass","_len2","_key2","_el$classList2","remove","hasClass","_len4","_key4","contains","toggleClass","_len3","_key3","toggle","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transitionDuration","_len5","_key5","eventType","targetSelector","listener","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","handleEvent","j","_event","dom7LiveListeners","proxyListener","event","dom7Listeners","_len6","_key6","handlers","handler","dom7proxy","_len9","_key9","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","styles","outerHeight","_styles2","box","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","_prop","each","text","textContent","compareWith","webkitMatchesSelector","msMatchesSelector","previousSibling","eq","returnIndex","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","_next","previousElementSibling","prevAll","prevEls","_prev","parent","parentNode","_parent","closest","foundElements","found","removeChild","methodName","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","order","orphans","tabSize","widows","zIndex","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","hole","untupled","tupled","absurd","decrement","increment","flip","constVoid","constUndefined","constNull","constFalse","constTrue","constant","not","unsafeCoerce","getEndomorphismMonoid","getRing","getSemiring","getMonoid","getBooleanAlgebra","meet","zero","implies","getSemigroupM","mul","sub","ab","bc","cd","de","ef","fg","gh","hi","ij","jk","kl","lm","mn","no","op","pq","qr","rs","st","imgix_core_js_1","__importDefault","ar_1","constants_1","uri_1","buildImageData","imgixParams","parseHost","parsePath","client","transformedImgixParams","__assign","fit","fm","srcsetWebp","_b","buildFixedImageData","buildFluidImageData","aspectRatioFloat","StringAspectRatio","parseStringARParam","number_1","brand","aspectRatioIsValid","part","roundToDP","DESCRIPTORS","objectDefinePropertyModule","regExpFlags","UNSUPPORTED_Y","flags","RegExp","slidesLength","total","snapGrid","activeIndex","paginationType","snapIndex","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","previousIndex","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","speed","renderCustom","paginationHTML","numberOfBullets","freeMode","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickableClass","modifierClass","progressbarOppositeClass","slideTo","hiddenClass","hideOnClick","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","click","targetEl","extractParagraphs","item","_item$body","paragraphs","__typename","_slice$primary","primary","calculateReadTime","extractBlogSnippet","post","_extractParagraphs$","decodeURI","auto","dimensions","apiServer","appServer","emApiServer","emServer","DEPLOY_ENV","rootUrl","contactEmail","columnWidth","getRandomNumber","repeat","random","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","keyCode","a11y","$targetEl","$nextEl","isEnd","slideNext","notify","lastSlideMessage","nextSlideMessage","$prevEl","isBeginning","slidePrev","firstSlideMessage","prevSlideMessage","message","notification","liveRegion","updateNavigation","_swiper$navigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","$containerEl","containerRoleDescriptionMessage","containerMessage","wrapperId","autoplay","itemRoleDescriptionMessage","slideRole","slideEl","$slideEl","ariaLabelMessage","slideLabelMessage","tagName","notificationClass","afterInit","toEdge","fromEdge","paginationUpdate","getSupport","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","supportsPassive","gestures","calcSupport","getDevice","overrides","platform","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","isWebView","calcBrowser","createObserver","initialized","ResizeObserver","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","removeObserver","orientationChangeHandler","resizeObserver","Observer","attach","MutationObserver","WebkitMutationObserver","mutations","attributes","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","disconnect","onTouchStart","touchEventsData","touches","animating","preventInteractionOnTransition","originalEvent","touchEventsTarget","wrapperEl","isTouchEvent","which","button","isMoved","noSwipingClass","shadowRoot","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","threshold","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","isVertical","translate","diffX","diffY","sqrt","pow","touchAngle","atan2","abs","PI","touchMoveStopPropagation","nested","loopFix","startTranslate","getTranslate","allowMomentumBounce","grabCursor","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","watchSlidesProgress","watchSlidesVisibility","velocities","onTouchEnd","slidesGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","moveDistance","currentSlideSize","slidesSizesGrid","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","_increment","ratio","longSwipes","longSwipesRatio","shortSwipes","onResize","setBreakpoint","running","paused","checkOverflow","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","previousTranslate","scrollWidth","translatesDiff","dummyEventAttached","dummyEventListener","initialSlide","updateOnWindowResize","autoHeight","setWrapperSize","virtualTranslate","effect","breakpointsBase","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","slideToClickedSlide","preloadImages","updateOnImagesReady","loopPreventsSlide","containerModifierClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_defineProperties","prototypes","modular","useParams","instanceParams","modules","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","method","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","clientWidth","clientHeight","getDirectionLabel","property","getDirectionPropertyValue","node","swiperSize","wrongRTL","isVirtual","previousSlidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","marginLeft","marginTop","marginRight","marginBottom","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","updateSlidesOffset","updateAutoHeight","activeSlides","getSlideByIndex","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","newActiveIndex","previousRealIndex","previousSnapIndex","skip","slideFound","clickedSlide","clickedIndex","axis","byController","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","initial","indexAsNumber","isFinite","normalizedTranslate","normalizedGird","normalizedGridNext","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","_clientLeft","normalize","prevIndex","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","blankNode","cloneNode","moving","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","cancel","detachEvents","_swiper$loopedSlides","currentBreakpoint","param","paramValue","breakpointParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","directionChanged","needsReLoop","isEnabled","disable","enable","base","containerEl","currentHeight","innerHeight","points","point","minRatio","sort","_points$i","wasLocked","lastSlidePosition","addClasses","resultClasses","suffixes","removeClasses","images","loadImage","imageEl","checkForComplete","onReady","onload","onerror","imagesLoaded","imagesToLoad","swipers","newParams","moduleParamName","desktop","clickTimeout","Constructor","protoProps","staticProps","setProgress","updates","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","getWrapper","wrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","prototypeGroup","protoMethod","ImgixSourceType","parameters_json_1","ImgixParamValueIOTS","union","boolean","null","mapToImgixParamValue","mapObjIndexed","ImgixParamsIOTS","partial","aliases","parameters","ImgixGatsbyFieldBaseIOTS","fieldName","ImgixGatsbyFieldMultipleUrlsIOTS","intersection","getURLs","ImgixGatsbyFieldSingleUrlIOTS","getURL","ImgixGatsbyFieldsIOTS","ImgixGatsbyOptionsIOTS","typeOptional","defaultImgixParams","optional","disableIxlibParam","sourceType","fromEnum","fields","hasElementType","hasMap","hasSet","Set","hasArrayBuffer","ArrayBuffer","isView","equal","it","done","valueOf","error","deleteProps","delay","now","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","HTMLElement","nextSource","keysArray","nextIndex","nextKey","desc","bindModuleMethods","subKey","classesToSelector","createElementIfNotDefined","$container","checkProps","element","ramda_1","curry","dp","num","blue2","blue3","blue4","dark1","dark2","dark3","dark4","green1","green2","green3","green4","light2","light3","light4","light7","lightBlue1","lightBlue2","lightBlue3","lightBlue4","orange2","orange3","orange4","secondaryOrange1","secondaryOrange2","secondaryOrange3","secondaryOrange4","secondaryPurple1","secondaryPurple2","secondaryPurple4","secondaryGreen1","secondaryGreen2","secondaryGreen3","secondaryGreen4","violet1","violet2","violet3","violet4","yellow1","yellow2","yellow3","yellow4","re","starts_with_slashes","ends_with_slashes","pluses","query_separator","uri_parser","decodeURIComponent","parseQuery","str","ps","pairs","Uri","uriParts","parts","parseUri","queryPairs","query","hasAuthorityPrefixUserPref","thisArg","kValue","hasAuthorityPrefix","isColonUri","getQueryParamValue","getQueryParamValues","deleteQueryParam","keyMatchesFilter","valMatchesFilter","addQueryParam","hasQueryParam","replaceQueryParam","newVal","oldVal","toUpperCase","scheme","userInfo","port","addTrailingSlash","anchor","clone","toggleEl","disabled","disabledClass","onPrevClick","onNextClick","_swiper$navigation2","_swiper$navigation3","_swiper$navigation4","isHidden","hideBelow","$hideAbove","$hideBelow","SIZES","__spreadArray","il","fromReadonlyNonEmptyArray","isSome","jsuri_1","uri","seo_title","seo_description","share_image","metas","Config","Helmet","meta","extendStatics","__extends","__","__spreadArrays","jl","failures","failure","success","Type","validate","asDecoder","asEncoder","actual","getFunctionName","getContextEntry","decoder","appendContext","pushAll","ys","getNameFromProps","useIdentity","codecs","getInterfaceTypeName","getPartialTypeName","getDomainKeys","isLiteralC","literal_1","isUnionC","types","undefinedType","getUnionName","mergeAll","us","primitive","baseIsNotADictionary","UnknownRecord","us_1","us_2","stripKeys","shouldStrip","emptyTags","intersect","a_1","isAnyC","codec","isTypeC","lazyCodecs","getTags","isStrictC","isExactC","isRefinementC","isIntersectionC","tags","intersection_1","mergeTags","intersectTags","isRecursiveC","getIndex","_loop_1","all","keys_1","state_1","NullType","_super","nullType","UndefinedType","VoidType","voidType","UnknownType","unknown","StringType","NumberType","BigIntType","bigint","BooleanType","AnyArrayType","UnknownArray","AnyDictionaryType","LiteralType","literal","KeyofType","keyof","RefinementType","refinement","Int","RecursiveType","runDefinition","recursion","definition","Self","ArrayType","errors","ui","ai","InterfaceType","uk","ak","type_1","vak","PartialType","type_2","DictionaryType","codomain","record","changed","ok","codomainResult","vok","enumerableRecord","domainResult","vk","nonEnumerableRecord","UnionType","tag_1","groups_1","len_1","find_1","TaggedUnionType","codecs_1","IntersectionType","TupleType","type_3","va","ReadonlyType","readonly","ReadonlyArrayType","readonlyArray","strict","exact","ExactType","isPartialC","getExactTypeName","getProps","ce","FunctionType","taggedUnion","getValidationError","getDefaultContext","NeverType","never","AnyType","Dictionary","ObjectType","Integer","dictionary","StrictType","clean","alias","requiredArgs","required","fixOptionals","enumName","theEnum","isEnumValue","input","__exportStar","fails","RE","BROKEN_CARET","icon","StyledButton","$theme","dark","light","blue","textColor","StyledSection","$backgroundColor","$textColor","SuspenseList","isSuspenseList","getModuleId","clock","_class","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","classCallCheck","createClass","defineProperties","objectWithoutProperties","possibleConstructorReturn","encodeSpecialCharacters","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","currentTime","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","newState","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","attribute","indexToSave","headElement","head","tagNodes","indexToDelete","newElement","styleSheet","cssText","createTextNode","existingTag","isEqualNode","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","_ref$title","link","noscript","script","HelmetSideEffects","defer","HelmetExport","HelmetWrapper","inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_child$props","initAttributes","convertReactPropstoHtmlAttributes","_props","defaultTitle","titleTemplate","mappedState","renderStatic","anObject","ignoreCase","multiline","dotAll","unicode","sticky","isDate","isValid","dirtyDate","addMilliseconds","dirtyAmount","timestamp","amount","subMilliseconds","startOfUTCISOWeek","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","startOfUTCWeek","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","defaultOptions","locale","getUTCWeekYear","_options$firstWeekCon","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","addLeadingZeros","targetLength","sign","output","signedYear","getUTCMonth","dayPeriodEnumValue","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","dayPeriodEnum","formatTimezoneShort","dirtyDelimiter","absOffset","hours","minutes","delimiter","formatTimezoneWithOptionalMinutes","formatTimezone","unit","lightFormatters","signedWeekYear","weekYear","week","getUTCWeek","isoWeek","getUTCISOWeek","dayOfYear","setUTCMonth","startOfYearTimestamp","difference","getUTCDayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","_localize","timezoneOffset","_originalDate","getTimezoneOffset","originalDate","dateLongFormatter","timeLongFormatter","dateTimeFormat","datePattern","timePattern","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_options$locale2","_options$locale2$opti","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","formatterOptions","firstCharacter","longFormatter","cleanEscapedString","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","matched","_isPlaceholder","_curry1","f1","_curry2","f2","_concat","set1","set2","len1","len2","_arity","a3","a4","a5","a6","a7","a8","a9","_curryN","received","argsIdx","combinedIdx","origFn","list","_curry3","f3","_c","_idx","_list","_isTransformer","_dispatchable","methodNames","xf","_isArray","transducer","_reduced","XAll","_xfBase","functor","_isString","XWrap","_xwrap","thisObj","_iterableReduce","iter","_methodReduce","symIterator","_arrayReduce","XMap","_has","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","hasArgsEnumBug","nIdx","ks","checkArgsLength","pathsArray","paths","_isInteger","pathAr","preds","XAny","applyF","applyX","_aperture","limit","XAperture","pos","store","getCopy","vals","mapValues","applySpec","spec","bb","assocPath","nextObj","_isFunction","lifted","_makeFlat","recursive","flatt","jlen","ilen","rxf","preservingReduced","monad","_cloneRegExp","_clone","refFrom","refTo","deep","copy","copiedValue","pred","_pipe","_checkForMethod","methodname","fromIndex","toIndex","Infinity","compose","composeK","last","_pipeP","ctx","then","pipeP","composeP","_identity","headList","tailList","_arrayFromIterator","_includesWith","_uniqContentEquals","aIterator","bIterator","stackA","stackB","_equals","aItem","typeA","_functionName","extendedStackA","extendedStackB","_indexOf","inf","_includes","_quote","pad","toISOString","toFixed","_complement","_filter","_isObject","XFilter","filterable","_toString","seen","recur","mapPairs","repr","pair","Fn","$0","$1","$2","$3","$4","$5","$6","$7","$8","$9","after","fns","XReduceBy","valueFn","valueAcc","keyFn","inputs","elt","hasOrAdd","shouldAdd","prevSize","_items","_nativeSet","bIdx","_Set","firstLen","secondLen","toFilterOut","dissocPath","tail","XDrop","XTake","dropLast","XDropLast","dropLastWhile","XDropLastWhile","retained","retain","flush","XDropRepeatsWith","lastValue","seenFirstValue","sameAsLast","XDropWhile","suffix","obj1","obj2","evolve","transformations","transformation","XFind","XFindIndex","XFindLast","XFindLastIndex","lastIdx","keyList","nextidx","_path","condition","onTrue","elts","appliedItem","list1","list2","lookupList","filteredList","separator","_stepCatArray","_stepCatString","_stepCatObject","_stepCat","Ctor","lastIndexOf","_isNumber","getter","setter","toFunctorFn","focus","rx","mFn","mergeDeepWithKey","lObj","rObj","lVal","rVal","_l","_r","positiveFrom","positiveTo","_of","names","called","_assertPromise","Identity","lens","fst","snd","_createPartialApplicator","propPath","pipeK","transformers","regex","replacement","traversable","comparator","XTakeWhile","XTap","outerlist","innerlist","ws","beginRx","endRx","tryer","catcher","depth","endIdx","currentDepth","seed","whenFalseFn","vs","Const","whenTrueFn","testObj","rv","fnArgs","NAV_SUB_MENUS","useCases","solutions","whyShipamax","resources","company","LayoutFooter","StyledStripedCurve","StyledStripedBackground","LOGO_LIGHT","StyledFooterContacts","StyledSocials","rel","SOCIAL_LINKEDIN","SOCIAL_TWITTER","StyledLinksColumn","StyledLink","STRIPED_CURVE","STRIPED_BACKGROUND","DemoBanner","prismicDemoBannerComponent","StyledBanner","banner_text","banner_link_text","LayoutNavDropdown","rightOffset","onMouseEnter","onMouseLeave","StyledItem","StyledItemIcon","StyledItemTitle","LayoutMobileNavItem","arrowColor","StyledTitleRow","$arrowColor","_p$$arrowColor","LayoutMobileMenu","onClose","onSubLevel","setOnSubLevel","subMenu","setSubMenu","StyledTopBar","StyledBackButton","StyledCloseButton","StyledMainArea","StyledPage","StyledBottomBar","nav","LayoutLoginDropdown","fill","LayoutHeader","showDemoBanner","mobileMenuVisible","setMobileMenuVisible","mouseOvers","setMouseOvers","makeMouseProps","shouldShowDropdown","idPrefix","scrolledTopRef","showShadow","setShowShadow","StyledMobileHeader","$showShadow","StyledLogoLink","LOGO_DARK","MOBILE_MENU_PROMPT","StyledMinorRow","StyledMinorLinks","StyledMinorLink","StyledDropdownAnchor","StyledMainRow","StyledMainInner","StyledNavLink","LayoutSvgSprites","viewBox","xmlns","fill-rule","clip-rule","GlobalStyle","createGlobalStyle","_templateObject","strings","footerBackColor","lang","charSet","httpEquiv","freeze","styledComponentId","REACT_APP_SC_ATTR","SC_ATTR","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","groupSizes","Uint32Array","indexOfGroup","insertRules","insertRule","clearGroup","deleteRule","getGroup","getRule","V","registerName","getTag","__webpack_nonce__","hasAttribute","nextSibling","sheet","styleSheets","ownerNode","cssRules","nodes","rules","isServer","useCSSOMInjection","gs","registerId","reconstructWithOptions","allocateGSInstance","hasNameForId","clearNames","clear","clearRules","clearTag","ee","te","ne","oe","ie","staticRulesId","isStatic","baseHash","baseStyle","generateAndInjectStyles","Ne","se","ae","plugins","ue","createContext","Consumer","he","pe","fe","ye","stylisPlugins","disableCSSOMInjection","disableVendorPrefixes","Provider","ve","inject","getName","ge","Se","we","Ee","be","_e","isReactComponent","Ae","Oe","theme","Re","De","je","Te","ke","xe","Ve","Be","Me","ze","Fe","Ye","parentComponentId","shouldForwardProp","componentStyle","foldedComponentIds","$as","withComponent","_foldedDefaultProps","qe","He","createStyles","removeStyles","renderStyles","$e","memo","_emitSheetCSS","getStyleTags","sealed","getStyleElement","nonce","seal","collectStyles","interleaveWithNodeStream","getDefaultOptions","__WEBPACK_EXTERNAL_MODULE_react__","installedModules","__webpack_require__","moduleId","toStringTag","mode","ns","propIsEnumerable","toObject","test1","test2","test3","letter","err","shouldUseNative","symbols","link_type","_linkType","linkType","PRIORITIES","NODE_TYPES","heading1","heading2","heading3","heading4","heading5","heading6","paragraph","preformatted","strong","em","listItem","oListItem","oList","embed","hyperlink","isParentOf","elected","others","lower","upper","TextNode","outer","SpanNode","setChildren","boundaries","RichTextBlock","isEmbedBlock","isImageBlock","BlockNode","spans","isListItem","ListBlockNode","ListItemBlockNode","addChild","isOrderedListItem","OrderedListBlockNode","OrderedListItemBlockNode","emptyList","emptyOrderedList","Node","asText","asTree","fromRichText","serialize","Elements","printWarning","ReactPropTypesSecret","loggedTypeFailures","typeSpecs","getStack","typeSpecName","resetWarningCache","ReactIs","emptyFunctionThatReturnsNull","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","ReactPropTypes","createPrimitiveTypeChecker","symbol","createChainableTypeChecker","typeChecker","propFullName","PropTypeError","propValue","getPropType","elementType","instanceOf","expectedClass","expectedClassName","isNode","objectOf","propType","expectedValues","valuesString","getPreciseType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","shapeTypes","allKeys","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","secret","chainedCheckType","expectedType","iteratorFn","maybeIterable","getIteratorFn","isSymbol","PropTypes","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","argIndex","lowPriorityWarning$1","$$typeofType","hasWarnedAboutDeprecatedIsAsyncMode","__webpack_exports__","prop_types__WEBPACK_IMPORTED_MODULE_1__","prismic_richtext__WEBPACK_IMPORTED_MODULE_2__","_richtext__WEBPACK_IMPORTED_MODULE_3__","_objectWithoutProperties","sourceSymbolKeys","elements","htmlSerializer","linkResolver","serializeHyperlink","renderAsText","maybeSerializer","serializers","processors","createHtmlSerializer","createScript","js","fjs","ready","embeds","Twitter","twttr","widgets","Facebook","FB","XFBML","Instagram","instgrm","Embeds","PrismicHelpers","PrismicRichText","renderRichText","react__WEBPACK_IMPORTED_MODULE_0__","prismic_richtext__WEBPACK_IMPORTED_MODULE_1__","prismic_richtext__WEBPACK_IMPORTED_MODULE_1___default","prismic_helpers__WEBPACK_IMPORTED_MODULE_2__","_embeds__WEBPACK_IMPORTED_MODULE_3__","ownKeys","enumerableOnly","sym","getOwnPropertyDescriptors","_objectSpread","serializeElement","serializeStandardTag","linkUrl","linkTarget","relAttr","propsWithUniqueKey","serializeImage","oembed","provider_name","embed_url","embedHtml","serializeEmbed","targetAttr","serializeLabel","brIndex","br","serializeSpan","structuredText","richText","serializedChildren","0","startWith"],"mappings":"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","file":"commons-da99d760ecaadefc6dd4.js","sourcesContent":["\"use strict\";\n\nvar __createBinding = this && this.__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 () {\n return m[k];\n }\n });\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\", {\n enumerable: true,\n value: v\n });\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\", {\n value: true\n});\nexports.getFilterable = exports.getCompactable = exports.getSemigroup = exports.getEq = exports.getShow = exports.URI = exports.throwError = exports.sequence = exports.traverse = exports.reduceRight = exports.foldMap = exports.reduce = exports.duplicate = exports.extend = exports.alt = exports.altW = exports.flatten = exports.chain = exports.chainW = exports.of = exports.ap = exports.apW = exports.mapLeft = exports.bimap = exports.map = exports.filterOrElse = exports.filterOrElseW = exports.orElse = exports.orElseW = exports.swap = exports.chainOptionK = exports.fromOptionK = exports.toUnion = exports.chainNullableK = exports.fromNullableK = exports.tryCatchK = exports.tryCatch = exports.fromNullable = exports.getOrElse = exports.getOrElseW = exports.fold = exports.match = exports.foldW = exports.matchW = exports.fromPredicate = exports.fromOption = exports.right = exports.left = exports.isRight = exports.isLeft = void 0;\nexports.getValidation = exports.getValidationMonoid = exports.getValidationSemigroup = exports.getApplyMonoid = exports.getApplySemigroup = exports.either = exports.stringifyJSON = exports.parseJSON = exports.sequenceArray = exports.traverseArray = exports.traverseArrayWithIndex = exports.apSW = exports.apS = exports.bindW = exports.bind = exports.bindTo = exports.Do = exports.exists = exports.elem = exports.toError = exports.FromEither = exports.MonadThrow = exports.ChainRec = exports.Extend = exports.Alt = exports.Bifunctor = exports.Traversable = exports.Foldable = exports.chainFirstW = exports.chainFirst = exports.Monad = exports.Chain = exports.Applicative = exports.apSecond = exports.apFirst = exports.Apply = exports.Pointed = exports.flap = exports.Functor = exports.getAltValidation = exports.getApplicativeValidation = exports.getWitherable = void 0;\nvar Applicative_1 = require(\"./Applicative\");\nvar Apply_1 = require(\"./Apply\");\nvar Chain_1 = require(\"./Chain\");\nvar ChainRec_1 = require(\"./ChainRec\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nvar _ = __importStar(require(\"./internal\"));\nvar Separated_1 = require(\"./Separated\");\n// -------------------------------------------------------------------------------------\n// guards\n// -------------------------------------------------------------------------------------\n/**\n * Returns `true` if the either is an instance of `Left`, `false` otherwise.\n *\n * @category guards\n * @since 2.0.0\n */\nexports.isLeft = _.isLeft;\n/**\n * Returns `true` if the either is an instance of `Right`, `false` otherwise.\n *\n * @category guards\n * @since 2.0.0\n */\nvar isRight = function (ma) {\n return ma._tag === 'Right';\n};\nexports.isRight = isRight;\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Constructs a new `Either` holding a `Left` value. This usually represents a failure, due to the right-bias of this\n * structure.\n *\n * @category constructors\n * @since 2.0.0\n */\nvar left = function (e) {\n return {\n _tag: 'Left',\n left: e\n };\n};\nexports.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 */\nvar right = function (a) {\n return {\n _tag: 'Right',\n right: a\n };\n};\nexports.right = right;\n/**\n * @example\n * import { fromOption, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import { none, some } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(\n * some(1),\n * fromOption(() => 'error')\n * ),\n * right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * none,\n * fromOption(() => 'error')\n * ),\n * left('error')\n * )\n *\n * @category constructors\n * @since 2.0.0\n */\nvar fromOption = function (onNone) {\n return function (ma) {\n return ma._tag === 'None' ? exports.left(onNone()) : exports.right(ma.value);\n };\n};\nexports.fromOption = fromOption;\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 */\nvar fromPredicate = function (predicate, onFalse) {\n return function (a) {\n return predicate(a) ? exports.right(a) : exports.left(onFalse(a));\n };\n};\nexports.fromPredicate = fromPredicate;\n// -------------------------------------------------------------------------------------\n// destructors\n// -------------------------------------------------------------------------------------\n/**\n * Less strict version of [`match`](#match).\n *\n * @category destructors\n * @since 2.10.0\n */\nvar matchW = function (onLeft, onRight) {\n return function (ma) {\n return exports.isLeft(ma) ? onLeft(ma.left) : onRight(ma.right);\n };\n};\nexports.matchW = matchW;\n/**\n * Alias of [`matchW`](#matchww).\n *\n * @category destructors\n * @since 2.10.0\n */\nexports.foldW = exports.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 */\nexports.match = exports.matchW;\n/**\n * Alias of [`match`](#match).\n *\n * @category destructors\n * @since 2.0.0\n */\nexports.fold = exports.match;\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * @category destructors\n * @since 2.6.0\n */\nvar getOrElseW = function (onLeft) {\n return function (ma) {\n return exports.isLeft(ma) ? onLeft(ma.left) : ma.right;\n };\n};\nexports.getOrElseW = getOrElseW;\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 */\nexports.getOrElse = exports.getOrElseW;\n// -------------------------------------------------------------------------------------\n// interop\n// -------------------------------------------------------------------------------------\n// TODO: make lazy in v3\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 */\nvar fromNullable = function (e) {\n return function (a) {\n return a == null ? exports.left(e) : exports.right(a);\n };\n};\nexports.fromNullable = fromNullable;\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 */\nvar tryCatch = function (f, onThrow) {\n try {\n return exports.right(f());\n } catch (e) {\n return exports.left(onThrow(e));\n }\n};\nexports.tryCatch = tryCatch;\n/**\n * Converts a function that may throw to one returning a `Either`.\n *\n * @category interop\n * @since 2.10.0\n */\nvar tryCatchK = function (f, onThrow) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return exports.tryCatch(function () {\n return f.apply(void 0, a);\n }, onThrow);\n };\n};\nexports.tryCatchK = tryCatchK;\n/**\n * @category interop\n * @since 2.9.0\n */\nvar fromNullableK = function (e) {\n var from = exports.fromNullable(e);\n return function (f) {\n return function_1.flow(f, from);\n };\n};\nexports.fromNullableK = fromNullableK;\n/**\n * @category interop\n * @since 2.9.0\n */\nvar chainNullableK = function (e) {\n var from = exports.fromNullableK(e);\n return function (f) {\n return exports.chain(from(f));\n };\n};\nexports.chainNullableK = chainNullableK;\n/**\n * @category interop\n * @since 2.10.0\n */\nexports.toUnion = /*#__PURE__*/\nexports.foldW(function_1.identity, function_1.identity);\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @category combinators\n * @since 2.10.0\n */\nvar fromOptionK = function (onNone) {\n var from = exports.fromOption(onNone);\n return function (f) {\n return function_1.flow(f, from);\n };\n};\nexports.fromOptionK = fromOptionK;\n/**\n * @category combinators\n * @since 2.10.0\n */\nvar chainOptionK = function (onNone) {\n var from = exports.fromOptionK(onNone);\n return function (f) {\n return exports.chain(from(f));\n };\n};\nexports.chainOptionK = chainOptionK;\n/**\n * Returns a `Right` if is a `Left` (and vice versa).\n *\n * @category combinators\n * @since 2.0.0\n */\nfunction swap(ma) {\n return exports.isLeft(ma) ? exports.right(ma.left) : exports.left(ma.right);\n}\nexports.swap = swap;\n/**\n * Less strict version of [`orElse`](#orelse).\n *\n * @category combinators\n * @since 2.10.0\n */\nvar orElseW = function (onLeft) {\n return function (ma) {\n return exports.isLeft(ma) ? onLeft(ma.left) : ma;\n };\n};\nexports.orElseW = orElseW;\n/**\n * Useful for recovering from errors.\n *\n * @category combinators\n * @since 2.0.0\n */\nexports.orElse = exports.orElseW;\n/**\n * Less strict version of [`filterOrElse`](#filterorelse).\n *\n * @category combinators\n * @since 2.9.0\n */\nvar filterOrElseW = function (predicate, onFalse) {\n return exports.chainW(function (a) {\n return predicate(a) ? exports.right(a) : exports.left(onFalse(a));\n });\n};\nexports.filterOrElseW = filterOrElseW;\n/**\n * @example\n * import { filterOrElse as filterOrElse, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * right(1),\n * filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * right(-1),\n * filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * left('error')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * left('a'),\n * filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * left('a')\n * )\n *\n * @category combinators\n * @since 2.0.0\n */\nexports.filterOrElse = exports.filterOrElseW;\n// -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\nvar _map = function (fa, f) {\n return function_1.pipe(fa, exports.map(f));\n};\nvar _ap = function (fab, fa) {\n return function_1.pipe(fab, exports.ap(fa));\n};\n/* istanbul ignore next */\nvar _chain = function (ma, f) {\n return function_1.pipe(ma, exports.chain(f));\n};\n/* istanbul ignore next */\nvar _reduce = function (fa, b, f) {\n return function_1.pipe(fa, exports.reduce(b, f));\n};\n/* istanbul ignore next */\nvar _foldMap = function (M) {\n return function (fa, f) {\n var foldMapM = exports.foldMap(M);\n return function_1.pipe(fa, foldMapM(f));\n };\n};\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) {\n return function_1.pipe(fa, exports.reduceRight(b, f));\n};\nvar _traverse = function (F) {\n var traverseF = exports.traverse(F);\n return function (ta, f) {\n return function_1.pipe(ta, traverseF(f));\n };\n};\nvar _bimap = function (fa, f, g) {\n return function_1.pipe(fa, exports.bimap(f, g));\n};\nvar _mapLeft = function (fa, f) {\n return function_1.pipe(fa, exports.mapLeft(f));\n};\n/* istanbul ignore next */\nvar _alt = function (fa, that) {\n return function_1.pipe(fa, exports.alt(that));\n};\n/* istanbul ignore next */\nvar _extend = function (wa, f) {\n return function_1.pipe(wa, exports.extend(f));\n};\nvar _chainRec = function (a, f) {\n return ChainRec_1.tailRec(f(a), function (e) {\n return exports.isLeft(e) ? exports.right(exports.left(e.left)) : exports.isLeft(e.right) ? exports.left(f(e.right.left)) : exports.right(exports.right(e.right.right));\n });\n};\n// -------------------------------------------------------------------------------------\n// type class members\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 */\nvar map = function (f) {\n return function (fa) {\n return exports.isLeft(fa) ? fa : exports.right(f(fa.right));\n };\n};\nexports.map = map;\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 */\nvar bimap = function (f, g) {\n return function (fa) {\n return exports.isLeft(fa) ? exports.left(f(fa.left)) : exports.right(g(fa.right));\n };\n};\nexports.bimap = bimap;\n/**\n * Map a function over the first type argument of a bifunctor.\n *\n * @category Bifunctor\n * @since 2.0.0\n */\nvar mapLeft = function (f) {\n return function (fa) {\n return exports.isLeft(fa) ? exports.left(f(fa.left)) : fa;\n };\n};\nexports.mapLeft = mapLeft;\n/**\n * Less strict version of [`ap`](#ap).\n *\n * @category Apply\n * @since 2.8.0\n */\nvar apW = function (fa) {\n return function (fab) {\n return exports.isLeft(fab) ? fab : exports.isLeft(fa) ? fa : exports.right(fab.right(fa.right));\n };\n};\nexports.apW = apW;\n/**\n * Apply a function to an argument under a type constructor.\n *\n * @category Apply\n * @since 2.0.0\n */\nexports.ap = exports.apW;\n/**\n * @category Pointed\n * @since 2.7.0\n */\nexports.of = exports.right;\n/**\n * Less strict version of [`chain`](#chain).\n *\n * @category Monad\n * @since 2.6.0\n */\nvar chainW = function (f) {\n return function (ma) {\n return exports.isLeft(ma) ? ma : f(ma.right);\n };\n};\nexports.chainW = chainW;\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 */\nexports.chain = exports.chainW;\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 */\nexports.flatten = /*#__PURE__*/\nexports.chain(function_1.identity);\n/**\n * Less strict version of [`alt`](#alt).\n *\n * @category Alt\n * @since 2.9.0\n */\nvar altW = function (that) {\n return function (fa) {\n return exports.isLeft(fa) ? that() : fa;\n };\n};\nexports.altW = altW;\n/**\n * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to\n * types of kind `* -> *`.\n *\n * @category Alt\n * @since 2.0.0\n */\nexports.alt = exports.altW;\n/**\n * @category Extend\n * @since 2.0.0\n */\nvar extend = function (f) {\n return function (wa) {\n return exports.isLeft(wa) ? wa : exports.right(f(wa));\n };\n};\nexports.extend = extend;\n/**\n * Derivable from `Extend`.\n *\n * @category combinators\n * @since 2.0.0\n */\nexports.duplicate = /*#__PURE__*/\nexports.extend(function_1.identity);\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 Foldable\n * @since 2.0.0\n */\nvar reduce = function (b, f) {\n return function (fa) {\n return exports.isLeft(fa) ? b : f(b, fa.right);\n };\n};\nexports.reduce = reduce;\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 Foldable\n * @since 2.0.0\n */\nvar foldMap = function (M) {\n return function (f) {\n return function (fa) {\n return exports.isLeft(fa) ? M.empty : f(fa.right);\n };\n };\n};\nexports.foldMap = foldMap;\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 Foldable\n * @since 2.0.0\n */\nvar reduceRight = function (b, f) {\n return function (fa) {\n return exports.isLeft(fa) ? b : f(fa.right, b);\n };\n};\nexports.reduceRight = reduceRight;\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 Traversable\n * @since 2.6.3\n */\nvar traverse = function (F) {\n return function (f) {\n return function (ta) {\n return exports.isLeft(ta) ? F.of(exports.left(ta.left)) : F.map(f(ta.right), exports.right);\n };\n };\n};\nexports.traverse = traverse;\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 Traversable\n * @since 2.6.3\n */\nvar sequence = function (F) {\n return function (ma) {\n return exports.isLeft(ma) ? F.of(exports.left(ma.left)) : F.map(ma.right, exports.right);\n };\n};\nexports.sequence = sequence;\n/**\n * @category MonadThrow\n * @since 2.6.3\n */\nexports.throwError = exports.left;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.0.0\n */\nexports.URI = 'Either';\n/**\n * @category instances\n * @since 2.0.0\n */\nfunction getShow(SE, SA) {\n return {\n show: function (ma) {\n return exports.isLeft(ma) ? \"left(\" + SE.show(ma.left) + \")\" : \"right(\" + SA.show(ma.right) + \")\";\n }\n };\n}\nexports.getShow = getShow;\n/**\n * @category instances\n * @since 2.0.0\n */\nfunction getEq(EL, EA) {\n return {\n equals: function (x, y) {\n return x === y || (exports.isLeft(x) ? exports.isLeft(y) && EL.equals(x.left, y.left) : exports.isRight(y) && EA.equals(x.right, y.right));\n }\n };\n}\nexports.getEq = getEq;\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 */\nfunction getSemigroup(S) {\n return {\n concat: function (x, y) {\n return exports.isLeft(y) ? x : exports.isLeft(x) ? y : exports.right(S.concat(x.right, y.right));\n }\n };\n}\nexports.getSemigroup = getSemigroup;\n/**\n * Builds a `Compactable` instance for `Either` given `Monoid` for the left side.\n *\n * @category instances\n * @since 2.10.0\n */\nvar getCompactable = function (M) {\n var empty = exports.left(M.empty);\n return {\n URI: exports.URI,\n _E: undefined,\n compact: function (ma) {\n return exports.isLeft(ma) ? ma : ma.right._tag === 'None' ? empty : exports.right(ma.right.value);\n },\n separate: function (ma) {\n return exports.isLeft(ma) ? Separated_1.separated(ma, ma) : exports.isLeft(ma.right) ? Separated_1.separated(exports.right(ma.right.left), empty) : Separated_1.separated(empty, exports.right(ma.right.right));\n }\n };\n};\nexports.getCompactable = getCompactable;\n/**\n * Builds a `Filterable` instance for `Either` given `Monoid` for the left side\n *\n * @category instances\n * @since 2.10.0\n */\nfunction getFilterable(M) {\n var empty = exports.left(M.empty);\n var _a = exports.getCompactable(M),\n compact = _a.compact,\n separate = _a.separate;\n var filter = function (ma, predicate) {\n return exports.isLeft(ma) ? ma : predicate(ma.right) ? ma : empty;\n };\n var partition = function (ma, p) {\n return exports.isLeft(ma) ? Separated_1.separated(ma, ma) : p(ma.right) ? Separated_1.separated(empty, exports.right(ma.right)) : Separated_1.separated(exports.right(ma.right), empty);\n };\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n compact: compact,\n separate: separate,\n filter: filter,\n filterMap: function (ma, f) {\n if (exports.isLeft(ma)) {\n return ma;\n }\n var ob = f(ma.right);\n return ob._tag === 'None' ? empty : exports.right(ob.value);\n },\n partition: partition,\n partitionMap: function (ma, f) {\n if (exports.isLeft(ma)) {\n return Separated_1.separated(ma, ma);\n }\n var e = f(ma.right);\n return exports.isLeft(e) ? Separated_1.separated(exports.right(e.left), empty) : Separated_1.separated(empty, exports.right(e.right));\n }\n };\n}\nexports.getFilterable = getFilterable;\n/**\n * Builds `Witherable` instance for `Either` given `Monoid` for the left side\n *\n * @category instances\n * @since 2.0.0\n */\nfunction getWitherable(M) {\n var F_ = getFilterable(M);\n var wither = function (F) {\n var traverseF = _traverse(F);\n return function (ma, f) {\n return F.map(traverseF(ma, f), F_.compact);\n };\n };\n var wilt = function (F) {\n var traverseF = _traverse(F);\n return function (ma, f) {\n return F.map(traverseF(ma, f), F_.separate);\n };\n };\n return {\n URI: exports.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: exports.sequence,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n wither: wither,\n wilt: wilt\n };\n}\nexports.getWitherable = getWitherable;\n/**\n * @category instances\n * @since 2.7.0\n */\nfunction getApplicativeValidation(SE) {\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n ap: function (fab, fa) {\n return exports.isLeft(fab) ? exports.isLeft(fa) ? exports.left(SE.concat(fab.left, fa.left)) : fab : exports.isLeft(fa) ? fa : exports.right(fab.right(fa.right));\n },\n of: exports.of\n };\n}\nexports.getApplicativeValidation = getApplicativeValidation;\n/**\n * @category instances\n * @since 2.7.0\n */\nfunction getAltValidation(SE) {\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n alt: function (me, that) {\n if (exports.isRight(me)) {\n return me;\n }\n var ea = that();\n return exports.isLeft(ea) ? exports.left(SE.concat(me.left, ea.left)) : ea;\n }\n };\n}\nexports.getAltValidation = getAltValidation;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * Derivable from `Functor`.\n *\n * @category combinators\n * @since 2.10.0\n */\nexports.flap = /*#_PURE_*/\nFunctor_1.flap(exports.Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Pointed = {\n URI: exports.URI,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Apply = {\n URI: exports.URI,\n map: _map,\n ap: _ap\n};\n/**\n * Combine two effectful actions, keeping only the result of the first.\n *\n * Derivable from `Apply`.\n *\n * @category combinators\n * @since 2.0.0\n */\nexports.apFirst = /*#__PURE__*/\nApply_1.apFirst(exports.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 */\nexports.apSecond = /*#__PURE__*/\nApply_1.apSecond(exports.Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Applicative = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Chain = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Monad = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.0.0\n */\nexports.chainFirst = /*#__PURE__*/\nChain_1.chainFirst(exports.Chain);\n/**\n * Less strict version of [`chainFirst`](#chainfirst)\n *\n * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.8.0\n */\nexports.chainFirstW = exports.chainFirst;\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Foldable = {\n URI: exports.URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Traversable = {\n URI: exports.URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Bifunctor = {\n URI: exports.URI,\n bimap: _bimap,\n mapLeft: _mapLeft\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Alt = {\n URI: exports.URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.Extend = {\n URI: exports.URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.ChainRec = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: _chainRec\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexports.MonadThrow = {\n URI: exports.URI,\n map: _map,\n ap: _ap,\n of: exports.of,\n chain: _chain,\n throwError: exports.throwError\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.FromEither = {\n URI: exports.URI,\n fromEither: function_1.identity\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Default value for the `onError` argument of `tryCatch`\n *\n * @since 2.0.0\n */\nfunction toError(e) {\n return e instanceof Error ? e : new Error(String(e));\n}\nexports.toError = toError;\n/**\n * @since 2.0.0\n */\nfunction elem(E) {\n return function (a, ma) {\n return exports.isLeft(ma) ? false : E.equals(a, ma.right);\n };\n}\nexports.elem = elem;\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 */\nfunction exists(predicate) {\n return function (ma) {\n return exports.isLeft(ma) ? false : predicate(ma.right);\n };\n}\nexports.exists = exists;\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.9.0\n */\nexports.Do = /*#__PURE__*/\nexports.of({});\n/**\n * @since 2.8.0\n */\nexports.bindTo = /*#__PURE__*/\nFunctor_1.bindTo(exports.Functor);\n/**\n * @since 2.8.0\n */\nexports.bind = /*#__PURE__*/\nChain_1.bind(exports.Chain);\n/**\n * @since 2.8.0\n */\nexports.bindW = exports.bind;\n// -------------------------------------------------------------------------------------\n// pipeable sequence S\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.8.0\n */\nexports.apS = /*#__PURE__*/\nApply_1.apS(exports.Apply);\n/**\n * @since 2.8.0\n */\nexports.apSW = exports.apS;\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @since 2.9.0\n */\nvar traverseArrayWithIndex = function (f) {\n return function (as) {\n var out = [];\n for (var i = 0; i < as.length; i++) {\n var e = f(i, as[i]);\n if (exports.isLeft(e)) {\n return e;\n }\n out.push(e.right);\n }\n return exports.right(out);\n };\n};\nexports.traverseArrayWithIndex = traverseArrayWithIndex;\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @since 2.9.0\n */\nvar traverseArray = function (f) {\n return exports.traverseArrayWithIndex(function (_, a) {\n return f(a);\n });\n};\nexports.traverseArray = traverseArray;\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @since 2.9.0\n */\nexports.sequenceArray = /*#__PURE__*/\nexports.traverseArray(function_1.identity);\n/**\n * Use [`parse`](./Json.ts.html#parse) instead.\n *\n * @category constructors\n * @since 2.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nfunction parseJSON(s, onError) {\n return exports.tryCatch(function () {\n return JSON.parse(s);\n }, onError);\n}\nexports.parseJSON = parseJSON;\n/**\n * Use [`stringify`](./Json.ts.html#stringify) instead.\n *\n * @category constructors\n * @since 2.0.0\n * @deprecated\n */\nvar stringifyJSON = function (u, onError) {\n return exports.tryCatch(function () {\n var s = JSON.stringify(u);\n if (typeof s !== 'string') {\n throw new Error('Converting unsupported structure to JSON');\n }\n return s;\n }, onError);\n};\nexports.stringifyJSON = stringifyJSON;\n/**\n * Use small, specific instances instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\nexports.either = {\n URI: exports.URI,\n map: _map,\n of: exports.of,\n ap: _ap,\n chain: _chain,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: exports.sequence,\n bimap: _bimap,\n mapLeft: _mapLeft,\n alt: _alt,\n extend: _extend,\n chainRec: _chainRec,\n throwError: exports.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 */\nexports.getApplySemigroup = /*#__PURE__*/\nApply_1.getApplySemigroup(exports.Apply);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getApplicativeMonoid) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\nexports.getApplyMonoid = /*#__PURE__*/\nApplicative_1.getApplicativeMonoid(exports.Applicative);\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getApplySemigroup) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\nvar getValidationSemigroup = function (SE, SA) {\n return Apply_1.getApplySemigroup(getApplicativeValidation(SE))(SA);\n};\nexports.getValidationSemigroup = getValidationSemigroup;\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getApplicativeMonoid) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\nvar getValidationMonoid = function (SE, MA) {\n return Applicative_1.getApplicativeMonoid(getApplicativeValidation(SE))(MA);\n};\nexports.getValidationMonoid = getValidationMonoid;\n/**\n * Use [`getApplicativeValidation`](#getapplicativevalidation) and [`getAltValidation`](#getaltvalidation) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\nfunction getValidation(SE) {\n var ap = getApplicativeValidation(SE).ap;\n var alt = getAltValidation(SE).alt;\n return {\n URI: exports.URI,\n _E: undefined,\n map: _map,\n of: exports.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: exports.sequence,\n chainRec: _chainRec,\n throwError: exports.throwError,\n ap: ap,\n alt: alt\n };\n}\nexports.getValidation = getValidation;","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yIDIwQzIgMjEuMTA0NiAyLjg5NTQzIDIyIDQgMjJIMTcuNDE0MkwyMiAxNy40MTQyVjRDMjIgMi44OTU0MyAyMS4xMDQ2IDIgMjAgMkg0QzIuODk1NDMgMiAyIDIuODk1NDMgMiA0VjIwWk00IDRIMjBWMTVIMTdDMTUuODk1NCAxNSAxNSAxNS44OTU0IDE1IDE3VjIwSDRWNFpNMTcgMTdIMTkuNTg1OEwxNyAxOS41ODU4VjE3Wk03IDE1VjE3SDEzVjE1SDdaTTcgMTNWMTFIMTdWMTNIN1pNNyA3VjlIMTdWN0g3WiIgZmlsbD0iIzAwODVGRiIvPgo8L3N2Zz4K\"","\"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;\nvar function_1 = require(\"./function\");\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}\nexports.ap = ap;\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}\nexports.apFirst = apFirst;\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}\nexports.apSecond = apSecond;\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 return Object.assign({}, a, (_a = {}, _a[name] = b, _a));\n };\n }), fb);\n };\n };\n}\nexports.apS = apS;\nfunction getApplySemigroup(F) {\n return function (S) {\n return {\n concat: function (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}\nexports.getApplySemigroup = getApplySemigroup;\nfunction curried(f, n, acc) {\n return function (x) {\n var combined = Array(acc.length + 1);\n for (var i = 0; i < acc.length; i++) {\n combined[i] = acc[i];\n }\n combined[acc.length] = x;\n return n === 0 ? f.apply(null, combined) : curried(f, n - 1, combined);\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};\nfunction getTupleConstructor(len) {\n if (!tupleConstructors.hasOwnProperty(len)) {\n tupleConstructors[len] = curried(function_1.tuple, len - 1, []);\n }\n return tupleConstructors[len];\n}\nfunction sequenceT(F) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var len = args.length;\n var f = getTupleConstructor(len);\n var fas = F.map(args[0], f);\n for (var i = 1; i < len; i++) {\n fas = F.ap(fas, args[i]);\n }\n return fas;\n };\n}\nexports.sequenceT = sequenceT;\nfunction getRecordConstructor(keys) {\n var len = keys.length;\n switch (len) {\n case 1:\n return function (a) {\n var _a;\n return _a = {}, _a[keys[0]] = a, _a;\n };\n case 2:\n return function (a) {\n return function (b) {\n var _a;\n return _a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a;\n };\n };\n case 3:\n return function (a) {\n return function (b) {\n return function (c) {\n var _a;\n return _a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a[keys[2]] = c, _a;\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 return _a = {}, _a[keys[0]] = a, _a[keys[1]] = b, _a[keys[2]] = c, _a[keys[3]] = d, _a;\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 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 default:\n return curried(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var r = {};\n for (var i = 0; i < len; i++) {\n r[keys[i]] = args[i];\n }\n return r;\n }, len - 1, []);\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 for (var i = 1; i < len; i++) {\n fr = F.ap(fr, r[keys[i]]);\n }\n return fr;\n };\n}\nexports.sequenceS = sequenceS;","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport Color from \"../constants/Color\";\n\ntype Props = {\n color: keyof typeof Color;\n lowOpacity?: boolean;\n};\n\nexport default function Line({ color, lowOpacity = false }: Props) {\n return ;\n}\n\nconst StyledHorizontalLine = styled(\"div\")<{\n $color: keyof typeof Color;\n $lowOpacity: boolean;\n}>`\n height: 1px;\n background-color: ${(p) => Color[p.$color]};\n ${(p) => p.$lowOpacity && `opacity: 0.1`};\n`;\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Dimen } from \"../constants\";\n\ntype Props = {\n /** A full grid width is 12. */\n size: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n children?: React.ReactNode;\n};\n\n/**\n * Columns for the grid system. Should be placed inside a .\n */\nexport default function Column({ children, size }: Props) {\n const widthInPercentage: string = `${(100 / 12) * size}%`;\n\n return {children};\n}\n\nconst StyledColumn = styled(\"div\")<{\n $width: string;\n}>`\n width: ${(p) => p.$width};\n box-sizing: border-box;\n padding: 0 ${Dimen.gutterWidth / 2}px;\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n width: 100%;\n &:not(:empty) {\n padding-bottom: ${Dimen.gutterWidth}px;\n }\n &:last-of-type {\n padding-bottom: 0;\n }\n }\n`;\n","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Dimen } from \"../constants\";\n\ntype Props = {\n size?: number;\n md?: number;\n sm?: number;\n xs?: number;\n};\n\nexport default function Gutter({ size = 1, md, sm, xs }: Props) {\n return ;\n}\n\nconst StyledGutter = styled(\"div\")<{\n $size: number;\n $md?: number;\n $sm?: number;\n $xs?: number;\n}>`\n width: ${(p) => p.$size * Dimen.gutterWidth}px;\n height: ${(p) => p.$size * Dimen.gutterWidth}px;\n\n ${(p) =>\n p.$md != null &&\n `\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n width: ${p.$md * Dimen.gutterWidth}px;\n height: ${p.$md * Dimen.gutterWidth}px;\n }\n `}\n\n ${(p) =>\n p.$sm != null &&\n `\n @media (max-width: ${Dimen.breakpointDownSm}px) {\n width: ${p.$sm * Dimen.gutterWidth}px;\n height: ${p.$sm * Dimen.gutterWidth}px;\n }\n `}\n\n ${(p) =>\n p.$xs != null &&\n `\n @media (max-width: ${Dimen.breakpointDownXs}px) {\n width: ${p.$xs * Dimen.gutterWidth}px;\n height: ${p.$xs * Dimen.gutterWidth}px;\n }\n `}\n`;\n","/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nvar ssrDocument = {\n body: {},\n addEventListener: function () {},\n removeEventListener: function () {},\n activeElement: {\n blur: function () {},\n nodeName: ''\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () {}\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () {},\n getElementsByTagName: function () {\n return [];\n }\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState: function () {},\n pushState: function () {},\n go: function () {},\n back: function () {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () {},\n removeEventListener: function () {},\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n }\n };\n },\n Image: function () {},\n Date: function () {},\n screen: {},\n setTimeout: function () {},\n clearTimeout: function () {},\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGxpbmUgeDE9IjAuNzA3MTA3IiB5MT0iMS4yOTI4OSIgeDI9IjEyLjcwNzEiIHkyPSIxMy4yOTI5IiBzdHJva2U9IiNDQ0NDQ0MiIHN0cm9rZS13aWR0aD0iMiIvPgo8bGluZSB5MT0iLTEiIHgyPSIxNi45NzA2IiB5Mj0iLTEiIHRyYW5zZm9ybT0ibWF0cml4KC0wLjcwNzEwNyAwLjcwNzEwNyAwLjcwNzEwNyAwLjcwNzEwNyAxMy41IDIpIiBzdHJva2U9IiNDQ0NDQ0MiIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyMCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMCAyVjBIMFYySDIwWk0yMCA2VjhIMFY2SDIwWk0yMCAxMlYxNEgwVjEySDIwWiIgZmlsbD0iIzExMUQyNiIvPgo8L3N2Zz4K\"","function stylis_min(W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n default:\n f += e.charAt(l);\n }\n g = 59;\n }\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n case 125:\n k--;\n break;\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n break;\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n }\n }\n l = u;\n }\n }\n break;\n case 91:\n g++;\n case 40:\n g++;\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {}\n }\n if (0 === k) break;\n l++;\n }\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n default:\n r = O;\n }\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n default:\n z++;\n y = e.charAt(l);\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n default:\n 32 !== g && (y = ' ');\n }\n break;\n case 0:\n y = '\\\\0';\n break;\n case 12:\n y = '\\\\f';\n break;\n case 11:\n y = '\\\\v';\n break;\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n case 8:\n 111 === K && (E = K);\n }\n break;\n case 58:\n 0 === n + b + m && (u = l);\n break;\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n case 91:\n 0 === n + b + v && m++;\n break;\n case 93:\n 0 === n + b + v && m--;\n break;\n case 41:\n 0 === n + b + m && v--;\n break;\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n default:\n q = 1;\n }\n v++;\n }\n break;\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n case 220:\n t = l, b = 42;\n }\n break;\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n 0 === b && (f += y);\n }\n K = x;\n x = g;\n l++;\n }\n t = p.length;\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n E = 0;\n }\n }\n return G + p + F;\n }\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n break;\n default:\n var v = b = 0;\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n }\n return c;\n }\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n return d + c;\n }\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n if (0 === w || 2 === w && !L(a, 1)) return a;\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n case 969:\n case 942:\n return '-webkit-' + a + a;\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n case 220:\n b = a.replace(G, 'lr');\n break;\n default:\n return a;\n }\n return '-webkit-' + a + '-ms-' + b + a;\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n return a + ';';\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n return a;\n }\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n default:\n x = w;\n }\n }\n if (x !== c) return x;\n }\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n return T;\n }\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\nexport default stylis_min;","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNyIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDcgMTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNi43ODAyNyA5Ljk2ODc1TDUuNzE5NjEgMTEuMDI5NEwwLjY4OTI4MyA1Ljk5OTA4TDUuNzE5NjEgMC45Njg3NUw2Ljc4MDI3IDIuMDI5NDFMMi44MTA2IDUuOTk5MDhMNi43ODAyNyA5Ljk2ODc1WiIgZmlsbD0iI0RCREJEQiIvPgo8L3N2Zz4K\"","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n var keys = getOwnPropertyNames(sourceComponent);\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n return targetComponent;\n}\nmodule.exports = hoistNonReactStatics;","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Dimen } from \"../constants\";\n\ntype Props = {\n children: React.ReactNode;\n reverseColumns?: boolean;\n breakpoint?: number;\n alignColumns?: \"flex-start\" | \"flex-end\" | \"center\" | \"stretch\";\n justifyColumns?: \"flex-start\" | \"flex-end\" | \"center\" | \"space-between\";\n};\n\n/**\n * A 12-col grid system, with gutter in between the columns. Once these screen\n * gets too small, this collapses into vertically stacking columns, each taking\n * up the full screen width.\n *\n * Should be placed directly inside .\n */\nexport default function Grid({\n children,\n reverseColumns = false,\n breakpoint = Dimen.breakpointDownMd,\n alignColumns = \"flex-start\",\n justifyColumns = \"flex-start\",\n}: Props) {\n return (\n \n {children}\n \n );\n}\n\nconst StyledGrid = styled(\"div\")<{\n $reverseColumns: boolean;\n $breakpoint: number;\n $alignColumns: string;\n $justifyColumns: string;\n}>`\n display: flex;\n flex-direction: ${(p) => (p.$reverseColumns ? \"row-reverse\" : \"row\")};\n flex-wrap: wrap;\n width: ${Dimen.gridWidth}px;\n\n align-items: ${(p) => p.$alignColumns};\n justify-content: ${(p) => p.$justifyColumns};\n width: calc(100% + ${Dimen.gutterWidth}px);\n margin: 0 -${Dimen.gutterWidth / 2}px;\n @media (max-width: ${(p) => p.$breakpoint}px) {\n flex-direction: row;\n }\n`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMSAyMkg2QzQuMzQzMTUgMjIgMyAyMC42NTY5IDMgMTlWNUMzIDMuMzQzMTUgNC4zNDMxNSAyIDYgMkgyMVYxOEMyMC40NDc3IDE4IDIwIDE4LjQ0NzcgMjAgMTlDMjAgMTkuNTUyMyAyMC40NDc3IDIwIDIxIDIwVjIyWk0xOCAxOUMxOCAxOC42NDk0IDE4LjA2MDIgMTguMzEyOCAxOC4xNzA3IDE4SDZDNS40NDc3MiAxOCA1IDE4LjQ0NzcgNSAxOUM1IDE5LjU1MjMgNS40NDc3MiAyMCA2IDIwSDE4LjE3MDdDMTguMDYwMiAxOS42ODcyIDE4IDE5LjM1MDYgMTggMTlaTTYgNEgxOVYxNkg2QzUuNjQ5MzYgMTYgNS4zMTI3OCAxNi4wNjAyIDUgMTYuMTcwN1Y1QzUgNC40NDc3MiA1LjQ0NzcyIDQgNiA0WiIgZmlsbD0iIzAwODVGRiIvPgo8L3N2Zz4K\"","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */,\n\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2MCIgaGVpZ2h0PSIyMTAiIHZpZXdCb3g9IjAgMCAyNTYwIDIxMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9Im1hc2swIiBtYXNrLXR5cGU9ImFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMjU2MCIgaGVpZ2h0PSIyMTEiPgo8cGF0aCBkPSJNMjU2MCAyMTBMMCAyMTBMLTEuODM1ODhlLTA1IDAuMDAwMjIzODAyTDI1NjAgMEwyNTYwIDIxMFoiIGZpbGw9IiNDNEM0QzQiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swKSI+CjxjaXJjbGUgY3g9IjEyODAiIGN5PSItMzc4OSIgcj0iMzk5OSIgdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDEyODAgLTM3ODkpIiBmaWxsPSIjMTExRDI2Ii8+CjwvZz4KPC9zdmc+Cg==\"","module.exports = \"data:image/png;base64,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\"","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.bind = exports.chainFirst = void 0;\nfunction 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}\nexports.chainFirst = chainFirst;\nfunction 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 return Object.assign({}, a, (_a = {}, _a[name] = b, _a));\n });\n });\n };\n };\n}\nexports.bind = bind;","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2MCIgaGVpZ2h0PSI0MzUiIHZpZXdCb3g9IjAgMCAyNTYwIDQzNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9Im1hc2swIiBtYXNrLXR5cGU9ImFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMjU2MCIgaGVpZ2h0PSI0MzYiPgo8cmVjdCB4PSIyNTYwIiB5PSI0MzUiIHdpZHRoPSIyNTYwIiBoZWlnaHQ9IjQzNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDI1NjAgNDM1KSIgZmlsbD0iI0M0QzRDNCIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPGVsbGlwc2UgY3g9IjEyODAiIGN5PSItMzU2OC41IiByeD0iMzk5OSIgcnk9IjM5OTkuNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDEyODAgLTM1NjguNSkiIGZpbGw9IiNFNkYzRkYiLz4KPGVsbGlwc2UgY3g9IjEyODAiIGN5PSItMzYyNS41IiByeD0iMzk5OSIgcnk9IjM5OTkuNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDEyODAgLTM2MjUuNSkiIGZpbGw9IiM4QUM3RkYiLz4KPGNpcmNsZSBjeD0iMTI4MCIgY3k9Ii0zNjgyIiByPSIzOTk5IiB0cmFuc2Zvcm09InJvdGF0ZSgxODAgMTI4MCAtMzY4MikiIGZpbGw9IiMwMDg0RkYiLz4KPC9nPgo8L3N2Zz4K\"","(function (global, factory) {\n if (typeof define === 'function' && define.amd) {\n define('Imgix', ['exports', 'md5', 'js-base64'], factory);\n } else if (typeof exports !== 'undefined') {\n module.exports = factory(exports, require('md5'), require('js-base64').Base64);\n } else {\n var mod = {\n exports: {}\n };\n global.ImgixClient = factory(mod.exports, global.md5, global.Base64);\n }\n})(this, function (exports, _md5, _jsBase64) {\n var md5 = _md5;\n var Base64 = _jsBase64.Base64 || _jsBase64;\n\n // package version used in the ix-lib parameter\n var VERSION = '2.3.2';\n // regex pattern used to determine if a domain is valid\n var 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;\n // minimum generated srcset width\n var MIN_SRCSET_WIDTH = 100;\n // maximum generated srcset width\n var MAX_SRCSET_WIDTH = 8192;\n // default tolerable percent difference between srcset pair widths\n var DEFAULT_SRCSET_WIDTH_TOLERANCE = .08;\n\n // default quality parameter values mapped by each dpr srcset entry\n var DPR_QUALITIES = {\n 1: 75,\n 2: 50,\n 3: 35,\n 4: 23,\n 5: 20\n };\n\n // default ImgixClient settings passed in during instantiation\n var DEFAULTS = {\n domain: null,\n useHTTPS: true,\n includeLibraryParam: true\n };\n var ImgixClient = function () {\n function ImgixClient(opts) {\n var key, val;\n this.settings = {};\n for (key in DEFAULTS) {\n val = DEFAULTS[key];\n this.settings[key] = val;\n }\n for (key in opts) {\n val = opts[key];\n this.settings[key] = val;\n }\n if (typeof this.settings.domain != \"string\") {\n throw new Error('ImgixClient must be passed a valid string domain');\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 if (this.settings.includeLibraryParam) {\n this.settings.libraryParam = \"js-\" + VERSION;\n }\n this.settings.urlPrefix = this.settings.useHTTPS ? 'https://' : 'http://';\n }\n ;\n ImgixClient.prototype.buildURL = function (path, params) {\n path = this._sanitizePath(path);\n if (params == null) {\n params = {};\n }\n var queryParams = this._buildParams(params);\n if (!!this.settings.secureURLToken) {\n queryParams = this._signParams(path, queryParams);\n }\n return this.settings.urlPrefix + this.settings.domain + path + queryParams;\n };\n ImgixClient.prototype._sanitizePath = function (path) {\n // Strip leading slash first (we'll re-add after encoding)\n path = path.replace(/^\\//, '');\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 return '/' + path;\n };\n ImgixClient.prototype._buildParams = function (params) {\n var queryParams = [];\n if (this.settings.libraryParam) {\n queryParams.push('ixlib=' + this.settings.libraryParam);\n }\n var key, val, encodedKey, encodedVal;\n for (key in params) {\n val = params[key];\n encodedKey = encodeURIComponent(key);\n encodedVal;\n if (key.substr(-2) === '64') {\n encodedVal = Base64.encodeURI(val);\n } else {\n encodedVal = encodeURIComponent(val);\n }\n queryParams.push(encodedKey + \"=\" + encodedVal);\n }\n if (queryParams[0]) {\n queryParams[0] = \"?\" + queryParams[0];\n }\n return queryParams.join('&');\n };\n ImgixClient.prototype._signParams = function (path, queryParams) {\n var signatureBase = this.settings.secureURLToken + path + queryParams;\n var signature = md5(signatureBase);\n if (queryParams.length > 0) {\n return queryParams = queryParams + \"&s=\" + signature;\n } else {\n return queryParams = \"?s=\" + signature;\n }\n };\n ImgixClient.prototype.buildSrcSet = function (path, params, options) {\n var params = params || {};\n var width = params.w;\n var height = params.h;\n var aspectRatio = params.ar;\n var options = options || {};\n if (width || height && aspectRatio) {\n return this._buildDPRSrcSet(path, params, options);\n } else {\n return this._buildSrcSetPairs(path, params, options);\n }\n };\n ImgixClient.prototype._buildSrcSetPairs = function (path, params, options) {\n var srcset = [];\n var currentWidth;\n var targetWidths;\n var customWidths = options.widths;\n var srcsetOptions = validateAndDestructureOptions(options);\n var widthTolerance = srcsetOptions[0],\n minWidth = srcsetOptions[1],\n maxWidth = srcsetOptions[2];\n if (customWidths) {\n validateWidths(customWidths);\n targetWidths = customWidths;\n } else {\n validateRange(minWidth, maxWidth);\n validateWidthTolerance(widthTolerance);\n targetWidths = this._generateTargetWidths(widthTolerance, minWidth, maxWidth);\n }\n var key;\n var queryParams = {};\n for (key in params) {\n queryParams[key] = params[key];\n }\n for (var i = 0; i < targetWidths.length; i++) {\n currentWidth = targetWidths[i];\n queryParams.w = currentWidth;\n srcset.push(this.buildURL(path, queryParams) + ' ' + currentWidth + 'w');\n }\n return srcset.join(',\\n');\n };\n ImgixClient.prototype._buildDPRSrcSet = function (path, params, options) {\n var srcset = [];\n var targetRatios = [1, 2, 3, 4, 5];\n var disableVariableQuality = options.disableVariableQuality || false;\n var key;\n var queryParams = {};\n for (key in params) {\n queryParams[key] = params[key];\n }\n var quality = queryParams.q;\n if (!disableVariableQuality) {\n validateVariableQuality(disableVariableQuality);\n }\n for (var i = 0; i < targetRatios.length; i++) {\n var currentRatio = targetRatios[i];\n queryParams.dpr = currentRatio;\n if (!disableVariableQuality) {\n queryParams.q = quality || DPR_QUALITIES[currentRatio];\n }\n srcset.push(this.buildURL(path, queryParams) + ' ' + currentRatio + 'x');\n }\n return srcset.join(',\\n');\n };\n\n // a cache to store memoized srcset width-pairs\n ImgixClient.prototype.targetWidthsCache = {};\n\n // returns an array of width values used during scrset generation\n ImgixClient.prototype._generateTargetWidths = function (widthTolerance, minWidth, maxWidth) {\n var resolutions = [];\n var INCREMENT_PERCENTAGE = widthTolerance;\n var minWidth = Math.floor(minWidth);\n var maxWidth = Math.floor(maxWidth);\n var cacheKey = INCREMENT_PERCENTAGE + '/' + minWidth + '/' + maxWidth;\n if (cacheKey in this.targetWidthsCache) {\n return this.targetWidthsCache[cacheKey];\n }\n var ensureEven = function (n) {\n return 2 * Math.round(n / 2);\n };\n var prev = minWidth;\n while (prev < maxWidth) {\n resolutions.push(ensureEven(prev));\n prev *= 1 + INCREMENT_PERCENTAGE * 2;\n }\n resolutions.push(maxWidth);\n this.targetWidthsCache[cacheKey] = resolutions;\n return resolutions;\n };\n function validateAndDestructureOptions(options) {\n if (options.widthTolerance !== undefined) {\n validateWidthTolerance(options.widthTolerance);\n var widthTolerance = options.widthTolerance;\n } else {\n var widthTolerance = DEFAULT_SRCSET_WIDTH_TOLERANCE;\n }\n var minWidth = options.minWidth === undefined ? MIN_SRCSET_WIDTH : options.minWidth;\n var maxWidth = options.maxWidth === undefined ? MAX_SRCSET_WIDTH : options.maxWidth;\n\n // Validate the range unless we're using defaults for both\n if (minWidth != MIN_SRCSET_WIDTH || maxWidth != MAX_SRCSET_WIDTH) {\n validateRange(minWidth, maxWidth);\n }\n return [widthTolerance, minWidth, maxWidth];\n }\n ;\n function 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');\n }\n }\n ;\n function validateWidthTolerance(widthTolerance) {\n if (typeof widthTolerance != 'number' || widthTolerance <= 0) {\n throw new Error('The srcset widthTolerance argument can only be passed a positive scalar number');\n }\n }\n ;\n function 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 if (!allPositiveIntegers) {\n throw new Error('A custom widths argument can only contain positive integer values');\n }\n }\n }\n ;\n function validateVariableQuality(disableVariableQuality) {\n if (typeof disableVariableQuality != 'boolean') {\n throw new Error('The disableVariableQuality argument can only be passed a Boolean value');\n }\n }\n ;\n ImgixClient.VERSION = VERSION;\n return ImgixClient;\n }();\n return ImgixClient;\n});","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMiAyM0M1LjkyNDg3IDIzIDEgMTguMDc1MSAxIDEyQzEgNS45MjQ4NyA1LjkyNDg3IDEgMTIgMUMxOC4wNzUxIDEgMjMgNS45MjQ4NyAyMyAxMkMyMyAxOC4wNzUxIDE4LjA3NTEgMjMgMTIgMjNaTTEyIDIxQzE2Ljk3MDYgMjEgMjEgMTYuOTcwNiAyMSAxMkMyMSA3LjAyOTQ0IDE2Ljk3MDYgMyAxMiAzQzcuMDI5NDQgMyAzIDcuMDI5NDQgMyAxMkMzIDE2Ljk3MDYgNy4wMjk0NCAyMSAxMiAyMVpNOC43MDcxMSAxNi43MDcxTDEyIDEzLjQxNDJMMTUuMjkyOSAxNi43MDcxTDE2LjcwNzEgMTUuMjkyOUwxMy40MTQyIDEyTDE2LjcwNzEgOC43MDcxMUwxNS4yOTI5IDcuMjkyODlMMTIgMTAuNTg1OEw4LjcwNzExIDcuMjkyODlMNy4yOTI4OSA4LjcwNzExTDEwLjU4NTggMTJMNy4yOTI4OSAxNS4yOTI5TDguNzA3MTEgMTYuNzA3MVoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=\"","import { format } from \"date-fns\";\nimport { Link } from \"gatsby\";\nimport Img from \"gatsby-image\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { Color, Dimen } from \"../constants\";\nimport { fluidImage } from \"../prismic-tools\";\nimport { PrismicImage } from \"../types\";\nimport Gutter from \"./Gutter\";\nimport Text from \"./Text\";\n\ntype Props = {\n to?: string;\n href?: string;\n image?: PrismicImage;\n logoUrl?: string;\n date: Date | undefined;\n title: string | undefined;\n description: string | undefined;\n readTime: number | undefined;\n};\n\nexport default function BlogCard({\n to,\n href,\n image,\n logoUrl,\n date,\n title,\n description,\n readTime,\n}: Props) {\n return (\n \n \n {image && {image.alt}\n {logoUrl && (\n \n \"\"\n \n )}\n \n \n \n {date && format(date, \"MMMM y\")}\n \n \n \n {title}\n \n \n \n {description}\n \n \n \n \n {readTime != null && `${readTime} min read`}\n \n \n Read more\n \n \n \n \n \n \n );\n}\n\nconst StyledCard = styled(({ to, ...rest }) =>\n to ? : \n)`\n display: block;\n overflow: hidden;\n height: 470px;\n background-color: ${Color.light1};\n border: 2px solid #f1f1f1;\n box-shadow: 0px 8px 40px rgba(19, 19, 31, 0.05);\n border-radius: 24px;\n\n &:hover {\n svg {\n transform: translateX(7px);\n }\n }\n`;\n\nconst StyledAreaImage = styled.div`\n height: 194px;\n background-color: ${Color.newDark2};\n\n > div {\n height: 100%;\n }\n`;\n\nconst StyledLogoWrap = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n img {\n width: 70%;\n height: 70%;\n object-fit: contain;\n }\n`;\n\nconst StyledAreaMain = styled.div`\n box-sizing: border-box;\n height: 200px;\n overflow: hidden;\n padding: ${Dimen.gutterWidth}px ${Dimen.gutterWidth}px;\n position: relative;\n\n &::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 24px;\n background: linear-gradient(transparent, ${Color.light1} 70%);\n }\n`;\n\nconst StyledAreaBelow = styled.div`\n height: 76px;\n padding: 0 ${Dimen.gutterWidth}px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 11px;\n\n svg {\n fill: ${Color.blue1};\n margin-left: 6px;\n width: 13px;\n height: 12px;\n transition: transform 150ms;\n }\n`;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport ORANGE_TICK from \"../../img/components/bullet_tick/circle_with_tick.svg\";\nimport Gutter from \"./Gutter\";\n\ntype Props = {\n children: React.ReactNode;\n};\n\nexport default function BulletTick({ children }: Props) {\n return (\n \n \n \n {children}\n \n );\n}\n\nconst StyledBullet = styled.div`\n display: flex;\n align-items: flex-start;\n margin-bottom: 20px;\n position: relative;\n padding-left: 22px;\n\n img {\n margin-top: 4px;\n }\n`;\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport BOTTOM_NEWDARK2 from \"../../img/ui/curved_dividers/bottom_newdark2.svg\";\nimport TOP_NEWDARK2 from \"../../img/ui/curved_dividers/top_newdark2.svg\";\nimport { Color, Dimen } from \"../constants\";\n\ntype Props = {\n position: \"top\" | \"bottom\";\n frontColor: \"newDark2\";\n backColor: \"transparent\" | keyof typeof Color;\n};\n\n/**\n * Break up different Sectionss with curved dividers. Should be placed as a\n * sibling to the Sections, directly inside \n */\nexport default function CurvedSectionDivider({\n position,\n frontColor,\n backColor,\n}: Props) {\n let img;\n // TODO: SVG sprite for solid colours?\n if (position === \"top\") {\n if (frontColor === \"newDark2\") img = TOP_NEWDARK2;\n } else {\n if (frontColor === \"newDark2\") img = BOTTOM_NEWDARK2;\n }\n\n return (\n \n );\n}\n\nconst StyledContainer = styled(\"div\")<{\n $position: \"top\" | \"bottom\";\n $curveImageUrl: string | undefined;\n $backColor: string;\n}>`\n background-image: url(${(p) => p.$curveImageUrl});\n background-position: ${(p) => p.$position} center;\n background-color: ${(p) => p.$backColor};\n\n /* Avoid white line appearing at some zoom levels */\n position: relative;\n top: ${(p) => (p.$position === \"top\" ? \"1px\" : \"-1px\")};\n\n height: 210px;\n\n @media (max-width: 1940px) {\n height: 125px;\n }\n\n @media (max-width: 1680px) {\n height: 88px;\n }\n\n @media (max-width: ${Dimen.breakpointDownXl}px) {\n height: 68px;\n }\n\n @media (max-width: ${Dimen.breakpointDownLg}px) {\n height: ${50 + Dimen.gutterWidth / 2}px;\n }\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n height: ${36 + Dimen.gutterWidth}px;\n }\n\n @media (max-width: ${Dimen.breakpointDownSm}px) {\n height: ${24 + Dimen.gutterWidth}px;\n }\n`;\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Color, Dimen } from \"../constants\";\n\ntype Props = {\n position: \"top\" | \"bottom\";\n glowColor: \"orange\" | \"blue\" | \"light4\";\n backColor: keyof typeof Color;\n};\n\nexport default function CurvedSectionDivider({\n position,\n glowColor,\n backColor,\n}: Props) {\n let img, imgMobile;\n if (position === \"top\") {\n if (glowColor === \"orange\") {\n img = require(\"../../img/ui/curved_dividers/top_glow_orange.svg\");\n imgMobile = require(\"../../img/ui/curved_dividers/top_glow_orange_mobile.svg\");\n }\n }\n\n if (position === \"bottom\") {\n if (glowColor === \"blue\") {\n img = require(\"../../img/ui/curved_dividers/bottom_glow_blue.svg\");\n } else if (glowColor === \"light4\") {\n img = require(\"../../img/ui/curved_dividers/bottom_glow_light4.svg\");\n }\n }\n\n return (\n \n );\n}\n\nconst StyledContainer = styled(\"div\")<{\n $position: \"top\" | \"bottom\";\n $curveImageUrl: string | undefined;\n $curveImageMobileUrl: string | undefined;\n $backColor: string;\n}>`\n background-image: url(${(p) => p.$curveImageUrl});\n background-position: ${(p) => p.$position} center;\n\n height: 435px;\n\n @media (max-width: 1940px) {\n height: 300px;\n }\n\n @media (max-width: 1680px) {\n height: 270px;\n }\n\n @media (max-width: ${Dimen.breakpointDownXl}px) {\n height: 238px;\n }\n\n @media (max-width: ${Dimen.breakpointDownLg}px) {\n height: 225px;\n }\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n height: 210px;\n }\n\n ${(p) =>\n p.$curveImageMobileUrl &&\n `\n @media (max-width: ${Dimen.breakpointDownSm}px) {\n background-image: url(${p.$curveImageMobileUrl});\n\n height: 120px;\n }\n `};\n`;\n","import * as React from \"react\";\nimport { RichText } from \"prismic-reactjs\";\nimport styled from \"styled-components\";\nimport { Color, Dimen } from \"../constants\";\n\ntype Props = {\n children: React.ReactNode;\n /**\n * Is this content on a dark background? (Determines what colour links should be)\n */\n onDark?: boolean;\n baseTypeface?: \"body\" | \"h4\" | \"h5\";\n textAlign?: \"center\";\n};\n\nexport default function FormattedText({\n children,\n onDark,\n baseTypeface = \"body\",\n textAlign,\n}: Props) {\n return (\n \n {children}\n \n );\n}\n\nconst StyledContent = styled(\"div\")<{\n $onDark?: boolean;\n $baseTypeface: string;\n $textAlign?: string;\n}>`\n font-size: 18px;\n line-height: 155.5%;\n\n ${(p) => p.$textAlign && `text-align: ${p.$textAlign}`};\n\n ${(p) =>\n p.$baseTypeface === \"h4\" &&\n `\n font-size: 28px;\n line-height: 135%;\n `}\n\n ${(p) =>\n p.$baseTypeface === \"h5\" &&\n `\n font-size: 22.5px;\n line-height: 142%;\n \n @media (max-width: ${Dimen.breakpointDownXs}px) {\n font-size: 18px;\n line-height: 155%;\n }\n `}\n\n a {\n color: ${Color.blue1};\n &:hover {\n text-decoration: underline;\n }\n }\n\n h2 {\n font-size: 43.95px;\n line-height: 118.32%;\n font-weight: normal;\n margin: 50px 0 25px;\n }\n\n h3 {\n font-size: 35.16px;\n line-height: 125%;\n font-weight: normal;\n margin: 35px 0 25px;\n }\n\n h4 {\n font-size: 28.13px;\n line-height: 142%;\n font-weight: normal;\n margin: 35px 0 25px;\n }\n\n em {\n font-style: normal;\n color: ${Color.orange1};\n }\n\n /* Remove all whitespace above/below this overall component */\n p:first-child,\n h2:first-child {\n margin-top: 0;\n }\n p:last-child {\n margin-bottom: 0;\n }\n`;\n","import * as React from \"react\";\nimport Img from \"gatsby-image\";\nimport { RichText } from \"prismic-reactjs\";\n\nimport Button from \"./Button\";\nimport Column from \"./Column\";\nimport FormattedText from \"./FormattedText\";\nimport Grid from \"./Grid\";\nimport Gutter from \"./Gutter\";\nimport HorizontalAlign from \"./HorizontalAlign\";\nimport MaxWidth from \"./MaxWidth\";\nimport Text from \"./Text\";\nimport { PrismicImage, PrismicRichText } from \"../types\";\nimport { fluidImage } from \"../prismic-tools\";\nimport { Color } from \"../constants\";\n\ntype Props = {\n reverseColumns?: boolean;\n preTitle: string | undefined;\n preTitleColor?: keyof typeof Color | undefined;\n title: string | undefined;\n content: PrismicRichText;\n buttonLabel?: string | undefined;\n linkTo?: string | undefined;\n image: PrismicImage;\n};\n\nexport default function Gain({\n reverseColumns,\n preTitle,\n preTitleColor,\n title,\n content,\n buttonLabel,\n linkTo,\n image,\n}: Props) {\n return (\n \n \n \n {image?.alt\n \n \n \n \n \n {preTitle}\n \n \n \n {title}\n \n \n \n \n \n {linkTo && (\n <>\n \n \n \n \n \n )}\n \n \n );\n}\n","import React from \"react\";\nimport { useForm } from \"react-typed-form\";\nimport Column from \"./Column\";\nimport Grid from \"./Grid\";\nimport Gutter from \"./Gutter\";\nimport HorizontalAlign from \"./HorizontalAlign\";\nimport { FieldSelect, FieldText, SubmitButton } from \"../form\";\nimport Text from \"./Text\";\nimport styled from \"styled-components\";\n\ntype Props = {\n pardotForm: string;\n formTitle: string;\n};\n\nexport default function GatedContentForm({\n pardotForm,\n formTitle,\n}: Props) {\n return (\n
\n \n {formTitle}\n \n \n \n \n \n \n );\n}\n\nconst StyledTopRow = styled.div`\n display: flex;\n align-items: center;\n\n > span {\n flex: 1;\n }\n`;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { Color, Dimen } from \"../constants\";\n\ntype Props = {\n children: React.ReactNode;\n visible: boolean;\n onDismiss: () => void;\n};\n\nexport default function Modal({ children, visible, onDismiss }: Props) {\n return (\n \n ev.stopPropagation()}>\n {children}\n \n\n \n \n \n \n );\n}\n\nconst StyledContainer = styled.div<{\n $visible: boolean;\n}>`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(26, 45, 58, 0.9);\n z-index: 300;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: ${(p) => (p.$visible ? 1 : 0)};\n pointer-events: ${(p) => (p.$visible ? \"auto\" : \"none\")};\n transition: opacity 250ms;\n`;\n\nconst StyledModal = styled.div`\n background-color: ${Color.light1};\n border-radius: 8px;\n box-shadow: 0px 12px 30px rgba(82, 87, 102, 0.15);\n padding: 40px;\n\n width: 790px;\n max-width: 90vw;\n max-height: 70vh;\n overflow-y: auto;\n\n @media (max-width: ${Dimen.breakpointDownSm}px) {\n padding: 20px;\n }\n`;\n\nconst StyledClose = styled.a`\n position: absolute;\n top: 15px;\n right: 15px;\n cursor: pointer;\n width: 42px;\n height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n transition: background-color 250ms;\n\n &:hover {\n background-color: rgba(0, 0, 0, 0.1);\n }\n`;\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Color, Dimen } from \"../constants\";\n\ntype Logo = {\n url: string;\n alt: string | undefined;\n};\n\ntype Props = {\n logos: Logo[];\n blendMode?: \"luminosity\";\n};\n\nexport default function WrappingLogos({ logos, blendMode }: Props) {\n return (\n \n {logos.map((logo, i) => (\n \n
\n \n ))}\n \n );\n}\n\nconst StyledContainer = styled(\"div\")`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n`;\n\nconst StyledLogo = styled(\"div\")<{ $url: string; $blendMode?: string }>`\n box-sizing: border-box;\n width: 16.66%;\n height: 100px;\n padding: 25px;\n\n div {\n background-image: url(${(p) => p.$url});\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center center;\n object-fit: contain;\n width: 100%;\n height: 100%;\n max-width: 150px;\n\n ${(p) =>\n p.$blendMode &&\n `\n background-color: ${Color.newDark2};\n background-blend-mode: ${p.$blendMode};\n mix-blend-mode: ${p.$blendMode};\n `};\n }\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n width: 33%;\n }\n`;\n","import { graphql, useStaticQuery } from \"gatsby\";\nimport { RichText } from \"prismic-reactjs\";\nimport * as React from \"react\";\nimport { FormattedText } from \".\";\nimport { PrismicRichText } from \"../types\";\nimport Button from \"./Button\";\n\nimport Gutter from \"./Gutter\";\nimport HorizontalAlign from \"./HorizontalAlign\";\nimport MaxWidth from \"./MaxWidth\";\nimport PageMaxWidth from \"./PageMaxWidth\";\nimport Section from \"./Section\";\nimport Text from \"./Text\";\nimport WrappingLogos from \"./WrappingLogos\";\n\ntype Props = {\n background?: \"dark\" | \"light\";\n title?: string | undefined;\n description?: PrismicRichText;\n buttonLabel?: string | null | undefined;\n gutterSize?: number;\n maxWidth?: number;\n};\n\nexport default function SectionCustomerLogos({\n background = \"light\",\n title,\n description,\n buttonLabel,\n gutterSize = 6,\n maxWidth = 720,\n}: Props) {\n const data = useStaticQuery(graphql`\n query SectionCustomerLogos {\n prismicSectionCustomerLogosComponent {\n data {\n title\n logos {\n logo_image {\n alt\n dimensions {\n width\n height\n }\n url\n }\n logo_dark\n }\n button_label\n }\n }\n }\n `).prismicSectionCustomerLogosComponent?.data;\n if (!data) return null;\n\n const isDarkBackground = background === \"dark\";\n\n const logos = data.logos\n ?.filter(\n (logo) => logo?.logo_image?.url && logo.logo_dark == !isDarkBackground\n )\n .map((logo) => logo?.logo_image);\n\n return (\n
\n \n \n \n \n {title || data.title}\n \n {description && (\n <>\n \n \n \n \n \n )}\n \n \n \n {buttonLabel !== null && (\n <>\n \n \n \n \n \n )}\n \n \n
\n );\n}\n","import { Link, graphql, useStaticQuery } from \"gatsby\";\nimport Img from \"gatsby-image\";\nimport { RichText } from \"prismic-reactjs\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport {\n Button,\n Column,\n FormattedText,\n Grid,\n HorizontalAlign,\n MaxWidth,\n} from \".\";\nimport { Color, Dimen } from \"../constants\";\nimport { fixedImage } from \"../prismic-tools\";\nimport Gutter from \"./Gutter\";\nimport PageMaxWidth from \"./PageMaxWidth\";\nimport Section from \"./Section\";\nimport Text from \"./Text\";\n\ntype Props = {\n background?: \"dark\" | \"light\";\n};\n\nexport default function SectionIntegrations({ background = \"light\" }: Props) {\n const data = useStaticQuery(graphql`\n query SectionIntegrations {\n prismicSectionIntegrationsComponent {\n data {\n title\n\n integrations {\n integration_logo {\n alt\n dimensions {\n width\n height\n }\n url\n }\n integration_description\n integration_link\n }\n\n below_title\n below_description {\n raw\n }\n below_button_label\n }\n }\n }\n `).prismicSectionIntegrationsComponent?.data;\n if (!data) return null;\n\n const isDarkBackground = background === \"dark\";\n\n return (\n
\n \n \n \n {data.title}\n \n \n \n {data.integrations?.map(\n (integration, i) =>\n integration && (\n \n \n \n \n
\n {integration.integration_logo && (\n /* */\n \n )}\n
\n \n \n {integration.integration_description}\n \n\n {integration.integration_link && (\n <>\n \n
\n\n \n Learn more\n \n \n \n \n \n )}\n \n \n \n )\n )}\n \n \n\n \n \n {data.below_title}\n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n}\n\nconst StyledCardWrap = styled.div`\n position: relative;\n`;\n\nconst StyledCardShadow = styled.div`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 12px;\n right: 12px;\n border-radius: 8px;\n box-shadow: 0px 8px 30px rgba(82, 87, 102, 0.15);\n z-index: 1;\n`;\n\nconst StyledCard = styled(({ to, ...rest }) =>\n to ? :
\n)`\n display: block;\n height: 246px;\n background-color: ${Color.light1};\n border-radius: 8px;\n padding: ${Dimen.gutterWidth}px;\n margin-bottom: ${Dimen.gutterWidth}px;\n display: flex;\n flex-direction: column;\n z-index: 2;\n position: relative;\n\n .logo {\n img {\n height: 40px;\n }\n }\n\n svg {\n fill: ${Color.blue1};\n margin-left: 6px;\n width: 13px;\n height: 12px;\n transition: transform 150ms;\n }\n\n &:hover {\n svg {\n transform: translateX(7px);\n }\n }\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n height: auto;\n }\n`;\n","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction extend(target, src) {\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n }).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n var classes = classNames.split(' ').map(function (c) {\n return c.trim();\n }).filter(function (c) {\n return !!c;\n });\n var unique = [];\n classes.forEach(function (c) {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nvar paramsList = ['init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_freeModeMomentum', '_freeModeMomentumRatio', '_freeModeMomentumBounce', '_freeModeMomentumBounceRatio', '_freeModeMomentumVelocityRatio', '_freeModeSticky', '_freeModeMinimumVelocity', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', '_slidesPerColumn', '_slidesPerColumnFill', '_slidesPerGroup', '_slidesPerGroupSkip', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_watchSlidesVisibility', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', 'autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import React from 'react'; // eslint-disable-next-line\n\nimport Swiper from '../../core';\nfunction calcLoopedSlides(slides, swiperParams) {\n var slidesPerViewParams = swiperParams.slidesPerView;\n if (swiperParams.breakpoints) {\n var breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n var breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n var loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n return loopedSlides;\n}\nfunction renderLoop(swiper, slides, swiperParams) {\n var modifiedSlides = slides.map(function (child, index) {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiper,\n 'data-swiper-slide-index': index\n });\n });\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/React.cloneElement(child, {\n key: child.key + \"-duplicate-\" + index + \"-\" + position,\n className: (child.props.className || '') + \" \" + swiperParams.slideDuplicateClass\n });\n }\n if (swiperParams.loopFillGroupWithBlank) {\n var blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: swiperParams.slideClass + \" \" + swiperParams.slideBlankClass\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n var loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n var prependSlides = [];\n var appendSlides = [];\n modifiedSlides.forEach(function (child, index) {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n return [].concat(prependSlides, modifiedSlides, appendSlides);\n}\nexport { calcLoopedSlides, renderLoop };","import React from 'react';\nfunction processChildren(c) {\n var slides = [];\n React.Children.toArray(c).forEach(function (child) {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(function (slide) {\n return slides.push(slide);\n });\n }\n });\n return slides;\n}\nfunction getChildren(c) {\n var slides = [];\n var slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(function (child) {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n var foundSlides = processChildren(child.props.children);\n if (foundSlides.length > 0) {\n foundSlides.forEach(function (slide) {\n return slides.push(slide);\n });\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides: slides,\n slots: slots\n };\n}\nexport { getChildren };","import { isObject, extend } from './utils';\nfunction updateSwiper(_ref) {\n var swiper = _ref.swiper,\n slides = _ref.slides,\n passedParams = _ref.passedParams,\n changedParams = _ref.changedParams,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n scrollbarEl = _ref.scrollbarEl,\n paginationEl = _ref.paginationEl;\n var updateParams = changedParams.filter(function (key) {\n return key !== 'children' && key !== 'direction';\n });\n var currentParams = swiper.params,\n pagination = swiper.pagination,\n navigation = swiper.navigation,\n scrollbar = swiper.scrollbar,\n virtual = swiper.virtual,\n thumbs = swiper.thumbs;\n var needThumbsInit;\n var needControllerInit;\n var needPaginationInit;\n var needScrollbarInit;\n var needNavigationInit;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n var destroyModule = function destroyModule(mod) {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n updateParams.forEach(function (key) {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n var newValue = passedParams[key];\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n if (needThumbsInit) {\n var initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n swiper.update();\n}\nexport { updateSwiper };","import { useEffect, useLayoutEffect } from 'react';\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\nexport { useIsomorphicLayoutEffect };","var _excluded = [\"className\", \"tag\", \"wrapperTag\", \"children\", \"onSwiper\"];\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport { getParams } from './get-params';\nimport { initSwiper, mountSwiper } from './init-swiper';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from './utils';\nimport { renderLoop, calcLoopedSlides } from './loop';\nimport { getChangedParams } from './get-changed-params';\nimport { getChildren } from './get-children';\nimport { updateSwiper } from './update-swiper';\nimport { renderVirtual, updateOnVirtualData } from './virtual';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n className = _ref.className,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n _ref$wrapperTag = _ref.wrapperTag,\n WrapperTag = _ref$wrapperTag === void 0 ? 'div' : _ref$wrapperTag,\n children = _ref.children,\n onSwiper = _ref.onSwiper,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var eventsAssigned = false;\n var _useState = useState('swiper-container'),\n containerClasses = _useState[0],\n setContainerClasses = _useState[1];\n var _useState2 = useState(null),\n virtualData = _useState2[0],\n setVirtualData = _useState2[1];\n var _useState3 = useState(false),\n breakpointChanged = _useState3[0],\n setBreakpointChanged = _useState3[1];\n var initializedRef = useRef(false);\n var swiperElRef = useRef(null);\n var swiperRef = useRef(null);\n var oldPassedParamsRef = useRef(null);\n var oldSlides = useRef(null);\n var nextElRef = useRef(null);\n var prevElRef = useRef(null);\n var paginationElRef = useRef(null);\n var scrollbarElRef = useRef(null);\n var _getParams = getParams(rest),\n swiperParams = _getParams.params,\n passedParams = _getParams.passedParams,\n restProps = _getParams.rest,\n events = _getParams.events;\n var _getChildren = getChildren(children),\n slides = _getChildren.slides,\n slots = _getChildren.slots;\n var onBeforeBreakpoint = function onBeforeBreakpoint() {\n setBreakpointChanged(!breakpointChanged);\n };\n Object.assign(swiperParams.on, {\n _containerClasses: function _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n if (!swiperElRef.current) {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = initSwiper(swiperParams);\n swiperRef.current.loopCreate = function () {};\n swiperRef.current.loopDestroy = function () {};\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n var extendWith = {\n cache: false,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n } // Listen for breakpoints change\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n var attachEvents = function attachEvents() {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(function (eventName) {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n var detachEvents = function detachEvents() {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(function (eventName) {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n useEffect(function () {\n return function () {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(function () {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n useIsomorphicLayoutEffect(function () {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n if (!swiperElRef.current) return;\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return function () {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(function () {\n attachEvents();\n var changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides: slides,\n passedParams: passedParams,\n changedParams: changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n return function () {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(function () {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(function (child) {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(\"\" + containerClasses + (className ? \" \" + className : ''))\n }, restProps), slots['container-start'], needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), slots['container-end']);\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { isObject, extend } from './utils';\nimport { paramsList } from './params-list';\nfunction getParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n var params = {\n on: {}\n };\n var events = {};\n var passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n var rest = {};\n var allowedParams = paramsList.map(function (key) {\n return key.replace(/_/, '');\n });\n Object.keys(obj).forEach(function (key) {\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n events[\"\" + key[2].toLowerCase() + key.substr(3)] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(function (key) {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params: params,\n passedParams: passedParams,\n rest: rest,\n events: events\n };\n}\nexport { getParams };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { needsNavigation, needsPagination, needsScrollbar } from './utils';\nfunction initSwiper(swiperParams) {\n return new Swiper(swiperParams);\n}\nfunction mountSwiper(_ref, swiperParams) {\n var el = _ref.el,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n paginationEl = _ref.paginationEl,\n scrollbarEl = _ref.scrollbarEl,\n swiper = _ref.swiper;\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n swiper.init(el);\n}\nexport { initSwiper, mountSwiper };","import { paramsList } from './params-list';\nimport { isObject } from './utils';\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n var keys = [];\n if (!oldParams) return keys;\n var addKey = function addKey(key) {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n var oldChildrenKeys = oldChildren.map(function (child) {\n return child.key;\n });\n var childrenKeys = children.map(function (child) {\n return child.key;\n });\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n var watchParams = paramsList.filter(function (key) {\n return key[0] === '_';\n }).map(function (key) {\n return key.replace(/_/, '');\n });\n watchParams.forEach(function (key) {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n var newKeys = Object.keys(swiperParams[key]);\n var oldKeys = Object.keys(oldParams[key]);\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(function (newKey) {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(function (oldKey) {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\nexport { getChangedParams };","import React from 'react';\nfunction updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n}\nfunction renderVirtual(swiper, slides, virtualData) {\n var _ref;\n if (!virtualData) return null;\n var style = swiper.isHorizontal() ? (_ref = {}, _ref[swiper.rtlTranslate ? 'right' : 'left'] = virtualData.offset + \"px\", _ref) : {\n top: virtualData.offset + \"px\"\n };\n return slides.filter(function (child, index) {\n return index >= virtualData.from && index <= virtualData.to;\n }).map(function (child) {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiper,\n style: style\n });\n });\n}\nexport { renderVirtual, updateOnVirtualData };","var _excluded = [\"tag\", \"children\", \"className\", \"swiper\", \"zoom\", \"virtualIndex\"];\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from './utils';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n children = _ref.children,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? '' : _ref$className,\n swiper = _ref.swiper,\n zoom = _ref.zoom,\n virtualIndex = _ref.virtualIndex,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var slideElRef = useRef(null);\n var _useState = useState('swiper-slide'),\n slideClasses = _useState[0],\n setSlideClasses = _useState[1];\n function updateClasses(swiper, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n useIsomorphicLayoutEffect(function () {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n if (!slideElRef.current || !swiper) {\n return;\n }\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n return;\n }\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return function () {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(function () {\n if (swiper && slideElRef.current) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n var slideData;\n if (typeof children === 'function') {\n slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-next') >= 0\n };\n }\n var renderChildren = function renderChildren() {\n return typeof children === 'function' ? children(slideData) : children;\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(\"\" + slideClasses + (className ? \" \" + className : '')),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren());\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","import Img from \"gatsby-image\";\nimport { RichText } from \"prismic-reactjs\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { Color, Dimen } from \"../constants\";\nimport { fixedImage } from \"../prismic-tools\";\nimport { PrismicImage, PrismicRichText } from \"../types\";\nimport Button from \"./Button\";\nimport Column from \"./Column\";\nimport FormattedText from \"./FormattedText\";\nimport Grid from \"./Grid\";\nimport Gutter from \"./Gutter\";\nimport HorizontalAlign from \"./HorizontalAlign\";\nimport Text from \"./Text\";\n\nexport type QuoteType = {\n quote_author_image: PrismicImage;\n quote_author_name: string | undefined;\n quote_author_role: string | undefined;\n quote_company_logo?: PrismicImage;\n quote_title: string | undefined;\n quote_content: PrismicRichText;\n};\n\nexport type Props = {\n quote: QuoteType;\n buttonLabel: string;\n buttonHref?: string;\n};\n\nexport default function Quote({ quote, buttonLabel, buttonHref }: Props) {\n return (\n \n \n \n \n {quote.quote_author_image && (\n \n )}\n \n \n {quote.quote_author_name}\n \n \n {quote.quote_author_role}\n \n {quote.quote_company_logo && (\n <>\n \n \n \n )}\n \n \n \n \n \n \n {quote.quote_title}\n \n \n
\n \n \n \n
\n \n \n {buttonLabel && (\n \n )}\n \n
\n
\n
\n );\n}\n\nconst StyledQuoteAuthor = styled.div`\n border-right: 1px ${Color.newDark1} solid;\n\n .photo {\n border-radius: 50%;\n }\n\n .logo {\n width: 116px;\n }\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n border-right: 0;\n }\n`;\n\nconst StyledQuoteMain = styled.div`\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n text-align: center;\n }\n`;\n","import { graphql, useStaticQuery } from \"gatsby\";\nimport Img from \"gatsby-image\";\nimport { RichText } from \"prismic-reactjs\";\nimport * as React from \"react\";\nimport SwiperCore, { Navigation, Pagination, Scrollbar, A11y } from \"swiper\";\nimport { Swiper, SwiperSlide } from \"swiper/react\";\n\nimport { Color, Dimen } from \"../constants\";\nimport { fixedImage } from \"../prismic-tools\";\nimport { PrismicImage, PrismicRichText } from \"../types\";\nimport Button from \"./Button\";\nimport Column from \"./Column\";\nimport FormattedText from \"./FormattedText\";\nimport Grid from \"./Grid\";\nimport Gutter from \"./Gutter\";\nimport HorizontalAlign from \"./HorizontalAlign\";\nimport PageMaxWidth from \"./PageMaxWidth\";\nimport Quote, { QuoteType } from \"./Quote\";\nimport Section from \"./Section\";\nimport Text from \"./Text\";\n\ntype Props = {\n quotes?: undefined | ReadonlyArray;\n buttonLabel?: string | undefined | null;\n buttonHref?: string;\n};\n\nSwiperCore.use([Navigation, Pagination, Scrollbar, A11y]);\n\n/**\n * Display a carousel of standard quotes (or pass in a custom array of quotes\n * to override for a single page).\n */\nexport default function SectionQuotes({\n quotes,\n buttonLabel,\n buttonHref,\n}: Props) {\n const data = useStaticQuery(graphql`\n query SectionQuotes {\n prismicSectionQuotesComponent {\n data {\n quotes {\n quote_author_image {\n alt\n dimensions {\n width\n height\n }\n url\n }\n quote_company_logo {\n alt\n dimensions {\n width\n height\n }\n url\n }\n quote_author_name\n quote_author_role\n quote_title\n quote_content {\n raw\n }\n }\n button_label\n }\n }\n }\n `).prismicSectionQuotesComponent?.data;\n if (!data) return null;\n\n const finalQuotes: QuoteType[] = (quotes ?? data.quotes ?? []).filter(\n Boolean\n ) as QuoteType[];\n\n const finalButtonLabel = buttonLabel || data.button_label || \"Our Customers\";\n\n let inner = (\n \n {finalQuotes.map(\n (quote, i) =>\n quote && (\n \n \n \n \n \n \n )\n )}\n \n );\n if (finalQuotes.length === 0) {\n inner =
;\n } else if (finalQuotes.length === 1) {\n inner = (\n \n \n \n );\n }\n\n return (\n
\n \n {inner}\n \n
\n );\n}\n","import { Link } from \"gatsby\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Gutter } from \".\";\n\nimport { Color } from \"../constants\";\nimport Column from \"./Column\";\nimport Grid from \"./Grid\";\nimport PageMaxWidth from \"./PageMaxWidth\";\nimport Section from \"./Section\";\nimport Text from \"./Text\";\n\ntype Props = {\n title?: string;\n};\n\nexport default function SectionUseCases({ title = \"Use Cases\" }: Props) {\n return (\n
\n \n \n \n \n {title}\n \n \n \n \n Automatic Reconciliation of AP Invoices\n
\n \n
\n Learn more\n \n \n \n
\n
\n
\n \n \n Real-time Commercial Invoice Data Entry\n
\n \n
\n Learn more\n \n \n \n
\n
\n
\n
\n \n \n Automate the Creation and Updating of Import Jobs \n
\n \n
\n Learn more\n \n \n \n
\n
\n
\n \n \n \n Automatically Triage Master Bill Management for Exports\n \n
\n \n
\n Learn more\n \n \n \n
\n
\n
\n
\n
\n
\n
\n );\n}\n\nconst StyledUseCaseCard = styled(Link)`\n box-sizing: border-box;\n width: 100%;\n min-height: 134px;\n background-color: ${Color.light1};\n border-radius: 8px;\n box-shadow: 0px 8px 30px rgba(82, 87, 102, 0.15);\n padding: 20px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n > span {\n padding-right: 15%;\n }\n\n .area-bottom {\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n > img {\n width: 20px;\n }\n }\n\n .learn-more {\n svg {\n fill: ${Color.blue1};\n margin-left: 6px;\n width: 13px;\n height: 12px;\n transition: transform 150ms;\n }\n }\n\n &:hover {\n .learn-more {\n svg {\n transform: translateX(7px);\n }\n }\n }\n`;\n","import { RichText } from \"prismic-reactjs\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Dimen } from \"../constants\";\nimport { PrismicRichText } from \"../types\";\nimport Button from \"./Button\";\nimport FormattedText from \"./FormattedText\";\nimport Gutter from \"./Gutter\";\nimport MaxWidth from \"./MaxWidth\";\nimport Text from \"./Text\";\nimport Visibility from \"./Visibility\";\n\ntype Props = {\n title: string | undefined;\n description: string | PrismicRichText;\n contactButtonLabel: string | undefined;\n /**\n * Pass in to include the optional middle button (mobile only)\n */\n tryNowButtonlabel?: string | undefined;\n calculatorButtonLabel: string | undefined;\n};\n\n/**\n * Only the very minimal Hero designs with text and 2 buttons.\n */\nexport default function SimpleHero({\n title,\n description,\n contactButtonLabel,\n tryNowButtonlabel,\n calculatorButtonLabel,\n}: Props) {\n return (\n
\n \n {title}\n \n \n {description && (\n <>\n \n {typeof description === \"string\" ? (\n \n {description}\n \n ) : (\n \n \n \n )}\n \n \n \n )}\n \n \n \n {tryNowButtonlabel && (\n \n \n \n \n )}\n \n \n
\n );\n}\n\nconst StyledButtons = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n flex-direction: column;\n }\n`;\n","import { graphql } from \"gatsby\";\nimport { RichText } from \"prismic-reactjs\";\nimport * as React from \"react\";\nimport { useForm } from \"react-typed-form\";\nimport styled from \"styled-components\";\nimport {\n Button,\n Column,\n CurvedSectionDividerGlow,\n FormattedText,\n Grid,\n Gutter,\n HelmetSeo,\n HorizontalAlign,\n Layout,\n MaxWidth,\n PageMaxWidth,\n Section,\n Text,\n} from \"../components\";\nimport { Color, Dimen } from \"../constants\";\nimport { FieldSelect, FieldText, SubmitButton } from \"../form\";\n\ntype Props = {\n /**\n * If not the \"Try Now\" page, just make sure it has matching fields\n */\n prismicData: NonNullable<\n NonNullable[\"data\"]\n >;\n};\n\n/**\n * Page design used for multiple URLs/HubSpot forms, but otherwise nearly\n * identical. Extracted to a reusable component to avoid massive amounts of\n * duplicated code for the UI/form logic.\n */\nexport default function TryNowPageInner({ prismicData }: Props) {\n const [step, setStep] = React.useState(1);\n\n return (\n \n \n\n
\n \n \n \n \n {prismicData.hero_title}\n \n \n \n\n \n \n \n \n \n \n \n
\n\n
\n \n \n \n \n \n\n \n \n \n \n \n
\n
\n );\n}\n\nconst StyledNegativeCurve = styled.div`\n margin-bottom: -435px;\n\n @media (max-width: 1940px) {\n margin-bottom: -300px;\n }\n\n @media (max-width: 1680px) {\n margin-bottom: -270px;\n }\n\n @media (max-width: ${Dimen.breakpointDownXl}px) {\n margin-bottom: -238px;\n }\n\n @media (max-width: ${Dimen.breakpointDownLg}px) {\n margin-bottom: -225px;\n }\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n margin-bottom: -210px;\n }\n`;\n\nconst StyledForm = styled.form`\n background-color: ${Color.light1};\n border-radius: 8px;\n box-shadow: 0px 12px 30px rgba(82, 87, 102, 0.15);\n padding: 60px 40px 40px;\n margin-bottom: 40px;\n`;\n\nconst StyledSteps = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-around;\n`;\n\nconst StyledStep = styled(\"div\") <{ $active: boolean; $done: boolean }>`\n display: flex;\n flex-direction: column;\n align-items: center;\n\n > strong {\n font-size: 24px;\n ${(p) => !p.$active && `color: ${Color.light6}`};\n }\n\n > span {\n font-size: 18px;\n margin: 8px 0 12px;\n ${(p) => !p.$active && `color: ${Color.light6}`};\n\n @media (max-width: ${Dimen.breakpointDownSm}px) {\n font-size: 15px;\n }\n }\n\n > em {\n display: block;\n width: 14px;\n height: 14px;\n ${(p) => p.$done && `background-color: ${Color.light5}`};\n border-radius: 6px;\n border: 2px ${(p) => (p.$active ? Color.orange1 : Color.light5)} solid;\n }\n`;\n\nconst StyledButtons = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n flex-direction: column;\n }\n`;\n\nconst StyledSuccess = styled.div`\n padding: 20px 50px;\n`;\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Dimen } from \"../constants\";\n\ntype Props = {\n wistiaId: string;\n visible: boolean;\n onDismiss: () => void;\n};\n\nexport default function VideoModal({ wistiaId, visible, onDismiss }: Props) {\n return (\n \n {visible && (\n \n )}\n\n \n \n \n \n );\n}\n\nconst StyledMask = styled(\"div\")<{ $visible: boolean }>`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.8);\n z-index: 300;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: ${(p) => (p.$visible ? 1 : 0)};\n pointer-events: ${(p) => (p.$visible ? \"auto\" : \"none\")};\n transition: opacity 250ms;\n`;\n\nconst StyledVideoIframeEmbed = styled.iframe`\n width: 100%;\n height: 95%;\n margin: 30px;\n\n max-width: 1280px;\n max-height: 720px;\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n height: 80%;\n }\n`;\n\nconst StyledClose = styled.a`\n position: absolute;\n top: 15px;\n right: 15px;\n cursor: pointer;\n width: 42px;\n height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n transition: background-color 250ms;\n\n &:hover {\n background-color: rgba(0, 0, 0, 0.1);\n }\n`;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\nfunction noop() {}\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\nprocess.listeners = function (name) {\n return [];\n};\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar logDeprecationNotice = function logDeprecationNotice(prop, replacement) {\n if (process.env.NODE_ENV === \"production\") {\n return;\n }\n\n console.log(\"\\n The \\\"\" + prop + \"\\\" prop is now deprecated and will be removed in the next major version\\n of \\\"gatsby-image\\\".\\n \");\n\n if (replacement) {\n console.log(\"Please use \" + replacement + \" instead of \\\"\" + prop + \"\\\".\");\n }\n}; // Handle legacy props during their deprecation phase\n\n\nvar convertProps = function convertProps(props) {\n var convertedProps = (0, _extends2.default)({}, props);\n var resolutions = convertedProps.resolutions,\n sizes = convertedProps.sizes,\n critical = convertedProps.critical;\n\n if (resolutions) {\n convertedProps.fixed = resolutions;\n logDeprecationNotice(\"resolutions\", \"the gatsby-image v2 prop \\\"fixed\\\"\");\n delete convertedProps.resolutions;\n }\n\n if (sizes) {\n convertedProps.fluid = sizes;\n logDeprecationNotice(\"sizes\", \"the gatsby-image v2 prop \\\"fluid\\\"\");\n delete convertedProps.sizes;\n }\n\n if (critical) {\n logDeprecationNotice(\"critical\", \"the native \\\"loading\\\" attribute\");\n convertedProps.loading = \"eager\";\n } // convert fluid & fixed to arrays so we only have to work with arrays\n\n\n if (convertedProps.fluid) {\n convertedProps.fluid = groupByMedia([].concat(convertedProps.fluid));\n }\n\n if (convertedProps.fixed) {\n convertedProps.fixed = groupByMedia([].concat(convertedProps.fixed));\n }\n\n return convertedProps;\n};\n/**\n * Checks if fluid or fixed are art-direction arrays.\n *\n * @param currentData {{media?: string}[]} The props to check for images.\n * @return {boolean}\n */\n\n\nvar hasArtDirectionSupport = function hasArtDirectionSupport(currentData) {\n return !!currentData && Array.isArray(currentData) && currentData.some(function (image) {\n return typeof image.media !== \"undefined\";\n });\n};\n/**\n * Tries to detect if a media query matches the current viewport.\n * @property media {{media?: string}} A media query string.\n * @return {boolean}\n */\n\n\nvar matchesMedia = function matchesMedia(_ref) {\n var media = _ref.media;\n return media ? isBrowser && !!window.matchMedia(media).matches : false;\n};\n/**\n * Find the source of an image to use as a key in the image cache.\n * Use `the first image in either `fixed` or `fluid`\n * @param {{fluid: {src: string, media?: string}[], fixed: {src: string, media?: string}[]}} args\n * @return {string?} Returns image src or undefined it not given.\n */\n\n\nvar getImageCacheKey = function getImageCacheKey(_ref2) {\n var fluid = _ref2.fluid,\n fixed = _ref2.fixed;\n var srcData = getCurrentSrcData(fluid || fixed || []);\n return srcData && srcData.src;\n};\n/**\n * Returns the current src - Preferably with art-direction support.\n * @param currentData {{media?: string}[], maxWidth?: Number, maxHeight?: Number} The fluid or fixed image array.\n * @return {{src: string, media?: string, maxWidth?: Number, maxHeight?: Number}}\n */\n\n\nvar getCurrentSrcData = function getCurrentSrcData(currentData) {\n if (isBrowser && hasArtDirectionSupport(currentData)) {\n // Do we have an image for the current Viewport?\n var foundMedia = currentData.findIndex(matchesMedia);\n\n if (foundMedia !== -1) {\n return currentData[foundMedia];\n } // No media matches, select first element without a media condition\n\n\n var noMedia = currentData.findIndex(function (image) {\n return typeof image.media === \"undefined\";\n });\n\n if (noMedia !== -1) {\n return currentData[noMedia];\n }\n } // Else return the first image.\n\n\n return currentData[0];\n}; // Cache if we've seen an image before so we don't bother with\n// lazy-loading & fading in on subsequent mounts.\n\n\nvar imageCache = Object.create({});\n\nvar inImageCache = function inImageCache(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n return imageCache[cacheKey] || false;\n};\n\nvar activateCacheForImage = function activateCacheForImage(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n\n if (cacheKey) {\n imageCache[cacheKey] = true;\n }\n}; // Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\n\n\nvar hasNativeLazyLoadSupport = typeof HTMLImageElement !== \"undefined\" && \"loading\" in HTMLImageElement.prototype;\nvar isBrowser = typeof window !== \"undefined\";\nvar hasIOSupport = isBrowser && window.IntersectionObserver;\nvar io;\nvar listeners = new WeakMap();\n\nfunction getIO() {\n if (typeof io === \"undefined\" && typeof window !== \"undefined\" && window.IntersectionObserver) {\n io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (listeners.has(entry.target)) {\n var cb = listeners.get(entry.target); // Edge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(entry.target);\n listeners.delete(entry.target);\n cb();\n }\n }\n });\n }, {\n rootMargin: \"200px\"\n });\n }\n\n return io;\n}\n\nfunction generateImageSources(imageVariants) {\n return imageVariants.map(function (_ref3) {\n var src = _ref3.src,\n srcSet = _ref3.srcSet,\n srcSetWebp = _ref3.srcSetWebp,\n media = _ref3.media,\n sizes = _ref3.sizes;\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {\n key: src\n }, srcSetWebp && /*#__PURE__*/_react.default.createElement(\"source\", {\n type: \"image/webp\",\n media: media,\n srcSet: srcSetWebp,\n sizes: sizes\n }), srcSet && /*#__PURE__*/_react.default.createElement(\"source\", {\n media: media,\n srcSet: srcSet,\n sizes: sizes\n }));\n });\n} // Return an array ordered by elements having a media prop, does not use\n// native sort, as a stable sort is not guaranteed by all browsers/versions\n\n\nfunction groupByMedia(imageVariants) {\n var withMedia = [];\n var without = [];\n imageVariants.forEach(function (variant) {\n return (variant.media ? withMedia : without).push(variant);\n });\n\n if (without.length > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"We've found \" + without.length + \" sources without a media property. They might be ignored by the browser, see: https://www.gatsbyjs.org/packages/gatsby-image/#art-directing-multiple-images\");\n }\n\n return [].concat(withMedia, without);\n}\n\nfunction generateTracedSVGSources(imageVariants) {\n return imageVariants.map(function (_ref4) {\n var src = _ref4.src,\n media = _ref4.media,\n tracedSVG = _ref4.tracedSVG;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: tracedSVG\n });\n });\n}\n\nfunction generateBase64Sources(imageVariants) {\n return imageVariants.map(function (_ref5) {\n var src = _ref5.src,\n media = _ref5.media,\n base64 = _ref5.base64;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: base64\n });\n });\n}\n\nfunction generateNoscriptSource(_ref6, isWebp) {\n var srcSet = _ref6.srcSet,\n srcSetWebp = _ref6.srcSetWebp,\n media = _ref6.media,\n sizes = _ref6.sizes;\n var src = isWebp ? srcSetWebp : srcSet;\n var mediaAttr = media ? \"media=\\\"\" + media + \"\\\" \" : \"\";\n var typeAttr = isWebp ? \"type='image/webp' \" : \"\";\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\" \" : \"\";\n return \"\";\n}\n\nfunction generateNoscriptSources(imageVariants) {\n return imageVariants.map(function (variant) {\n return (variant.srcSetWebp ? generateNoscriptSource(variant, true) : \"\") + generateNoscriptSource(variant);\n }).join(\"\");\n}\n\nvar listenToIntersections = function listenToIntersections(el, cb) {\n var observer = getIO();\n\n if (observer) {\n observer.observe(el);\n listeners.set(el, cb);\n }\n\n return function () {\n observer.unobserve(el);\n listeners.delete(el);\n };\n};\n\nvar noscriptImg = function noscriptImg(props) {\n // Check if prop exists before adding each attribute to the string output below to prevent\n // HTML validation issues caused by empty values like width=\"\" and height=\"\"\n var src = props.src ? \"src=\\\"\" + props.src + \"\\\" \" : \"src=\\\"\\\" \"; // required attribute\n\n var sizes = props.sizes ? \"sizes=\\\"\" + props.sizes + \"\\\" \" : \"\";\n var srcSet = props.srcSet ? \"srcset=\\\"\" + props.srcSet + \"\\\" \" : \"\";\n var title = props.title ? \"title=\\\"\" + props.title + \"\\\" \" : \"\";\n var alt = props.alt ? \"alt=\\\"\" + props.alt + \"\\\" \" : \"alt=\\\"\\\" \"; // required attribute\n\n var width = props.width ? \"width=\\\"\" + props.width + \"\\\" \" : \"\";\n var height = props.height ? \"height=\\\"\" + props.height + \"\\\" \" : \"\";\n var crossOrigin = props.crossOrigin ? \"crossorigin=\\\"\" + props.crossOrigin + \"\\\" \" : \"\";\n var loading = props.loading ? \"loading=\\\"\" + props.loading + \"\\\" \" : \"\";\n var draggable = props.draggable ? \"draggable=\\\"\" + props.draggable + \"\\\" \" : \"\";\n var sources = generateNoscriptSources(props.imageVariants);\n return \"\" + sources + \"\";\n}; // Earlier versions of gatsby-image during the 2.x cycle did not wrap\n// the `Img` component in a `picture` element. This maintains compatibility\n// until a breaking change can be introduced in the next major release\n\n\nvar Placeholder = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var src = props.src,\n imageVariants = props.imageVariants,\n generateSources = props.generateSources,\n spreadProps = props.spreadProps,\n ariaHidden = props.ariaHidden;\n\n var baseImage = /*#__PURE__*/_react.default.createElement(Img, (0, _extends2.default)({\n ref: ref,\n src: src\n }, spreadProps, {\n ariaHidden: ariaHidden\n }));\n\n return imageVariants.length > 1 ? /*#__PURE__*/_react.default.createElement(\"picture\", null, generateSources(imageVariants), baseImage) : baseImage;\n});\n\nvar Img = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var sizes = props.sizes,\n srcSet = props.srcSet,\n src = props.src,\n style = props.style,\n onLoad = props.onLoad,\n onError = props.onError,\n loading = props.loading,\n draggable = props.draggable,\n ariaHidden = props.ariaHidden,\n otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, [\"sizes\", \"srcSet\", \"src\", \"style\", \"onLoad\", \"onError\", \"loading\", \"draggable\", \"ariaHidden\"]);\n return /*#__PURE__*/_react.default.createElement(\"img\", (0, _extends2.default)({\n \"aria-hidden\": ariaHidden,\n sizes: sizes,\n srcSet: srcSet,\n src: src\n }, otherProps, {\n onLoad: onLoad,\n onError: onError,\n ref: ref,\n loading: loading,\n draggable: draggable,\n style: (0, _extends2.default)({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n objectPosition: \"center\"\n }, style)\n }));\n});\n\nImg.propTypes = {\n style: _propTypes.default.object,\n onError: _propTypes.default.func,\n onLoad: _propTypes.default.func\n};\n\nvar Image = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(Image, _React$Component);\n\n function Image(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // If this image has already been loaded before then we can assume it's\n // already in the browser cache so it's cheap to just show directly.\n\n _this.seenBefore = isBrowser && inImageCache(props);\n _this.isCritical = props.loading === \"eager\" || props.critical;\n _this.addNoScript = !(_this.isCritical && !props.fadeIn);\n _this.useIOSupport = !hasNativeLazyLoadSupport && hasIOSupport && !_this.isCritical && !_this.seenBefore;\n var isVisible = _this.isCritical || isBrowser && (hasNativeLazyLoadSupport || !_this.useIOSupport);\n _this.state = {\n isVisible: isVisible,\n imgLoaded: false,\n imgCached: false,\n fadeIn: !_this.seenBefore && props.fadeIn,\n isHydrated: false\n };\n _this.imageRef = /*#__PURE__*/_react.default.createRef();\n _this.placeholderRef = props.placeholderRef || /*#__PURE__*/_react.default.createRef();\n _this.handleImageLoaded = _this.handleImageLoaded.bind((0, _assertThisInitialized2.default)(_this));\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = Image.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.setState({\n isHydrated: isBrowser\n });\n\n if (this.state.isVisible && typeof this.props.onStartLoad === \"function\") {\n this.props.onStartLoad({\n wasCached: inImageCache(this.props)\n });\n }\n\n if (this.isCritical) {\n var img = this.imageRef.current;\n\n if (img && img.complete) {\n this.handleImageLoaded();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.cleanUpListeners) {\n this.cleanUpListeners();\n }\n } // Specific to IntersectionObserver based lazy-load support\n ;\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.useIOSupport && ref) {\n this.cleanUpListeners = listenToIntersections(ref, function () {\n var imageInCache = inImageCache(_this2.props);\n\n if (!_this2.state.isVisible && typeof _this2.props.onStartLoad === \"function\") {\n _this2.props.onStartLoad({\n wasCached: imageInCache\n });\n } // imgCached and imgLoaded must update after isVisible,\n // Once isVisible is true, imageRef becomes accessible, which imgCached needs access to.\n // imgLoaded and imgCached are in a 2nd setState call to be changed together,\n // avoiding initiating unnecessary animation frames from style changes.\n\n\n _this2.setState({\n isVisible: true\n }, function () {\n _this2.setState({\n imgLoaded: imageInCache,\n // `currentSrc` should be a string, but can be `undefined` in IE,\n // !! operator validates the value is not undefined/null/\"\"\n // for lazyloaded components this might be null\n // TODO fix imgCached behaviour as it's now false when it's lazyloaded\n imgCached: !!(_this2.imageRef.current && _this2.imageRef.current.currentSrc)\n });\n });\n });\n }\n };\n\n _proto.handleImageLoaded = function handleImageLoaded() {\n activateCacheForImage(this.props);\n this.setState({\n imgLoaded: true\n });\n\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n };\n\n _proto.render = function render() {\n var _convertProps = convertProps(this.props),\n title = _convertProps.title,\n alt = _convertProps.alt,\n className = _convertProps.className,\n _convertProps$style = _convertProps.style,\n style = _convertProps$style === void 0 ? {} : _convertProps$style,\n _convertProps$imgStyl = _convertProps.imgStyle,\n imgStyle = _convertProps$imgStyl === void 0 ? {} : _convertProps$imgStyl,\n _convertProps$placeho = _convertProps.placeholderStyle,\n placeholderStyle = _convertProps$placeho === void 0 ? {} : _convertProps$placeho,\n placeholderClassName = _convertProps.placeholderClassName,\n fluid = _convertProps.fluid,\n fixed = _convertProps.fixed,\n backgroundColor = _convertProps.backgroundColor,\n durationFadeIn = _convertProps.durationFadeIn,\n Tag = _convertProps.Tag,\n itemProp = _convertProps.itemProp,\n loading = _convertProps.loading,\n draggable = _convertProps.draggable;\n\n var imageVariants = fluid || fixed; // Abort early if missing image data (#25371)\n\n if (!imageVariants) {\n return null;\n }\n\n var shouldReveal = this.state.fadeIn === false || this.state.imgLoaded;\n var shouldFadeIn = this.state.fadeIn === true && !this.state.imgCached;\n var imageStyle = (0, _extends2.default)({\n opacity: shouldReveal ? 1 : 0,\n transition: shouldFadeIn ? \"opacity \" + durationFadeIn + \"ms\" : \"none\"\n }, imgStyle);\n var bgColor = typeof backgroundColor === \"boolean\" ? \"lightgray\" : backgroundColor;\n var delayHideStyle = {\n transitionDelay: durationFadeIn + \"ms\"\n };\n var imagePlaceholderStyle = (0, _extends2.default)({\n opacity: this.state.imgLoaded ? 0 : 1\n }, shouldFadeIn && delayHideStyle, imgStyle, placeholderStyle);\n var placeholderImageProps = {\n title: title,\n alt: !this.state.isVisible ? alt : \"\",\n style: imagePlaceholderStyle,\n className: placeholderClassName,\n itemProp: itemProp\n }; // Initial client render state needs to match SSR until hydration finishes.\n // Once hydration completes, render again to update to the correct image.\n // `imageVariants` is always an Array type at this point due to `convertProps()`\n\n var image = !this.state.isHydrated ? imageVariants[0] : getCurrentSrcData(imageVariants);\n\n if (fluid) {\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n maxWidth: image.maxWidth ? image.maxWidth + \"px\" : null,\n maxHeight: image.maxHeight ? image.maxHeight + \"px\" : null\n }, style),\n ref: this.handleRef,\n key: \"fluid-\" + JSON.stringify(image.srcSet)\n }, /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n style: {\n width: \"100%\",\n paddingBottom: 100 / image.aspectRatio + \"%\"\n }\n }), bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n position: \"absolute\",\n top: 0,\n bottom: 0,\n opacity: !this.state.imgLoaded ? 1 : 0,\n right: 0,\n left: 0\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n if (fixed) {\n var divStyle = (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n display: \"inline-block\",\n width: image.width,\n height: image.height\n }, style);\n\n if (style.display === \"inherit\") {\n delete divStyle.display;\n }\n\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: divStyle,\n ref: this.handleRef,\n key: \"fixed-\" + JSON.stringify(image.srcSet)\n }, bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n width: image.width,\n opacity: !this.state.imgLoaded ? 1 : 0,\n height: image.height\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n width: image.width,\n height: image.height,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n return null;\n };\n\n return Image;\n}(_react.default.Component);\n\nImage.defaultProps = {\n fadeIn: true,\n durationFadeIn: 500,\n alt: \"\",\n Tag: \"div\",\n // We set it to `lazy` by default because it's best to default to a performant\n // setting and let the user \"opt out\" to `eager`\n loading: \"lazy\"\n};\n\nvar fixedObject = _propTypes.default.shape({\n width: _propTypes.default.number.isRequired,\n height: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string\n});\n\nvar fluidObject = _propTypes.default.shape({\n aspectRatio: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n sizes: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string,\n maxWidth: _propTypes.default.number,\n maxHeight: _propTypes.default.number\n});\n\nfunction requireFixedOrFluid(originalPropTypes) {\n return function (props, propName, componentName) {\n var _PropTypes$checkPropT;\n\n if (!props.fixed && !props.fluid) {\n throw new Error(\"The prop `fluid` or `fixed` is marked as required in `\" + componentName + \"`, but their values are both `undefined`.\");\n }\n\n _propTypes.default.checkPropTypes((_PropTypes$checkPropT = {}, _PropTypes$checkPropT[propName] = originalPropTypes, _PropTypes$checkPropT), props, \"prop\", componentName);\n };\n} // If you modify these propTypes, please don't forget to update following files as well:\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/index.d.ts\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/README.md#gatsby-image-props\n// https://github.com/gatsbyjs/gatsby/blob/master/docs/docs/gatsby-image.md#gatsby-image-props\n\n\nImage.propTypes = {\n resolutions: fixedObject,\n sizes: fluidObject,\n fixed: requireFixedOrFluid(_propTypes.default.oneOfType([fixedObject, _propTypes.default.arrayOf(fixedObject)])),\n fluid: requireFixedOrFluid(_propTypes.default.oneOfType([fluidObject, _propTypes.default.arrayOf(fluidObject)])),\n fadeIn: _propTypes.default.bool,\n durationFadeIn: _propTypes.default.number,\n title: _propTypes.default.string,\n alt: _propTypes.default.string,\n className: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),\n // Support Glamor's css prop.\n critical: _propTypes.default.bool,\n crossOrigin: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n style: _propTypes.default.object,\n imgStyle: _propTypes.default.object,\n placeholderStyle: _propTypes.default.object,\n placeholderClassName: _propTypes.default.string,\n backgroundColor: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n onLoad: _propTypes.default.func,\n onError: _propTypes.default.func,\n onStartLoad: _propTypes.default.func,\n Tag: _propTypes.default.string,\n itemProp: _propTypes.default.string,\n loading: _propTypes.default.oneOf([\"auto\", \"lazy\", \"eager\"]),\n draggable: _propTypes.default.bool\n};\nvar _default = Image;\nexports.default = _default;","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\nexport default memoize;","import memoize from '@emotion/memoize';\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */ && prop.charCodeAt(1) === 110\n /* n */ && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */);\n\nexport default index;","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, nextTick, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Scrollbar = {\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate,\n progress = swiper.progress;\n var dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n var params = swiper.params.scrollbar;\n var newSize = dragSize;\n var newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n $dragEl.transform(\"translate3d(\" + newPos + \"px, 0, 0)\");\n $dragEl[0].style.width = newSize + \"px\";\n } else {\n $dragEl.transform(\"translate3d(0px, \" + newPos + \"px, 0)\");\n $dragEl[0].style.height = newSize + \"px\";\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(function () {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize: function updateSize() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar;\n var $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n var divider = swiper.size / swiper.virtualSize;\n var moveDivider = divider * (trackSize / swiper.size);\n var dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = dragSize + \"px\";\n } else {\n $dragEl[0].style.height = dragSize + \"px\";\n }\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n extend(scrollbar, {\n trackSize: trackSize,\n divider: divider,\n moveDivider: moveDivider,\n dragSize: dragSize\n });\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n },\n getPointerPosition: function getPointerPosition(e) {\n var swiper = this;\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n },\n setDragPosition: function setDragPosition(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate;\n var $el = scrollbar.$el,\n dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n dragStartPos = scrollbar.dragStartPos;\n var positionRatio;\n positionRatio = (scrollbar.getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart: function onDragStart(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n clearTimeout(swiper.scrollbar.dragTimeout);\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove: function onDragMove(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd: function onDragEnd(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = nextTick(function () {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable: function enableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n if (!support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable: function disableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n if (!support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init: function init() {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $swiperEl = swiper.$el;\n swiper.params.scrollbar = createElementIfNotDefined($swiperEl, swiper.params.scrollbar, swiper.params.createElements, {\n el: 'swiper-scrollbar'\n });\n var params = swiper.params.scrollbar;\n if (!params.el) return;\n var $el = $(params.el);\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n var $dragEl = $el.find(\".\" + swiper.params.scrollbar.dragClass);\n if ($dragEl.length === 0) {\n $dragEl = $(\"
\");\n $el.append($dragEl);\n }\n extend(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0]\n });\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.disableDraggable();\n }\n};\nexport default {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n scrollbar: _extends({\n isTouched: false,\n timeout: null,\n dragTimeout: null\n }, Scrollbar)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update: function update(swiper) {\n swiper.scrollbar.updateSize();\n },\n resize: function resize(swiper) {\n swiper.scrollbar.updateSize();\n },\n observerUpdate: function observerUpdate(swiper) {\n swiper.scrollbar.updateSize();\n },\n setTranslate: function setTranslate(swiper) {\n swiper.scrollbar.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n swiper.scrollbar.setTransition(duration);\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.scrollbar.$el;\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n },\n destroy: function destroy(swiper) {\n swiper.scrollbar.destroy();\n }\n }\n};","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04Ljk5NTkyIDJDOS43NDgyIDEuMzYyOTcgMTAuODM5MSAxIDEyIDFDMTMuMTYwOSAxIDE0LjI1MTggMS4zNjI5NyAxNS4wMDQxIDJIMTZDMTcuMTA0NiAyIDE4IDIuODk1NDMgMTggNEgxOUMyMC4xMDQ2IDQgMjEgNC44OTU0MyAyMSA2VjIxQzIxIDIyLjEwNDYgMjAuMTA0NiAyMyAxOSAyM0g1QzMuODk1NDMgMjMgMyAyMi4xMDQ2IDMgMjFWNkMzIDQuODk1NDMgMy44OTU0MyA0IDUgNEg2QzYgMi44OTU0MyA2Ljg5NTQzIDIgOCAySDguOTk1OTJaTTE2IDdDMTYuNzQwMyA3IDE3LjM4NjYgNi41OTc4IDE3LjczMjQgNkgxOVYyMUg1VjZINi4yNjc1NkM2LjYxMzM3IDYuNTk3OCA3LjI1OTcyIDcgOCA3SDE2Wk0xNS4yOTI5IDEwLjI5MjlMMTEgMTQuNTg1OEw4LjcwNzExIDEyLjI5MjlMNy4yOTI4OSAxMy43MDcxTDExIDE3LjQxNDJMMTYuNzA3MSAxMS43MDcxTDE1LjI5MjkgMTAuMjkyOVpNOS44NTc2MiA0TDEwLjE1NjYgMy42NTUzOEMxMC40ODUyIDMuMjc2NzQgMTEuMTg5NCAzIDEyIDNDMTIuODEwNiAzIDEzLjUxNDggMy4yNzY3NCAxMy44NDM0IDMuNjU1MzhMMTQuMTQyNCA0SDE2VjVIOFY0SDkuNDAxMzVIOS44NTc2MloiIGZpbGw9IiMwMDg1RkYiLz4KPC9zdmc+Cg==\"","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getApplicativeComposition = exports.getApplicativeMonoid = void 0;\n/**\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 */\nvar Apply_1 = require(\"./Apply\");\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\nfunction getApplicativeMonoid(F) {\n var f = Apply_1.getApplySemigroup(F);\n return function (M) {\n return {\n concat: f(M).concat,\n empty: F.of(M.empty)\n };\n };\n}\nexports.getApplicativeMonoid = getApplicativeMonoid;\n/** @deprecated */\nfunction getApplicativeComposition(F, G) {\n var map = Functor_1.getFunctorComposition(F, G).map;\n var _ap = Apply_1.ap(F, G);\n return {\n map: map,\n of: function (a) {\n return F.of(G.of(a));\n },\n ap: function (fgab, fga) {\n return function_1.pipe(fgab, _ap(fga));\n }\n };\n}\nexports.getApplicativeComposition = getApplicativeComposition;","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n default:\n return u;\n }\n }\n case d:\n return u;\n }\n }\n}\nfunction A(a) {\n return z(a) === m;\n}\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\nexports.isConcurrentMode = A;\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\nexports.isFragment = function (a) {\n return z(a) === e;\n};\nexports.isLazy = function (a) {\n return z(a) === t;\n};\nexports.isMemo = function (a) {\n return z(a) === r;\n};\nexports.isPortal = function (a) {\n return z(a) === d;\n};\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\nexports.typeOf = z;","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\nvar React = require('react');\nvar React__default = _interopDefault(React);\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 return obj;\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n var mountedInstances = [];\n var state;\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\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 var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n var _proto = SideEffect.prototype;\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n _proto.render = function render() {\n return /*#__PURE__*/React__default.createElement(WrappedComponent, this.props);\n };\n return SideEffect;\n }(React.PureComponent);\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n return SideEffect;\n };\n}\nmodule.exports = withSideEffect;","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMiAyMFYxM0gyMFYyMEg0VjRIMTFWMkg0QzIuODk1NDMgMiAyIDIuODk1NDMgMiA0VjIwQzIgMjEuMTA0NiAyLjg5NTQzIDIyIDQgMjJIMjBDMjEuMTA0NiAyMiAyMiAyMS4xMDQ2IDIyIDIwWk0xOS4xNzgxIDIuNzIzNDJDMTguNzE5NyAyLjI2MTQyIDE4LjA5MjEgMiAxNy40Mzc0IDJDMTYuNzgzNCAyIDE2LjE1NjQgMi4yNjA4MyAxNS42OTU0IDIuNzI0NjNMNy4zMjY1IDExLjA5MzRDNi41Nzg2NyAxMS43NTIzIDYuMDg4NDQgMTIuNzMyOCA2LjAwMzI1IDEzLjc4NzNMNiAxNy4wMDIzVjE4LjAwMjNIMTAuMTM0NkMxMS4yNjg5IDE3LjkyNDUgMTIuMjU5IDE3LjQyOTUgMTIuOTU3NSAxNi42MjM4TDIxLjI3OSA4LjMwNTg0QzIxLjc0MDcgNy44NDQxNiAyMi4wMDAxIDcuMjE3OTkgMjIuMDAwMSA2LjU2NTA4QzIyLjAwMDEgNS45MTIxNyAyMS43NDA3IDUuMjg2IDIxLjI3OSA0LjgyNDMyTDE5LjE3ODEgMi43MjM0MlpNMTAuMDY0IDE2LjAwNDhDMTAuNTk4MiAxNS45NjcgMTEuMDk1NSAxNS43MTg0IDExLjQ5NDggMTUuMjYxNkwxNy41NTY3IDkuMTk5NzJMMTQuODAyNCA2LjQ0NTI3TDguNjk2MSAxMi41NDk2QzguMjkwOTUgMTIuOTA3OSA4LjA0MDMxIDEzLjQwOTIgOCAxMy44Njc4VjE2LjAwMjlMMTAuMDY0IDE2LjAwNDhaTTE2LjIxNjkgNS4wMzEyOEwxOC45NzA5IDcuNzg1NTFMMTkuODY0OCA2Ljg5MTYyQzE5Ljk1MTQgNi44MDUwMiAyMC4wMDAxIDYuNjg3NTYgMjAuMDAwMSA2LjU2NTA4QzIwLjAwMDEgNi40NDI2IDE5Ljk1MTQgNi4zMjUxNCAxOS44NjQ4IDYuMjM4NTRMMTcuNzYxMSA0LjEzNDg2QzE3LjY3NTUgNC4wNDg1NSAxNy41NTg5IDQgMTcuNDM3NCA0QzE3LjMxNTggNCAxNy4xOTkyIDQuMDQ4NTUgMTcuMTEzNiA0LjEzNDg2TDE2LjIxNjkgNS4wMzEyOFoiIGZpbGw9IiMwMDg1RkYiLz4KPC9zdmc+Cg==\"","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Color, Dimen } from \"../constants\";\n\ntype Props = {\n as?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"span\";\n align?: \"left\" | \"center\" | \"right\";\n bold?: boolean;\n children: React.ReactNode;\n color?: keyof typeof Color;\n typeface?:\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"body\"\n | \"caption\"\n | \"smallprint\"\n | \"tiny\";\n uppercase?: boolean;\n};\n\nexport default function Text({\n as,\n align,\n bold = false,\n children,\n color,\n typeface = \"body\",\n uppercase = false,\n}: Props) {\n return (\n \n {children}\n \n );\n}\n\nconst typefaceStyles = {\n body: `\n font-size: 18px;\n line-height: 155%;\n`,\n caption: `\n font-size: 14.5px;\n line-height: 153%;\n`,\n h1: `\n font-size: 55px;\n line-height: 112%;\n\n @media (max-width: ${Dimen.breakpointDownXl}px) {\n font-size: 42px;\n line-height: 120%;\n }\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n font-size: 36px;\n line-height: 128%;\n }\n\n @media (max-width: ${Dimen.breakpointDownXs}px) {\n font-size: 28px;\n line-height: 135%;\n }\n`,\n h2: `\n font-size: 44px;\n line-height: 118%;\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n font-size: 22.5px;\n line-height: 142%;\n }\n`,\n h3: `\n font-size: 35px;\n line-height: 125%;\n\n @media (max-width: ${Dimen.breakpointDownXs}px) {\n font-size: 28px;\n line-height: 135%;\n }\n`,\n h4: `\n font-size: 28px;\n line-height: 135%;\n`,\n h5: `\n font-size: 22.5px;\n line-height: 142%;\n\n @media (max-width: ${Dimen.breakpointDownXs}px) {\n font-size: 18px;\n line-height: 155%;\n }\n`,\n smallprint: `\n font-size: 11.5px;\n line-height: 139%;\n`,\n tiny: `\n font-size: 9px;\n line-height: 100%;\n`,\n};\n\nconst StyledText = styled.span<{\n $align?: \"left\" | \"center\" | \"right\";\n $bold: boolean;\n $color?: keyof typeof Color;\n $typeface: keyof typeof typefaceStyles;\n $uppercase: boolean;\n}>`\n margin: 0;\n\n ${(p) => p.$color && `color: ${Color[p.$color]}`};\n ${(p) => typefaceStyles[p.$typeface]};\n font-weight: ${(p) => (p.$bold ? \"bold\" : \"normal\")};\n ${(p) => p.$align && `text-align: ${p.$align}`};\n font-family: sofia-pro;\n ${(p) => p.$uppercase && \"text-transform: uppercase\"};\n`;\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Dimen } from \"../constants\";\n\ntype Props = {\n children: React.ReactNode;\n};\n\n/**\n * Constrain the overall page content to a standard max width on desktop, and\n * add horizontal padding on smaller screens. Should be placed inside a\n *
.\n */\nexport default function PageMaxWidth({ children }: Props) {\n return {children};\n}\n\nconst StyledContainer = styled(\"div\")`\n box-sizing: border-box;\n margin: 0 auto;\n width: 100%;\n max-width: 1080px;\n\n @media (max-width: ${Dimen.breakpointDownLg}px) {\n padding: 0 24px;\n }\n\n @media (max-width: ${Dimen.breakpointDownSm}px) {\n padding: 0 16px;\n }\n`;\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n if (ret !== void 0) {\n return !!ret;\n }\n if (objA === objB) {\n return true;\n }\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) {\n return false;\n }\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n if (!bHasOwnProperty(key)) {\n return false;\n }\n var valueA = objA[key];\n var valueB = objB[key];\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n if (ret === false || ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n return true;\n};","require(\"core-js/modules/es.typed-array.set.js\");\nrequire(\"core-js/modules/es.typed-array.sort.js\");\n/*\n * base64.js\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;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(global) : typeof define === 'function' && define.amd ? define(factory) : factory(global);\n})(typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : this, function (global) {\n 'use strict';\n\n // existing version for noConflict()\n global = global || {};\n var _Base64 = global.Base64;\n var version = \"2.6.4\";\n // constants\n var b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n var b64tab = function (bin) {\n var t = {};\n for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;\n return t;\n }(b64chars);\n var fromCharCode = String.fromCharCode;\n // encoder stuff\n var cb_utob = function (c) {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c : cc < 0x800 ? fromCharCode(0xc0 | cc >>> 6) + fromCharCode(0x80 | cc & 0x3f) : fromCharCode(0xe0 | cc >>> 12 & 0x0f) + fromCharCode(0x80 | cc >>> 6 & 0x3f) + fromCharCode(0x80 | cc & 0x3f);\n } else {\n var cc = 0x10000 + (c.charCodeAt(0) - 0xD800) * 0x400 + (c.charCodeAt(1) - 0xDC00);\n return fromCharCode(0xf0 | cc >>> 18 & 0x07) + fromCharCode(0x80 | cc >>> 12 & 0x3f) + fromCharCode(0x80 | cc >>> 6 & 0x3f) + fromCharCode(0x80 | cc & 0x3f);\n }\n };\n var re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n var utob = function (u) {\n return u.replace(re_utob, cb_utob);\n };\n var cb_encode = function (ccc) {\n var padlen = [0, 2, 1][ccc.length % 3],\n ord = ccc.charCodeAt(0) << 16 | (ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8 | (ccc.length > 2 ? ccc.charCodeAt(2) : 0),\n chars = [b64chars.charAt(ord >>> 18), b64chars.charAt(ord >>> 12 & 63), padlen >= 2 ? '=' : b64chars.charAt(ord >>> 6 & 63), padlen >= 1 ? '=' : b64chars.charAt(ord & 63)];\n return chars.join('');\n };\n var btoa = global.btoa && typeof global.btoa == 'function' ? function (b) {\n return global.btoa(b);\n } : function (b) {\n if (b.match(/[^\\x00-\\xFF]/)) throw new RangeError('The string contains invalid characters.');\n return b.replace(/[\\s\\S]{1,3}/g, cb_encode);\n };\n var _encode = function (u) {\n return btoa(utob(String(u)));\n };\n var mkUriSafe = function (b64) {\n return b64.replace(/[+\\/]/g, function (m0) {\n return m0 == '+' ? '-' : '_';\n }).replace(/=/g, '');\n };\n var encode = function (u, urisafe) {\n return urisafe ? mkUriSafe(_encode(u)) : _encode(u);\n };\n var encodeURI = function (u) {\n return encode(u, true);\n };\n var fromUint8Array;\n if (global.Uint8Array) fromUint8Array = function (a, urisafe) {\n // return btoa(fromCharCode.apply(null, a));\n var b64 = '';\n for (var i = 0, l = a.length; i < l; i += 3) {\n var a0 = a[i],\n a1 = a[i + 1],\n a2 = a[i + 2];\n var ord = a0 << 16 | a1 << 8 | a2;\n b64 += b64chars.charAt(ord >>> 18) + b64chars.charAt(ord >>> 12 & 63) + (typeof a1 != 'undefined' ? b64chars.charAt(ord >>> 6 & 63) : '=') + (typeof a2 != 'undefined' ? b64chars.charAt(ord & 63) : '=');\n }\n return urisafe ? mkUriSafe(b64) : b64;\n };\n // decoder stuff\n var re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\n var cb_btou = function (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 fromCharCode((offset >>> 10) + 0xD800) + fromCharCode((offset & 0x3FF) + 0xDC00);\n case 3:\n return fromCharCode((0x0f & cccc.charCodeAt(0)) << 12 | (0x3f & cccc.charCodeAt(1)) << 6 | 0x3f & cccc.charCodeAt(2));\n default:\n return fromCharCode((0x1f & cccc.charCodeAt(0)) << 6 | 0x3f & cccc.charCodeAt(1));\n }\n };\n var btou = function (b) {\n return b.replace(re_btou, cb_btou);\n };\n var cb_decode = function (cccc) {\n var len = cccc.length,\n padlen = len % 4,\n n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0) | (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0) | (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0) | (len > 3 ? b64tab[cccc.charAt(3)] : 0),\n chars = [fromCharCode(n >>> 16), fromCharCode(n >>> 8 & 0xff), fromCharCode(n & 0xff)];\n chars.length -= [0, 0, 2, 1][padlen];\n return chars.join('');\n };\n var _atob = global.atob && typeof global.atob == 'function' ? function (a) {\n return global.atob(a);\n } : function (a) {\n return a.replace(/\\S{1,4}/g, cb_decode);\n };\n var atob = function (a) {\n return _atob(String(a).replace(/[^A-Za-z0-9\\+\\/]/g, ''));\n };\n var _decode = function (a) {\n return btou(_atob(a));\n };\n var _fromURI = function (a) {\n return String(a).replace(/[-_]/g, function (m0) {\n return m0 == '-' ? '+' : '/';\n }).replace(/[^A-Za-z0-9\\+\\/]/g, '');\n };\n var decode = function (a) {\n return _decode(_fromURI(a));\n };\n var toUint8Array;\n if (global.Uint8Array) toUint8Array = function (a) {\n return Uint8Array.from(atob(_fromURI(a)), function (c) {\n return c.charCodeAt(0);\n });\n };\n var noConflict = function () {\n var Base64 = global.Base64;\n global.Base64 = _Base64;\n return Base64;\n };\n // export Base64\n global.Base64 = {\n VERSION: version,\n atob: atob,\n btoa: btoa,\n fromBase64: decode,\n toBase64: encode,\n utob: utob,\n encode: encode,\n encodeURI: encodeURI,\n btou: btou,\n decode: decode,\n noConflict: noConflict,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array\n };\n // if ES5 is available, make Base64.extendString() available\n if (typeof Object.defineProperty === 'function') {\n var noEnum = function (v) {\n return {\n value: v,\n enumerable: false,\n writable: true,\n configurable: true\n };\n };\n global.Base64.extendString = function () {\n Object.defineProperty(String.prototype, 'fromBase64', noEnum(function () {\n return decode(this);\n }));\n Object.defineProperty(String.prototype, 'toBase64', noEnum(function (urisafe) {\n return encode(this, urisafe);\n }));\n Object.defineProperty(String.prototype, 'toBase64URI', noEnum(function () {\n return encode(this, true);\n }));\n };\n }\n //\n // export Base64 to the namespace\n //\n if (global['Meteor']) {\n // Meteor.js\n Base64 = global.Base64;\n }\n // module.exports and AMD are mutually exclusive.\n // module.exports has precedence.\n if (typeof module !== 'undefined' && module.exports) {\n module.exports.Base64 = global.Base64;\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], function () {\n return global.Base64;\n });\n }\n // that's it!\n return {\n Base64: global.Base64\n };\n});","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _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 try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\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 return _wrapNativeSuper(Class);\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n function Dom7(items) {\n var _this;\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n var a = [];\n var res = context.querySelectorAll(selector);\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n return a;\n}\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n if (!selector) {\n return new Dom7(arr);\n }\n if (typeof selector === 'string') {\n var html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n}\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n return this;\n }\n return this;\n}\nfunction data(key, value) {\n var el;\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n var dataKey = el.getAttribute(\"data-\" + key);\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n } // Set value\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n}\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n return dataset;\n}\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n return values;\n }\n return el.value;\n } // set value\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n return this;\n}\nfunction value(value) {\n return this.val(value);\n}\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n return this;\n}\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n var events = eventType.split(' ');\n var j;\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n return this;\n}\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n var events = eventType.split(' ');\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n return this;\n}\nfunction once() {\n var dom = this;\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\nfunction trigger() {\n var window = getWindow();\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n var events = args[0].split(' ');\n var eventData = args[1];\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n var dom = this;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n return this;\n}\nfunction animationEnd(callback) {\n var dom = this;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n return this;\n}\nfunction width() {\n var window = getWindow();\n if (this[0] === window) {\n return window.innerWidth;\n }\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n return null;\n}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction height() {\n var window = getWindow();\n if (this[0] === window) {\n return window.innerHeight;\n }\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n return null;\n}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n return null;\n}\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n return this;\n}\nfunction show() {\n var window = getWindow();\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n return this;\n}\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n var window = getWindow();\n var i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n}\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n if (selector === document) {\n return el === document;\n }\n if (selector === window) {\n return el === window;\n }\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n return false;\n}\nfunction index() {\n var child = this[0];\n var i;\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n if (index > length - 1) {\n return $([]);\n }\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n return $([this[index]]);\n}\nfunction append() {\n var newChild;\n var document = getDocument();\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n return this;\n}\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n}\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\nfunction insertBefore(selector) {\n var before = $(selector);\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\nfunction insertAfter(selector) {\n var after = $(selector);\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n return $([]);\n }\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n return $([]);\n}\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n el = _next;\n }\n return $(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n return $([]);\n }\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n return $([]);\n}\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n el = _prev;\n }\n return $(prevEls);\n}\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n return $(parents);\n}\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n _parent = _parent.parentNode;\n }\n }\n return $(parents);\n}\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n var foundElements = [];\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return $(foundElements);\n}\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return $(children);\n}\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n return this;\n}\nfunction detach() {\n return this.remove();\n}\nfunction add() {\n var dom = this;\n var i;\n var j;\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n return dom;\n}\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n el.textContent = '';\n }\n }\n return this;\n}\nfunction scrollTo() {\n var window = getWindow();\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n if (animateTop) {\n currentTop = el.scrollTop;\n if (!duration) {\n el.scrollTop = top;\n }\n }\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n if (!duration) return;\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n if (startTime === null) {\n startTime = time;\n }\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n if (done) {\n if (callback) callback();\n return;\n }\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n var dom = this;\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n var dom = this;\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n if (typeof easing === 'function') {\n return easing(progress);\n }\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n if (startTime === null) {\n startTime = time;\n }\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n if (done) {\n a.done(params.complete);\n return;\n }\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n if (a.elements.length === 0) {\n return els;\n }\n var animateInstance;\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n if (!animateInstance) {\n animateInstance = a;\n }\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n return els;\n}\nfunction stop() {\n var els = this;\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\nvar noTrigger = 'resize scroll'.split(' ');\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n return this;\n }\n return this.on.apply(this, [name].concat(args));\n }\n return eventHandler;\n}\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00IDE4VjVIMTZWMThDMTYgMTguMzUwNiAxNi4wNjAyIDE4LjY4NzIgMTYuMTcwNyAxOUg1QzQuNDQ3NzIgMTkgNCAxOC41NTIzIDQgMThaTTE5IDIxSDVDMy4zNDMxNSAyMSAyIDE5LjY1NjkgMiAxOFYzSDE2SDE3SDE4VjhIMjJWOVYxMFYxOEMyMiAxOS42NTY5IDIwLjY1NjkgMjEgMTkgMjFaTTE4IDEwSDIwVjE4QzIwIDE4LjU1MjMgMTkuNTUyMyAxOSAxOSAxOUMxOC40NDc3IDE5IDE4IDE4LjU1MjMgMTggMThWMTBaTTEwIDdWMTFINlY3SDEwWk0xNCAxMFY4SDExVjEwSDE0Wk0xNCAxMlYxNEg2VjEySDE0Wk0xNCAxN1YxNUg2VjE3SDE0WiIgZmlsbD0iIzAwODVGRiIvPgo8L3N2Zz4K\"","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\nexport default unitlessKeys;","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Dimen } from \"../constants\";\n\ntype Align = \"flex-start\" | \"center\" | \"flex-end\";\n\ntype Props = {\n align: Align;\n md?: Align;\n xs?: Align;\n children: React.ReactNode;\n};\n\nexport default function HorizontalAlign({ align, md, xs, children }: Props) {\n return (\n \n {children}\n \n );\n}\n\nconst StyledContainer = styled(\"div\")<{\n $align: Align;\n $md?: Align;\n $xs?: Align;\n}>`\n display: flex;\n flex-direction: column;\n align-items: ${(p) => p.$align};\n\n ${(p) =>\n p.$md &&\n `@media (max-width: ${Dimen.breakpointDownMd}px) { align-items: ${p.$md}; }`}\n ${(p) =>\n p.$xs &&\n `@media (max-width: ${Dimen.breakpointDownXs}px) { align-items: ${p.$xs}; }`}\n`;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.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.not = exports.unsafeCoerce = exports.identity = exports.getEndomorphismMonoid = exports.getRing = exports.getSemiring = exports.getMonoid = exports.getSemigroup = exports.getBooleanAlgebra = void 0;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getBooleanAlgebra = function (B) {\n return function () {\n return {\n meet: function (x, y) {\n return function (a) {\n return B.meet(x(a), y(a));\n };\n },\n join: function (x, y) {\n return function (a) {\n return B.join(x(a), y(a));\n };\n },\n zero: function () {\n return B.zero;\n },\n one: function () {\n return B.one;\n },\n implies: function (x, y) {\n return function (a) {\n return B.implies(x(a), y(a));\n };\n },\n not: function (x) {\n return function (a) {\n return B.not(x(a));\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 */\nvar getSemigroup = function (S) {\n return function () {\n return {\n concat: function (f, g) {\n return function (a) {\n return S.concat(f(a), g(a));\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, 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 */\nvar getMonoid = function (M) {\n var getSemigroupM = exports.getSemigroup(M);\n return function () {\n return {\n concat: getSemigroupM().concat,\n empty: function () {\n return M.empty;\n }\n };\n };\n};\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getSemiring = function (S) {\n return {\n add: function (f, g) {\n return function (x) {\n return S.add(f(x), g(x));\n };\n },\n zero: function () {\n return S.zero;\n },\n mul: function (f, g) {\n return function (x) {\n return S.mul(f(x), g(x));\n };\n },\n one: function () {\n return S.one;\n }\n };\n};\nexports.getSemiring = getSemiring;\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getRing = function (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 (f, g) {\n return function (x) {\n return R.sub(f(x), g(x));\n };\n }\n };\n};\nexports.getRing = getRing;\n/**\n * Endomorphism form a monoid where the `empty` value is the identity function.\n *\n * @category instances\n * @since 2.10.0\n */\nvar getEndomorphismMonoid = function () {\n return {\n concat: function (x, y) {\n return function (a) {\n return y(x(a));\n };\n },\n empty: identity\n };\n};\nexports.getEndomorphismMonoid = getEndomorphismMonoid;\n/**\n * @since 2.0.0\n */\nfunction identity(a) {\n return a;\n}\nexports.identity = identity;\n/**\n * @since 2.0.0\n */\nexports.unsafeCoerce = identity;\n/**\n * @since 2.0.0\n */\nfunction not(predicate) {\n return function (a) {\n return !predicate(a);\n };\n}\nexports.not = not;\n/**\n * @since 2.0.0\n */\nfunction constant(a) {\n return function () {\n return a;\n };\n}\nexports.constant = constant;\n/**\n * A thunk that returns always `true`.\n *\n * @since 2.0.0\n */\nexports.constTrue = /*#__PURE__*/\nconstant(true);\n/**\n * A thunk that returns always `false`.\n *\n * @since 2.0.0\n */\nexports.constFalse = /*#__PURE__*/\nconstant(false);\n/**\n * A thunk that returns always `null`.\n *\n * @since 2.0.0\n */\nexports.constNull = /*#__PURE__*/\nconstant(null);\n/**\n * A thunk that returns always `undefined`.\n *\n * @since 2.0.0\n */\nexports.constUndefined = /*#__PURE__*/\nconstant(undefined);\n/**\n * A thunk that returns always `void`.\n *\n * @since 2.0.0\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 */\nfunction flip(f) {\n return function (b, a) {\n return f(a, b);\n };\n}\nexports.flip = flip;\nfunction flow(ab, bc, cd, de, ef, fg, gh, hi, ij) {\n switch (arguments.length) {\n case 1:\n return ab;\n case 2:\n return function () {\n return bc(ab.apply(this, arguments));\n };\n case 3:\n return function () {\n return cd(bc(ab.apply(this, arguments)));\n };\n case 4:\n return function () {\n return de(cd(bc(ab.apply(this, arguments))));\n };\n case 5:\n return function () {\n return ef(de(cd(bc(ab.apply(this, arguments)))));\n };\n case 6:\n return function () {\n return fg(ef(de(cd(bc(ab.apply(this, arguments))))));\n };\n case 7:\n return function () {\n return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));\n };\n case 8:\n return function () {\n return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));\n };\n case 9:\n return function () {\n return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));\n };\n }\n return;\n}\nexports.flow = flow;\n/**\n * @since 2.0.0\n */\nfunction tuple() {\n var t = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n t[_i] = arguments[_i];\n }\n return t;\n}\nexports.tuple = tuple;\n/**\n * @since 2.0.0\n */\nfunction increment(n) {\n return n + 1;\n}\nexports.increment = increment;\n/**\n * @since 2.0.0\n */\nfunction decrement(n) {\n return n - 1;\n}\nexports.decrement = decrement;\n/**\n * @since 2.0.0\n */\nfunction absurd(_) {\n throw new Error('Called `absurd` function which should be uncallable');\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 */\nfunction tupled(f) {\n return function (a) {\n return f.apply(void 0, a);\n };\n}\nexports.tupled = tupled;\n/**\n * Inverse function of `tupled`\n *\n * @since 2.4.0\n */\nfunction untupled(f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return f(a);\n };\n}\nexports.untupled = untupled;\nfunction pipe(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl, lm, mn, no, op, pq, qr, rs, st) {\n switch (arguments.length) {\n case 1:\n return a;\n case 2:\n return ab(a);\n case 3:\n return bc(ab(a));\n case 4:\n return cd(bc(ab(a)));\n case 5:\n return de(cd(bc(ab(a))));\n case 6:\n return ef(de(cd(bc(ab(a)))));\n case 7:\n return fg(ef(de(cd(bc(ab(a))))));\n case 8:\n return gh(fg(ef(de(cd(bc(ab(a)))))));\n case 9:\n return hi(gh(fg(ef(de(cd(bc(ab(a))))))));\n case 10:\n return ij(hi(gh(fg(ef(de(cd(bc(ab(a)))))))));\n case 11:\n return jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a))))))))));\n case 12:\n return kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a)))))))))));\n case 13:\n return lm(kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a))))))))))));\n case 14:\n return mn(lm(kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a)))))))))))));\n case 15:\n return no(mn(lm(kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a))))))))))))));\n case 16:\n return op(no(mn(lm(kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a)))))))))))))));\n case 17:\n return pq(op(no(mn(lm(kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a))))))))))))))));\n case 18:\n return qr(pq(op(no(mn(lm(kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a)))))))))))))))));\n case 19:\n return rs(qr(pq(op(no(mn(lm(kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a))))))))))))))))));\n case 20:\n return st(rs(qr(pq(op(no(mn(lm(kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a)))))))))))))))))));\n }\n return;\n}\nexports.pipe = pipe;\n/**\n * Type hole simulation\n *\n * @since 2.7.0\n */\nexports.hole = absurd;","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyMiAyMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMSAyMkM0LjkyNDg3IDIyIDAgMTcuMDc1MSAwIDExQzAgNC45MjQ4NyA0LjkyNDg3IDAgMTEgMEMxNy4wNzUxIDAgMjIgNC45MjQ4NyAyMiAxMUMyMiAxNy4wNzUxIDE3LjA3NTEgMjIgMTEgMjJaTTExIDIwQzE1Ljk3MDYgMjAgMjAgMTUuOTcwNiAyMCAxMUMyMCA2LjAyOTQ0IDE1Ljk3MDYgMiAxMSAyQzYuMDI5NDQgMiAyIDYuMDI5NDQgMiAxMUMyIDE1Ljk3MDYgNi4wMjk0NCAyMCAxMSAyMFpNMTQuMjkyOSA3LjI5Mjg5TDkgMTIuNTg1OEw2LjcwNzExIDEwLjI5MjlMNS4yOTI4OSAxMS43MDcxTDkgMTUuNDE0MkwxNS43MDcxIDguNzA3MTFMMTQuMjkyOSA3LjI5Mjg5WiIgZmlsbD0iI0ZFNjYzQSIvPgo8L3N2Zz4K\"",null,"module.exports = __webpack_public_path__ + \"static/logo_light-cd0b5915b0d1153a0f5b4394815572be.svg\";","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMiA0VjIwQzIyIDIxLjEwNDYgMjEuMTA0NiAyMiAyMCAyMkgxNkg4SDRDMi44OTU0MyAyMiAyIDIxLjEwNDYgMiAyMFY0QzIgMi44OTU0MyAyLjg5NTQzIDIgNCAySDhIMTZIMjBDMjEuMTA0NiAyIDIyIDIuODk1NDMgMjIgNFpNMTYgNEgyMFYxMUgxNlY0Wk0xNCAxM0gxMFYyMEgxNFYxM1pNMTAgMTFIMTRWNEgxMFYxMVpNOCAxMUg0VjRIOFYxMVpNOCAxM0g0VjIwSDhWMTNaTTE2IDIwVjEzSDIwVjIwSDE2WiIgZmlsbD0iI0ZFNjYzQSIvPgo8L3N2Zz4K\"",null,"module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMiAyMFYxM0gyMFYyMEg0VjRIMTFWMkg0QzIuODk1NDMgMiAyIDIuODk1NDMgMiA0VjIwQzIgMjEuMTA0NiAyLjg5NTQzIDIyIDQgMjJIMjBDMjEuMTA0NiAyMiAyMiAyMS4xMDQ2IDIyIDIwWk0xOS4xNzgxIDIuNzIzNDJDMTguNzE5NyAyLjI2MTQyIDE4LjA5MjEgMiAxNy40Mzc0IDJDMTYuNzgzNCAyIDE2LjE1NjQgMi4yNjA4MyAxNS42OTU0IDIuNzI0NjNMNy4zMjY1IDExLjA5MzRDNi41Nzg2NyAxMS43NTIzIDYuMDg4NDQgMTIuNzMyOCA2LjAwMzI1IDEzLjc4NzNMNiAxNy4wMDIzVjE4LjAwMjNIMTAuMTM0NkMxMS4yNjg5IDE3LjkyNDUgMTIuMjU5IDE3LjQyOTUgMTIuOTU3NSAxNi42MjM4TDIxLjI3OSA4LjMwNTg0QzIxLjc0MDcgNy44NDQxNiAyMi4wMDAxIDcuMjE3OTkgMjIuMDAwMSA2LjU2NTA4QzIyLjAwMDEgNS45MTIxNyAyMS43NDA3IDUuMjg2IDIxLjI3OSA0LjgyNDMyTDE5LjE3ODEgMi43MjM0MlpNMTAuMDY0IDE2LjAwNDhDMTAuNTk4MiAxNS45NjcgMTEuMDk1NSAxNS43MTg0IDExLjQ5NDggMTUuMjYxNkwxNy41NTY3IDkuMTk5NzJMMTQuODAyNCA2LjQ0NTI3TDguNjk2MSAxMi41NDk2QzguMjkwOTUgMTIuOTA3OSA4LjA0MDMxIDEzLjQwOTIgOCAxMy44Njc4VjE2LjAwMjlMMTAuMDY0IDE2LjAwNDhaTTE2LjIxNjkgNS4wMzEyOEwxOC45NzA5IDcuNzg1NTFMMTkuODY0OCA2Ljg5MTYyQzE5Ljk1MTQgNi44MDUwMiAyMC4wMDAxIDYuNjg3NTYgMjAuMDAwMSA2LjU2NTA4QzIwLjAwMDEgNi40NDI2IDE5Ljk1MTQgNi4zMjUxNCAxOS44NjQ4IDYuMjM4NTRMMTcuNzYxMSA0LjEzNDg2QzE3LjY3NTUgNC4wNDg1NSAxNy41NTg5IDQgMTcuNDM3NCA0QzE3LjMxNTggNCAxNy4xOTkyIDQuMDQ4NTUgMTcuMTEzNiA0LjEzNDg2TDE2LjIxNjkgNS4wMzEyOFoiIGZpbGw9IiMwMDg1RkYiLz4KPC9zdmc+Cg==\"","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModule = require('../internals/object-define-property');\nvar regExpFlags = require('../internals/regexp-flags');\nvar UNSUPPORTED_Y = require('../internals/regexp-sticky-helpers').UNSUPPORTED_Y;\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\n// eslint-disable-next-line es/no-regexp-prototype-flags -- required for testing\nif (DESCRIPTORS && (/./g.flags != 'g' || UNSUPPORTED_Y)) {\n objectDefinePropertyModule.f(RegExp.prototype, 'flags', {\n configurable: true,\n get: regExpFlags\n });\n}\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yIDIwQzIgMjEuMTA0NiAyLjg5NTQzIDIyIDQgMjJIMTcuNDE0MkwyMiAxNy40MTQyVjRDMjIgMi44OTU0MyAyMS4xMDQ2IDIgMjAgMkg0QzIuODk1NDMgMiAyIDIuODk1NDMgMiA0VjIwWk00IDRIMjBWMTVIMTdDMTUuODk1NCAxNSAxNSAxNS44OTU0IDE1IDE3VjIwSDRWNFpNMTcgMTdIMTkuNTg1OEwxNyAxOS41ODU4VjE3Wk03IDE1VjE3SDEzVjE1SDdaTTcgMTNWMTFIMTdWMTNIN1pNNyA3VjlIMTdWN0g3WiIgZmlsbD0iIzAwODVGRiIvPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2MCIgaGVpZ2h0PSI0MzUiIHZpZXdCb3g9IjAgMCAyNTYwIDQzNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9Im1hc2swIiBtYXNrLXR5cGU9ImFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMjU2MCIgaGVpZ2h0PSI0MzUiPgo8cmVjdCB3aWR0aD0iMjU2MCIgaGVpZ2h0PSI0MzUiIGZpbGw9IiNDNEM0QzQiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swKSI+CjxlbGxpcHNlIGN4PSIxMjgwIiBjeT0iNDAwMy41IiByeD0iMzk5OSIgcnk9IjM5OTkuNSIgZmlsbD0iI0ZFNjYzQSIgZmlsbC1vcGFjaXR5PSIwLjEiLz4KPGVsbGlwc2UgY3g9IjEyODAiIGN5PSI0MDYwLjUiIHJ4PSIzOTk5IiByeT0iMzk5OS41IiBmaWxsPSIjRkU2NjNBIiBmaWxsLW9wYWNpdHk9IjAuNCIvPgo8Y2lyY2xlIGN4PSIxMjgwIiBjeT0iNDExNyIgcj0iMzk5OSIgZmlsbD0iI0ZFNjYzQSIvPgo8Y2lyY2xlIGN4PSIxMjgwIiBjeT0iNDE3MyIgcj0iMzk5OSIgZmlsbD0iIzExMUQyNiIvPgo8L2c+Cjwvc3ZnPgo=\"","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, classesToSelector, createElementIfNotDefined } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\n }\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n var progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find(classesToSelector(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\">\";\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\" + ' / ' + (\"\");\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\";\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n swiper.params.pagination = createElementIfNotDefined(swiper.$el, swiper.params.pagination, swiper.params.createElements, {\n el: 'swiper-pagination'\n });\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n $el.addClass(params.modifierClass + params.type);\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.pagination.$el;\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n },\n click: function click(swiper, e) {\n var targetEl = e.target;\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","\"use strict\";\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 */\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.right = exports.left = exports.flap = exports.Functor = exports.Bifunctor = exports.URI = exports.bimap = exports.mapLeft = exports.map = exports.separated = void 0;\nvar function_1 = require(\"./function\");\nvar Functor_1 = require(\"./Functor\");\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.10.0\n */\nvar separated = function (left, right) {\n return {\n left: left,\n right: right\n };\n};\nexports.separated = separated;\n// -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\nvar _map = function (fa, f) {\n return function_1.pipe(fa, exports.map(f));\n};\nvar _mapLeft = function (fa, f) {\n return function_1.pipe(fa, exports.mapLeft(f));\n};\nvar _bimap = function (fa, g, f) {\n return function_1.pipe(fa, exports.bimap(g, f));\n};\n// -------------------------------------------------------------------------------------\n// type class members\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 */\nvar map = function (f) {\n return function (fa) {\n return exports.separated(exports.left(fa), f(exports.right(fa)));\n };\n};\nexports.map = map;\n/**\n * Map a function over the first type argument of a bifunctor.\n *\n * @category Bifunctor\n * @since 2.10.0\n */\nvar mapLeft = function (f) {\n return function (fa) {\n return exports.separated(f(exports.left(fa)), exports.right(fa));\n };\n};\nexports.mapLeft = mapLeft;\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 */\nvar bimap = function (f, g) {\n return function (fa) {\n return exports.separated(f(exports.left(fa)), g(exports.right(fa)));\n };\n};\nexports.bimap = bimap;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.URI = 'Separated';\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Bifunctor = {\n URI: exports.URI,\n mapLeft: _mapLeft,\n bimap: _bimap\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexports.Functor = {\n URI: exports.URI,\n map: _map\n};\n/**\n * Derivable from `Functor`.\n *\n * @category combinators\n * @since 2.10.0\n */\nexports.flap = /*#_PURE_*/\nFunctor_1.flap(exports.Functor);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.10.0\n */\nvar left = function (s) {\n return s.left;\n};\nexports.left = left;\n/**\n * @since 2.10.0\n */\nvar right = function (s) {\n return s.right;\n};\nexports.right = right;","import {\n buildFixedImageData,\n buildFluidImageData,\n IImgixParams,\n} from \"@imgix/gatsby\";\nimport {\n IGatsbyImageFixedData,\n IGatsbyImageFluidData,\n} from \"@imgix/gatsby/dist/modules/gatsby-transform-url/types\";\nimport { graphql } from \"gatsby\";\n\nexport const query = graphql`\n fragment ToolsBlogContent on PrismicBlogPostDataType {\n body {\n __typename\n ... on PrismicBlogPostBodyText {\n primary {\n content {\n text\n }\n }\n }\n }\n }\n\n fragment ToolsCaseStudyContent on PrismicCaseStudyDataType {\n body {\n __typename\n ... on PrismicCaseStudyBodyText {\n primary {\n content {\n text\n }\n }\n }\n }\n }\n`;\n\ntype ItemFragment =\n | GatsbyTypes.ToolsBlogContentFragment\n | GatsbyTypes.ToolsCaseStudyContentFragment;\n\n/**\n * Extract out a flat array of all the text paragraphs within the post\n */\nfunction extractParagraphs(item: ItemFragment): string[] {\n const paragraphs: string[] = [];\n // TypeScript can't handle the union?\n item.body?.forEach((slice: any) => {\n if (\n slice.__typename === \"PrismicBlogPostBodyText\" ||\n slice.__typename === \"PrismicCaseStudyBodyText\"\n ) {\n const text = slice.primary?.content.text;\n if (text && text.trim() !== \"\") {\n paragraphs.push(text.trim());\n }\n }\n });\n return paragraphs;\n}\n\nexport function calculateReadTime(item: ItemFragment): number {\n // Rough heuristic for number of minutes to read - characters per minute\n // https://en.wikipedia.org/wiki/Words_per_minute#Reading_and_comprehension\n return Math.ceil(extractParagraphs(item).join(\" \").length / 1000);\n}\n\n/**\n * Extract the first piece of text from a blog post, to be used as a preview\n * of the content.\n *\n * Make sure to pass the BlogContent fragment into the post you provide as a\n * prop.\n */\nexport function extractBlogSnippet(\n post: GatsbyTypes.ToolsBlogContentFragment\n): string {\n return extractParagraphs(post)[0]?.substr(0, 150) || \"\";\n}\n\nexport function fixedImage(\n image: { url: string | undefined },\n imgixParams: { w: number; h: number } & IImgixParams\n): IGatsbyImageFixedData {\n if (!image.url) throw new Error(\"image.url missing\");\n return buildFixedImageData(decodeURI(image.url), {\n auto: \"format,compress\",\n ...imgixParams,\n });\n}\n\nexport function fluidImage(\n image: any,\n /**\n * Shorthand for the common use-case where the image will be filling the\n * screen width, up to a certain point, at which it becomes a fixed width.\n */\n maxWidth: number | null,\n imgixParams?: IImgixParams,\n options?: { sizes: string }\n): IGatsbyImageFluidData {\n return buildFluidImageData(\n decodeURI(image.url),\n {\n auto: \"format,compress\",\n ar: image.dimensions.width / image.dimensions.height,\n ...imgixParams,\n } as any,\n { sizes: `(min-width: ${maxWidth}px) ${maxWidth}px, 100vw`, ...options }\n );\n}\n","let apiServer = \"https://server.shipamax.com\";\nlet appServer = \"https://app.shipamax.com\";\nlet emApiServer = \"https://developer.shipamax-api.com/api/v1\";\nlet emServer = \"https://em.shipamax.com\";\n\nswitch (process.env.DEPLOY_ENV) {\n case \"development\":\n apiServer = \"http://localhost:4000\";\n appServer = \"http://localhost:3000\";\n emApiServer = \"http://localhost:5000/api/v1\";\n emServer = \"http://localhost:3334\";\n break;\n case \"staging\":\n apiServer = \"https://backend-staging.shipamax.com\";\n appServer = \"https://staging-app.shipamax.com\";\n emApiServer = \"\";\n emServer = \"\";\n break;\n case \"test\":\n apiServer = \"http://backend-test.shipamax-test.com\";\n appServer = \"http://app.shipamax-test.com\";\n emApiServer = \"\";\n emServer = \"\";\n break;\n}\n\nexport default {\n // Root URL for canonical SEO URLs etc.\n // TODO: Make dynamic\n rootUrl: \"https://shipamax.com\",\n contactEmail: \"sales@shipamax.com\",\n apiServer,\n appServer,\n emApiServer,\n emServer,\n};\n","export default {\n columnWidth: 68,\n gridWidth: 1080,\n gutterWidth: 24,\n\n // based on https://getbootstrap.com/docs/5.0/layout/breakpoints/\n breakpointDownXs: 575,\n breakpointDownSm: 767,\n breakpointDownMd: 991,\n breakpointDownLg: 1199,\n breakpointDownXl: 1399,\n};\n","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport $ from '../../utils/dom';\nimport { bindModuleMethods, classesToSelector } from '../../utils/utils';\nvar A11y = {\n getRandomNumber: function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n var randomChar = function randomChar() {\n return Math.round(16 * Math.random()).toString(16);\n };\n return 'x'.repeat(size).replace(/x/g, randomChar);\n },\n makeElFocusable: function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable: function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole: function addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElRoleDescription: function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n return $el;\n },\n addElControls: function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n return $el;\n },\n addElLabel: function addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n addElId: function addElId($el, id) {\n $el.attr('id', id);\n return $el;\n },\n addElLive: function addElLive($el, live) {\n $el.attr('aria-live', live);\n return $el;\n },\n disableEl: function disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl: function enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterOrSpaceKey: function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n var swiper = this;\n var params = swiper.params.a11y;\n var $targetEl = $(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n },\n notify: function notify(message) {\n var swiper = this;\n var notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation: function updateNavigation() {\n var swiper = this;\n if (swiper.params.loop || !swiper.navigation) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination: function updatePagination() {\n var swiper = this;\n var params = swiper.params.a11y;\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each(function (bulletEl) {\n var $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n });\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.a11y;\n swiper.$el.append(swiper.a11y.liveRegion); // Container\n\n var $containerEl = swiper.$el;\n if (params.containerRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n if (params.containerMessage) {\n swiper.a11y.addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n var $wrapperEl = swiper.$wrapperEl;\n var wrapperId = $wrapperEl.attr('id') || \"swiper-wrapper-\" + swiper.a11y.getRandomNumber(16);\n var live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n swiper.a11y.addElId($wrapperEl, wrapperId);\n swiper.a11y.addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n swiper.a11y.addElRole($(swiper.slides), params.slideRole);\n swiper.slides.each(function (slideEl) {\n var $slideEl = $(slideEl);\n var ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, $slideEl.index() + 1).replace(/\\{\\{slidesLength\\}\\}/, swiper.slides.length);\n swiper.a11y.addElLabel($slideEl, ariaLabelMessage);\n }); // Navigation\n\n var $nextEl;\n var $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl && $nextEl.length) {\n swiper.a11y.makeElFocusable($nextEl);\n if ($nextEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($nextEl, 'button');\n $nextEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n swiper.a11y.addElControls($nextEl, wrapperId);\n }\n if ($prevEl && $prevEl.length) {\n swiper.a11y.makeElFocusable($prevEl);\n if ($prevEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($prevEl, 'button');\n $prevEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n swiper.a11y.addElControls($prevEl, wrapperId);\n } // Pagination\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n var $nextEl;\n var $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterOrSpaceKey);\n } // Pagination\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n }\n }\n};\nexport default {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n a11y: _extends({}, A11y, {\n liveRegion: $(\"\")\n })\n });\n },\n on: {\n afterInit: function afterInit(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge: function toEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge: function fromEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate: function paginationUpdate(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy: function destroy(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n }\n }\n};","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xIDEyQzEgMTguMDc1MSA1LjkyNDg3IDIzIDEyIDIzQzE4LjA3NTEgMjMgMjMgMTguMDc1MSAyMyAxMkMyMyA1LjkyNDg3IDE4LjA3NTEgMSAxMiAxQzUuOTI0ODcgMSAxIDUuOTI0ODcgMSAxMlpNMjEgMTJDMjEgMTYuOTcwNiAxNi45NzA2IDIxIDEyIDIxQzcuMDI5NDQgMjEgMyAxNi45NzA2IDMgMTJDMyA3LjAyOTQ0IDcuMDI5NDQgMyAxMiAzQzE2Ljk3MDYgMyAyMSA3LjAyOTQ0IDIxIDEyWk0xMy4wMDM2IDEzLjk5ODNIMTQuMDAzVjE1Ljk5ODNIMTAuMDAzVjEzLjk5ODNIMTEuMDAzVjExLjk5ODNIMTAuMDAzVjkuOTk4MzVIMTMuMDAzNlYxMy45OTgzWk0xMy4wMDA3IDcuOTk4MzVDMTMuMDAwNyA4LjU1MDYzIDEyLjU1MjggOC45OTgzNSAxMi4wMDAzIDguOTk4MzVDMTEuNDQ3OSA4Ljk5ODM1IDExIDguNTUwNjMgMTEgNy45OTgzNUMxMSA3LjQ0NjA2IDExLjQ0NzkgNi45OTgzNSAxMi4wMDAzIDYuOTk4MzVDMTIuNTUyOCA2Ljk5ODM1IDEzLjAwMDcgNy40NDYwNiAxMy4wMDA3IDcuOTk4MzVaIiBmaWxsPSIjMDA4NUZGIi8+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2MCIgaGVpZ2h0PSI0MzUiIHZpZXdCb3g9IjAgMCAyNTYwIDQzNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9Im1hc2swIiBtYXNrLXR5cGU9ImFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMjU2MCIgaGVpZ2h0PSI0MzYiPgo8cmVjdCB4PSIyNTYwIiB5PSI0MzUiIHdpZHRoPSIyNTYwIiBoZWlnaHQ9IjQzNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDI1NjAgNDM1KSIgZmlsbD0iI0M0QzRDNCIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPGVsbGlwc2UgY3g9IjEyODAiIGN5PSItMzU2OC41IiByeD0iMzk5OSIgcnk9IjM5OTkuNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDEyODAgLTM1NjguNSkiIGZpbGw9IiNmZmZmZmYiLz4KPGVsbGlwc2UgY3g9IjEyODAiIGN5PSItMzYyNS41IiByeD0iMzk5OSIgcnk9IjM5OTkuNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDEyODAgLTM2MjUuNSkiIGZpbGw9IiNmOWY5ZjkiLz4KPGNpcmNsZSBjeD0iMTI4MCIgY3k9Ii0zNjgyIiByPSIzOTk5IiB0cmFuc2Zvcm09InJvdGF0ZSgxODAgMTI4MCAtMzY4MikiIGZpbGw9IiNmMWYxZjEiLz4KPC9nPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxMiAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wLjgzMjAzMSAwLjk5OTc4OFYxMi45OTk4QzAuODMyMDMxIDEzLjUyNzIgMS40MTU1MyAxMy44NDU4IDEuODU5MiAxMy41NjA2TDExLjE5MjUgNy41NjA1N0MxMS42MDA4IDcuMjk4MTUgMTEuNjAwOCA2LjcwMTQzIDExLjE5MjUgNi40MzlMMS44NTkyIDAuNDM5MDAzQzEuNDE1NTMgMC4xNTM3ODMgMC44MzIwMzEgMC40NzIzNDQgMC44MzIwMzEgMC45OTk3ODhaTTkuNTk5MTkgNi45OTk3OUwyLjE2NTM2IDExLjc3ODdWMi4yMjA5TDkuNTk5MTkgNi45OTk3OVoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABx0lEQVR4AZXBv28SYRwH4M/3veOueqblsGlSaoi2VlkMOBkdLJNDpYvtrumug0T3wtgJ7EZr/wMdbcrSdKEOkmCwAkkTTTFIE/G9EjwOuMMbbrhcoD+ehzCET2C+1btTq8/vTL0I+6+E9b6l5xutfKZUT+/XtX24EDz8suj/8CT8MTY9HoOHNYCVLByvpQq11MAGmwAXsm0t3H6/FFKXMAQRaCE4EatqnWqp+a8EmwCXyKQSzTyazRCBYMv90nJvP/98s1PjO5GAElFlUSWAotev3X9XqmdgE+ESD6lPGYHBdvhXP4x/+h7vWVYXtoNGK19ciX6VGElz4/IsHAwuM4p8A47dGt/tWVYXjgrXK1VNr8KDwYUGIDjmJ8bm4aL4BCV4VQrCg2GExZC6+PLe9CsfY5I65lOzj+c2A7IYgK3VM1twiBiBAEo/vJVef3BzXSASBIIAx8a33xtwiDiHxEiCy179dC9VOE7CIeKCmka/mS03sskvtbVO3+rAIeIM25WT7a3KyaZhWkaZ6+V2z2zDQ8QIR6edo8TBj9fc6HOcgWEIrWtqK7nKMjf6HOcQ4cG7Jl/OlZ8V/7SLuKxEZCYRmVSiuIT/2RarQ9wwYJgAAAAASUVORK5CYII=\"","import { getWindow, getDocument } from 'ssr-window';\nvar support;\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!device) {\n device = calcDevice(overrides);\n }\n return device;\n}\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\nfunction calcBrowser() {\n var window = getWindow();\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\nvar supportsResizeObserver = function supportsResizeObserver() {\n var window = getWindow();\n return typeof window.ResizeObserver !== 'undefined';\n};\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n observer: null,\n createObserver: function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.resize.observer = new ResizeObserver(function (entries) {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref) {\n var contentBoxSize = _ref.contentBoxSize,\n contentRect = _ref.contentRect,\n target = _ref.target;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n swiper.resize.resizeHandler();\n }\n });\n swiper.resize.observer.observe(swiper.el);\n },\n removeObserver: function removeObserver() {\n if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n swiper.resize.observer.unobserve(swiper.el);\n swiper.resize.observer = null;\n }\n },\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow();\n if (swiper.params.resizeObserver && supportsResizeObserver()) {\n swiper.resize.createObserver();\n return;\n } // Emit resize\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n swiper.resize.removeObserver();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n enabled = swiper.enabled;\n if (!enabled) return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root componenet\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n swiper.emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n } // Find current slide\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\nfunction dummyEventListener() {}\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: false,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\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}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\n/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n if (params.el && $(params.el).length > 1) {\n var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n var swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n swiper.$ = $; // Extend Swiper\n\n extend(swiper, {\n enabled: swiper.params.enabled,\n el: el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n return swiper;\n }\n var _proto = Swiper.prototype;\n _proto.enable = function enable() {\n var swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n };\n _proto.disable = function disable() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n };\n _proto.setProgress = function setProgress(progress, speed) {\n var swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n var min = swiper.minTranslate();\n var max = swiper.maxTranslate();\n var current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n };\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n };\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n };\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n var translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n };\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n var swiper = this;\n var currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n _proto.mount = function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n var getWrapperSelector = function getWrapperSelector() {\n return \".\" + (swiper.params.wrapperClass || '').trim().split(' ').join('.');\n };\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = function (options) {\n return $el.children(options);\n };\n return res;\n }\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n var $wrapperEl = getWrapper();\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n var document = getDocument();\n var wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\" + swiper.params.slideClass).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n };\n _proto.init = function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n };\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n };\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n };\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n return Swiper;\n}();\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n var offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n var offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? params.spaceBetween && params.spaceBetween + \"px\" : '');\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = getComputedStyle(slide[0]);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = slideSize + \"px\";\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n if (params.setWrapperSize) {\n var _$wrapperEl$css;\n $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n }\n if (params.slidesPerColumn > 1) {\n var _$wrapperEl$css2;\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (params.spaceBetween !== 0) {\n var _slides$filter$css;\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(function (_, slideIndex) {\n if (!params.cssMode) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).css((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var newHeight = 0;\n var i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n var getSlideByIndex = function getSlideByIndex(index) {\n if (isVirtual) {\n return swiper.slides.filter(function (el) {\n return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n })[0];\n }\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n activeSlide.addClass(params.slideActiveClass);\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n } // Get real index\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n var slideIndex;\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n var dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit('transitionStart');\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit('transitionEnd');\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + typeof index + \"] given.\");\n }\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n index = indexAsNumber;\n }\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl,\n enabled = swiper.enabled;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGird = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGird) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n var newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n var prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n slide.attr('data-swiper-slide-index', index);\n });\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n if (params.loop) {\n swiper.loopDestroy();\n }\n var newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n var baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n var wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n swiper.emitContainerClasses();\n }\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n var isEnabled = swiper.params.enabled;\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = currentHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n if (base === 'window') {\n if (window.matchMedia(\"(min-width: \" + value + \"px)\").matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","function prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (typeof item === 'object') {\n Object.keys(item).forEach(function (classNames) {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nexport default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': support.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n function onReady() {\n if (callback) callback();\n }\n var isPicture = $(imageEl).parent('picture')[0];\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}",null,"require(\"core-js/modules/es.regexp.flags.js\");\n/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done) if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) if (a[i] !== b[i]) return false;\n return true;\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 for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zIDNIMjFDMjIuMTA0NiAzIDIzIDMuODk1NDMgMjMgNVYxOUMyMyAyMC4xMDQ2IDIyLjEwNDYgMjEgMjEgMjFIM0MxLjg5NTQzIDIxIDEgMjAuMTA0NiAxIDE5VjVDMSAzLjg5NTQzIDEuODk1NDMgMyAzIDNaTTMgNVYxOUgyMVY1SDNaTTcgMTdIOVYxMUg3VjE3Wk0xMyAxN0gxMVY3SDEzVjE3Wk0xNSAxN0gxN1YxMEgxNVYxN1oiIGZpbGw9IiMwMDg1RkYiLz4KPC9zdmc+Cg==\"","module.exports = __webpack_public_path__ + \"static/logo_dark-ac5eca4454ec35089b1bc20c3feb3b63.svg\";","import { getDocument, getWindow } from 'ssr-window';\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n var window = getWindow();\n var style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = getComputedStyle(el, null);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype']; // eslint-disable-next-line\n\n var HTMLElement = typeof window !== 'undefined' ? window.HTMLElement : undefined;\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !(HTMLElement && nextSource instanceof HTMLElement)) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n instance[key] = obj[key];\n });\n}\nfunction classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return \".\" + classes.trim().replace(/([\\.:\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.');\n}\nfunction createElementIfNotDefined($container, params, createElements, checkProps) {\n var document = getDocument();\n if (createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = document.createElement('div');\n element.className = checkProps[key];\n $container.append(element);\n params[key] = element;\n }\n });\n }\n return params;\n}\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle, classesToSelector, createElementIfNotDefined };","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5IDE1QzIxLjIwOTEgMTUgMjMgMTYuNzkwOSAyMyAxOVYyMUgyMSIgc3Ryb2tlPSIjMDA4NUZGIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTE2IDEwLjg3M0MxNy43MjUyIDEwLjQyODkgMTkgOC44NjI4MiAxOSA2Ljk5ODk4QzE5IDUuMTM1MTQgMTcuNzI1MiAzLjU2OTA0IDE2IDMuMTI1IiBzdHJva2U9IiMwMDg1RkYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNOSAxMUMxMS4yMDkxIDExIDEzIDkuMjA5MTQgMTMgN0MxMyA0Ljc5MDg2IDExLjIwOTEgMyA5IDNDNi43OTA4NiAzIDUgNC43OTA4NiA1IDdDNSA5LjIwOTE0IDYuNzkwODYgMTEgOSAxMVoiIHN0cm9rZT0iIzAwODVGRiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTEzIDE1SDVDMi43OTA4NiAxNSAxIDE2Ljc5MDkgMSAxOVYyMUgxN1YxOUMxNyAxNi43OTA5IDE1LjIwOTEgMTUgMTMgMTVaIiBzdHJva2U9IiMwMDg1RkYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAACxLAAAsSwGlPZapAAAEUklEQVRYw7VXTahNURQ+7rt+XkoxIi+Un4EMpbP3vU8UBmLAwEQxePece/2TwRswQYxMlWQgmShlzEgihIlkgFKUkaJE3j3n7O1ba6997r6vR+e6z6nV3udn72/tb/2eKJrhsqmODIQujHOKRNX8uyLVGnIBzx9A3kM+QB6aRF/GuNOmjQX+W9zzOryLTDuOKl2208RC1beBzHdjo6e207D26Li1h5qW5+2Gm9Ozw02Lb0ihU8G6EVY80dUUMInuA7cnxutQ6IY94gCKVBX4JsP7HFKIYK4yMJWzUsfGLe6f4flKx5oaiQa5sHgOg7fVKDZ5bI9tJmAHmmgDExiTKIwQ3ON7Y3hkyfGsSwrj+RfI+oGUIAYKUQCL79jjAE/0LwEgRRgMpy0gmT85P6f3STlOMWOJ/pi31JLqp0+cptg4IbvitF0HqEsAYoOpJrP0bE8KFaWSGLHHFJkD97cHMkGRxouw6DOB+E0FnOcEjPknyF2A3ML4wh5qsFNiXS7gRtgq6B3mW6srkKgDdDJxNg9uLIG7+Zks1aP9SqsdpBRFBJkkVFoO8moQBe7KKUkBRz95ONtUdcIQw/0IQpEjJk/i1VDkq217tpT3m4LCtRJ4t9UYBeA7ps3ZlbycwSm0GLila95R3ZpNFOfzRfnTzB47Jzur952iYgjqZZBvdAo+vbNjRqGITc9KNqw7sJioh+M2CJgVKlpqXemMDlxY0KYi/fEYFv605QYc65mLa92SCBnJ02aUdWLvtGXuwLgUIgfw0eCkagSM4VQ/bBlOrEBXGDgnNNc9MEzl/aYmDGywgeN6BiiUK5ogHjOiQM+JdO68W79Gfiwd0KRNLlqmTQVLz5NoOB/6QI+Fyj4wXYFyAzYDAC72zLUxKiY2haGoIN2QPQ9eOQpmYqBMKqCTogP31zBfXa7pNBfi/QQo/y7JqOjZXjF7GO8PY4KyDtBcHHIKdn2J8Qmo/myPoCS3dQDex0Bu2mrNEAz08rurgDAHZUXkBpYOscJV0J88qAXkvPryAKV4ZgX8xr4oMUjCPUHuEpbufeu8/xeX8UQ9ertnbzRrCoSmmIEZep5x1Djw54iQJZIfasMq0JdWfS9gCJDmlKykUkpBut6diOthjhjOBwJwcjbuA6YJZVDIPcj2oLDVZBxKATOttFIvMIn3V/D8KuaXYIL9eapWlcAtVaOOWuaRObnlnxXwLRjNMynT+/7YVaMokb3t5BbJETrKUzWEE5bU6ylpTm+KU83FM+4HuC9AgaISncv/BLX3WSuOBr5CBQIP70oz8iZP4wViU6l+mu3rgfOq/f/fFPDV0AQNKEC+QbG1YYtd2bEGakhdP/BD0mpXGhOaN/qaEdjVHtazr4BJ2AQ/Kbvxb5dTZJf8M9T9b1b+P05fNiSgm4oLVTeAb5P/BQa3B5vVfzT/kYHlriFVHwv5rTJCOztZW0X/9QIDKwB8AxQvDm3O4Ons2/w3cE8Q18FDQKcAAAAASUVORK5CYII=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS40MTQyIDFINUMzLjg5NTQzIDEgMyAxLjg5NTQzIDMgM1YyMUMzIDIyLjEwNDYgMy44OTU0MyAyMyA1IDIzSDE5QzIwLjEwNDYgMjMgMjEgMjIuMTA0NiAyMSAyMVY2LjU4NTc5TDE1LjQxNDIgMVpNNSAzSDEzVjdDMTMgOC4xMDQ1NyAxMy44OTU0IDkgMTUgOUgxOVYyMUg1VjNaTTE1IDdWMy40MTQyMUwxOC41ODU4IDdIMTVaTTEzIDE4VjEzLjQxNDJMMTQuMjkyOSAxNC43MDcxTDE1LjcwNzEgMTMuMjkyOUwxMiA5LjU4NTc5TDguMjkyODkgMTMuMjkyOUw5LjcwNzExIDE0LjcwNzFMMTEgMTMuNDE0MlYxOEgxM1oiIGZpbGw9IiMwMDg1RkYiLz4KPC9zdmc+Cg==\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTUwIiBoZWlnaHQ9IjE2MiIgdmlld0JveD0iMCAwIDk1MCAxNjIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMCIgbWFzay10eXBlPSJhbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIxNjIiPgo8cmVjdCB3aWR0aD0iOTUwIiBoZWlnaHQ9IjE2MS40MjYiIGZpbGw9IiNDNEM0QzQiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swKSI+CjxlbGxpcHNlIGN4PSI0NzQuOTk4IiBjeT0iMTQ4NS42OCIgcng9IjE0ODQiIHJ5PSIxNDg0LjE5IiBmaWxsPSIjRkU2NjNBIiBmaWxsLW9wYWNpdHk9IjAuMSIvPgo8ZWxsaXBzZSBjeD0iNDc0Ljk5OCIgY3k9IjE1MDYuODQiIHJ4PSIxNDg0IiByeT0iMTQ4NC4xOSIgZmlsbD0iI0ZFNjYzQSIgZmlsbC1vcGFjaXR5PSIwLjQiLz4KPGNpcmNsZSBjeD0iNDc0Ljk5OCIgY3k9IjE1MjcuOCIgcj0iMTQ4NCIgZmlsbD0iI0ZFNjYzQSIvPgo8Y2lyY2xlIGN4PSI0NzQuOTk4IiBjeT0iMTU0OC41OCIgcj0iMTQ4NCIgZmlsbD0iIzExMUQyNiIvPgo8L2c+Cjwvc3ZnPgo=\"",null,"/**\n * Palette of Shipamax colors to be used throughout the Styled Components.\n *\n * Following the naming defined in the Figma Color Styles.\n */\nexport default {\n blue1: \"#0085FF\",\n blue2: \"#CCE7FF\",\n blue3: \"#66B6FF\",\n blue4: \"#004380\",\n\n dark1: \"#A19FBF\",\n dark2: \"#484373\",\n dark3: \"#2A2945\",\n dark4: \"#13131F\",\n\n green1: \"#07E8C7\",\n green2: \"#C1FFFB\",\n green3: \"#83FFF7\",\n green4: \"#05A298\",\n\n // called light but are in fact a spectrum from\n // white to mid-value grey\n light1: \"#FFFFFF\",\n light2: \"#FBFBFB\",\n light3: \"#F9F9F9\",\n light4: \"#F1F1F1\",\n light5: \"#DBDBDB\",\n light6: \"#A6A6A6\",\n light7: \"#7C7C7C\",\n\n lightBlue1: \"#2ECBFF\",\n lightBlue2: \"#BFEFFF\",\n lightBlue3: \"#66D8FF\",\n lightBlue4: \"#007DA6\",\n\n newDark1: \"#1A2D3A\",\n newDark2: \"#111D26\",\n\n orange1: \"#FE663A\",\n orange2: \"#FFD9CE\",\n orange3: \"#FFB39D\",\n orange4: \"#B24829\",\n\n secondaryOrange1: \"#E84118\",\n secondaryOrange2: \"#FFD1C6\",\n secondaryOrange3: \"#FFA48D\",\n secondaryOrange4: \"#A22E11\",\n secondaryPurple1: \"#9C88FF\",\n secondaryPurple2: \"#E4E7FF\",\n secondaryPurple4: \"#676EB3\",\n secondaryGreen1: \"#2ECC71\",\n secondaryGreen2: \"#CEFFEE\",\n secondaryGreen3: \"#9CFFDC\",\n secondaryGreen4: \"#208F68\",\n\n violet1: \"#6652EB\",\n violet2: \"#E5E1FE\",\n violet3: \"#998DEB\",\n violet4: \"#3E376B\",\n\n yellow1: \"#FFE533\",\n yellow2: \"#FFF7C9\",\n yellow3: \"#FFEC85\",\n yellow4: \"#AD961C\",\n};\n","/*!\n * jsUri\n * https://github.com/derek-watson/jsUri\n *\n * Copyright 2013, Derek Watson\n * Released under the MIT license.\n *\n * Includes parseUri regular expressions\n * http://blog.stevenlevithan.com/archives/parseuri\n * Copyright 2007, Steven Levithan\n * Released under the MIT license.\n */\n\n/*globals define, module */\n\n(function (global) {\n var re = {\n starts_with_slashes: /^\\/+/,\n ends_with_slashes: /\\/+$/,\n pluses: /\\+/g,\n query_separator: /[&;]/,\n uri_parser: /^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@\\/]*)(?::([^:@]*))?)?@)?(\\[[0-9a-fA-F:.]+\\]|[^:\\/?#]*)(?::(\\d+|(?=:)))?(:)?)((((?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/\n };\n\n /**\n * Define forEach for older js environments\n * @see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEach#Compatibility\n */\n if (!Array.prototype.forEach) {\n Array.prototype.forEach = function (callback, thisArg) {\n var T, k;\n if (this == null) {\n throw new TypeError(' this is null or not defined');\n }\n var O = Object(this);\n var len = O.length >>> 0;\n if (typeof callback !== \"function\") {\n throw new TypeError(callback + ' is not a function');\n }\n if (arguments.length > 1) {\n T = thisArg;\n }\n k = 0;\n while (k < len) {\n var kValue;\n if (k in O) {\n kValue = O[k];\n callback.call(T, kValue, k, O);\n }\n k++;\n }\n };\n }\n\n /**\n * unescape a query param value\n * @param {string} s encoded value\n * @return {string} decoded value\n */\n function decode(s) {\n if (s) {\n s = s.toString().replace(re.pluses, '%20');\n s = decodeURIComponent(s);\n }\n return s;\n }\n\n /**\n * Breaks a uri string down into its individual parts\n * @param {string} str uri\n * @return {object} parts\n */\n function parseUri(str) {\n var parser = re.uri_parser;\n var parserKeys = [\"source\", \"protocol\", \"authority\", \"userInfo\", \"user\", \"password\", \"host\", \"port\", \"isColonUri\", \"relative\", \"path\", \"directory\", \"file\", \"query\", \"anchor\"];\n var m = parser.exec(str || '');\n var parts = {};\n parserKeys.forEach(function (key, i) {\n parts[key] = m[i] || '';\n });\n return parts;\n }\n\n /**\n * Breaks a query string down into an array of key/value pairs\n * @param {string} str query\n * @return {array} array of arrays (key/value pairs)\n */\n function parseQuery(str) {\n var i, ps, p, n, k, v, l;\n var pairs = [];\n if (typeof str === 'undefined' || str === null || str === '') {\n return pairs;\n }\n if (str.indexOf('?') === 0) {\n str = str.substring(1);\n }\n ps = str.toString().split(re.query_separator);\n for (i = 0, l = ps.length; i < l; i++) {\n p = ps[i];\n n = p.indexOf('=');\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 return pairs;\n }\n\n /**\n * Creates a new Uri object\n * @constructor\n * @param {string} str\n */\n function Uri(str) {\n this.uriParts = parseUri(str);\n this.queryPairs = parseQuery(this.uriParts.query);\n this.hasAuthorityPrefixUserPref = null;\n }\n\n /**\n * Define getter/setter methods\n */\n ['protocol', 'userInfo', 'host', 'port', 'path', 'anchor'].forEach(function (key) {\n Uri.prototype[key] = function (val) {\n if (typeof val !== 'undefined') {\n this.uriParts[key] = val;\n }\n return this.uriParts[key];\n };\n });\n\n /**\n * if there is no protocol, the leading // can be enabled or disabled\n * @param {Boolean} val\n * @return {Boolean}\n */\n Uri.prototype.hasAuthorityPrefix = function (val) {\n if (typeof val !== 'undefined') {\n this.hasAuthorityPrefixUserPref = val;\n }\n if (this.hasAuthorityPrefixUserPref === null) {\n return this.uriParts.source.indexOf('//') !== -1;\n } else {\n return this.hasAuthorityPrefixUserPref;\n }\n };\n Uri.prototype.isColonUri = function (val) {\n if (typeof val !== 'undefined') {\n this.uriParts.isColonUri = !!val;\n } else {\n return !!this.uriParts.isColonUri;\n }\n };\n\n /**\n * Serializes the internal state of the query pairs\n * @param {string} [val] set a new query string\n * @return {string} query string\n */\n Uri.prototype.query = function (val) {\n var s = '',\n i,\n param,\n l;\n if (typeof val !== 'undefined') {\n this.queryPairs = parseQuery(val);\n }\n for (i = 0, l = this.queryPairs.length; i < l; i++) {\n param = this.queryPairs[i];\n if (s.length > 0) {\n s += '&';\n }\n if (param[1] === null) {\n s += param[0];\n } else {\n s += param[0];\n s += '=';\n if (typeof param[1] !== 'undefined') {\n s += encodeURIComponent(param[1]);\n }\n }\n }\n return s.length > 0 ? '?' + s : s;\n };\n\n /**\n * returns the first query param value found for the key\n * @param {string} key query key\n * @return {string} first value found for key\n */\n Uri.prototype.getQueryParamValue = function (key) {\n var param, i, l;\n for (i = 0, l = this.queryPairs.length; i < l; i++) {\n param = this.queryPairs[i];\n if (key === param[0]) {\n return param[1];\n }\n }\n };\n\n /**\n * returns an array of query param values for the key\n * @param {string} key query key\n * @return {array} array of values\n */\n Uri.prototype.getQueryParamValues = function (key) {\n var arr = [],\n i,\n param,\n l;\n for (i = 0, l = this.queryPairs.length; i < l; i++) {\n param = this.queryPairs[i];\n if (key === param[0]) {\n arr.push(param[1]);\n }\n }\n return arr;\n };\n\n /**\n * removes query parameters\n * @param {string} key remove values for key\n * @param {val} [val] remove a specific value, otherwise removes all\n * @return {Uri} returns self for fluent chaining\n */\n Uri.prototype.deleteQueryParam = function (key, val) {\n var arr = [],\n i,\n param,\n keyMatchesFilter,\n valMatchesFilter,\n l;\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 if (arguments.length === 1 && !keyMatchesFilter || arguments.length === 2 && (!keyMatchesFilter || !valMatchesFilter)) {\n arr.push(param);\n }\n }\n this.queryPairs = arr;\n return this;\n };\n\n /**\n * adds a query parameter\n * @param {string} key add values for key\n * @param {string} val value to add\n * @param {integer} [index] specific index to add the value at\n * @return {Uri} returns self for fluent chaining\n */\n Uri.prototype.addQueryParam = function (key, val, index) {\n if (arguments.length === 3 && index !== -1) {\n index = Math.min(index, this.queryPairs.length);\n this.queryPairs.splice(index, 0, [key, val]);\n } else if (arguments.length > 0) {\n this.queryPairs.push([key, val]);\n }\n return this;\n };\n\n /**\n * test for the existence of a query parameter\n * @param {string} key add values for key\n * @param {string} val value to add\n * @param {integer} [index] specific index to add the value at\n * @return {Uri} returns self for fluent chaining\n */\n Uri.prototype.hasQueryParam = function (key) {\n var i,\n len = this.queryPairs.length;\n for (i = 0; i < len; i++) {\n if (this.queryPairs[i][0] == key) return true;\n }\n return false;\n };\n\n /**\n * replaces query param values\n * @param {string} key key to replace value for\n * @param {string} newVal new value\n * @param {string} [oldVal] replace only one specific value (otherwise replaces all)\n * @return {Uri} returns self for fluent chaining\n */\n Uri.prototype.replaceQueryParam = function (key, newVal, oldVal) {\n var index = -1,\n len = this.queryPairs.length,\n i,\n param;\n if (arguments.length === 3) {\n for (i = 0; i < len; i++) {\n param = this.queryPairs[i];\n if (decode(param[0]) === decode(key) && decodeURIComponent(param[1]) === decode(oldVal)) {\n index = i;\n break;\n }\n }\n if (index >= 0) {\n this.deleteQueryParam(key, decode(oldVal)).addQueryParam(key, newVal, index);\n }\n } else {\n for (i = 0; i < len; i++) {\n param = this.queryPairs[i];\n if (decode(param[0]) === decode(key)) {\n index = i;\n break;\n }\n }\n this.deleteQueryParam(key);\n this.addQueryParam(key, newVal, index);\n }\n return this;\n };\n\n /**\n * Define fluent setter methods (setProtocol, setHasAuthorityPrefix, etc)\n */\n ['protocol', 'hasAuthorityPrefix', 'isColonUri', 'userInfo', 'host', 'port', 'path', 'query', 'anchor'].forEach(function (key) {\n var method = 'set' + key.charAt(0).toUpperCase() + key.slice(1);\n Uri.prototype[method] = function (val) {\n this[key](val);\n return this;\n };\n });\n\n /**\n * Scheme name, colon and doubleslash, as required\n * @return {string} http:// or possibly just //\n */\n Uri.prototype.scheme = function () {\n var s = '';\n if (this.protocol()) {\n s += this.protocol();\n if (this.protocol().indexOf(':') !== this.protocol().length - 1) {\n s += ':';\n }\n s += '//';\n } else {\n if (this.hasAuthorityPrefix() && this.host()) {\n s += '//';\n }\n }\n return s;\n };\n\n /**\n * Same as Mozilla nsIURI.prePath\n * @return {string} scheme://user:password@host:port\n * @see https://developer.mozilla.org/en/nsIURI\n */\n Uri.prototype.origin = function () {\n var s = this.scheme();\n if (this.userInfo() && this.host()) {\n s += this.userInfo();\n if (this.userInfo().indexOf('@') !== this.userInfo().length - 1) {\n s += '@';\n }\n }\n if (this.host()) {\n s += this.host();\n if (this.port() || this.path() && this.path().substr(0, 1).match(/[0-9]/)) {\n s += ':' + this.port();\n }\n }\n return s;\n };\n\n /**\n * Adds a trailing slash to the path\n */\n Uri.prototype.addTrailingSlash = function () {\n var path = this.path() || '';\n if (path.substr(-1) !== '/') {\n this.path(path + '/');\n }\n return this;\n };\n\n /**\n * Serializes the internal state of the Uri object\n * @return {string}\n */\n Uri.prototype.toString = function () {\n var path,\n s = this.origin();\n if (this.isColonUri()) {\n if (this.path()) {\n s += ':' + this.path();\n }\n } else if (this.path()) {\n path = this.path();\n if (!(re.ends_with_slashes.test(s) || re.starts_with_slashes.test(path))) {\n s += '/';\n } else {\n if (s) {\n s.replace(re.ends_with_slashes, '/');\n }\n path = path.replace(re.starts_with_slashes, '/');\n }\n s += path;\n } else {\n if (this.host() && (this.query().toString() || this.anchor())) {\n s += '/';\n }\n }\n if (this.query().toString()) {\n s += this.query().toString();\n }\n if (this.anchor()) {\n if (this.anchor().indexOf('#') !== 0) {\n s += '#';\n }\n s += this.anchor();\n }\n return s;\n };\n\n /**\n * Clone a Uri object\n * @return {Uri} duplicate copy of the Uri\n */\n Uri.prototype.clone = function () {\n return new Uri(this.toString());\n };\n\n /**\n * export via AMD or CommonJS, otherwise leak a global\n */\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return Uri;\n });\n } else if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = Uri;\n } else {\n global.Uri = Uri;\n }\n})(this);","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Navigation = {\n toggleEl: function toggleEl($el, disabled) {\n $el[disabled ? 'addClass' : 'removeClass'](this.params.navigation.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n },\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n var toggleEl = swiper.navigation.toggleEl;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n toggleEl($prevEl, true);\n } else {\n toggleEl($prevEl, false);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n $prevEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n toggleEl($nextEl, true);\n } else {\n toggleEl($nextEl, false);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n $nextEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper.$el, swiper.params.navigation, swiper.params.createElements, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n },\n click: function click(swiper, e) {\n var _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$prevEl;\n var targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n var isHidden;\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Dimen } from \"../constants\";\n\ntype Size = \"xs\" | \"sm\" | \"md\";\n\ntype Props = {\n hideAbove?: Size;\n hideBelow?: Size;\n children: React.ReactNode;\n};\n\nexport default function Visibility({ hideAbove, hideBelow, children }: Props) {\n return (\n \n {children}\n \n );\n}\n\nconst SIZES = {\n xs: Dimen.breakpointDownXs,\n sm: Dimen.breakpointDownSm,\n md: Dimen.breakpointDownMd,\n};\n\nconst StyledContainer = styled(\"div\")<{ $hideAbove?: Size; $hideBelow?: Size }>`\n ${(p) =>\n p.$hideAbove &&\n `\n display: none;\n @media (max-width: ${SIZES[p.$hideAbove]}px) {\n display: block;\n }\n `};\n\n ${(p) =>\n p.$hideBelow &&\n `\n display: block;\n @media (max-width: ${SIZES[p.$hideBelow]}px) {\n display: none;\n }\n `};\n`;\n","\"use strict\";\n\nvar __spreadArray = this && this.__spreadArray || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fromReadonlyNonEmptyArray = exports.has = exports.isLeft = exports.isSome = void 0;\n// -------------------------------------------------------------------------------------\n// Option\n// -------------------------------------------------------------------------------------\n/** @internal */\nvar isSome = function (fa) {\n return fa._tag === 'Some';\n};\nexports.isSome = isSome;\n// -------------------------------------------------------------------------------------\n// Either\n// -------------------------------------------------------------------------------------\n/** @internal */\nvar isLeft = function (ma) {\n return ma._tag === 'Left';\n};\nexports.isLeft = isLeft;\n// -------------------------------------------------------------------------------------\n// Record\n// -------------------------------------------------------------------------------------\n/** @internal */\nexports.has = Object.prototype.hasOwnProperty;\n// -------------------------------------------------------------------------------------\n// NonEmptyArray\n// -------------------------------------------------------------------------------------\n/** @internal */\nvar fromReadonlyNonEmptyArray = function (as) {\n return __spreadArray([as[0]], as.slice(1));\n};\nexports.fromReadonlyNonEmptyArray = fromReadonlyNonEmptyArray;","module.exports = __webpack_public_path__ + \"static/favicon-8c898b2fddc651a021e40885355ce65a.ico\";",null,"import { useStaticQuery, graphql, StaticQuery } from \"gatsby\";\nimport * as React from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { Config } from \"../constants\";\nimport { fluidImage } from \"../prismic-tools\";\nimport { PrismicImage } from \"../types\";\n\ntype Props = {\n seo_title?: string | undefined;\n seo_description?: string | undefined;\n share_image?: PrismicImage;\n};\n\nexport default function HelmetSeo({\n seo_title,\n seo_description,\n share_image,\n}: Props) {\n const metas = [];\n\n if (seo_title) {\n metas.push({ property: \"og:title\", content: seo_title });\n }\n\n if (seo_description) {\n metas.push({ name: \"description\", content: seo_description });\n metas.push({ property: \"og:description\", content: seo_description });\n }\n\n if (share_image?.url && share_image?.dimensions) {\n const fluid = fluidImage(share_image, 1200);\n metas.push({\n property: \"og:image\",\n content: `${Config.rootUrl}${fluid.src}`,\n });\n metas.push({\n property: \"og:image:width\",\n content: share_image.dimensions.width.toString(),\n });\n metas.push({\n property: \"og:image:height\",\n content: share_image.dimensions.height.toString(),\n });\n }\n\n return (\n \n \n {seo_title ||\n \"Shipamax | Specialised supply chain data extraction platform\"}\n \n {metas.map((meta, i) => (\n \n ))}\n \n );\n}\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMS43MDQyIDEzLjcwNzFMMTguOTk3MSA2LjQxNDIxVjExSDIwLjk5NzFWM0gxMi45OTcxVjVIMTcuNTgyOUwxMC4yOSAxMi4yOTI5TDExLjcwNDIgMTMuNzA3MVpNMTkgMTlWMTRIMTdWMTlINVY3SDEwVjVINUMzLjg5NTQzIDUgMyA1Ljg5NTQzIDMgN1YxOUMzIDIwLjEwNDYgMy44OTU0MyAyMSA1IDIxSDE3QzE4LjEwNDYgMjEgMTkgMjAuMTA0NiAxOSAxOVoiIGZpbGw9IiMwMDg1RkYiLz4KPC9zdmc+Cg==\"","// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var getBooleanAlgebra = function (B) {\n return function () {\n return {\n meet: function (x, y) {\n return function (a) {\n return B.meet(x(a), y(a));\n };\n },\n join: function (x, y) {\n return function (a) {\n return B.join(x(a), y(a));\n };\n },\n zero: function () {\n return B.zero;\n },\n one: function () {\n return B.one;\n },\n implies: function (x, y) {\n return function (a) {\n return B.implies(x(a), y(a));\n };\n },\n not: function (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 */\nexport var getSemigroup = function (S) {\n return function () {\n return {\n concat: function (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, getMonoid } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate = (n) => n <= 2\n * const g: Predicate = (n) => n >= 0\n *\n * const M1 = getMonoid(B.MonoidAll)()\n *\n * assert.deepStrictEqual(M1.concat(f, g)(1), true)\n * assert.deepStrictEqual(M1.concat(f, g)(3), false)\n *\n * const M2 = getMonoid(B.MonoidAny)()\n *\n * assert.deepStrictEqual(M2.concat(f, g)(1), true)\n * assert.deepStrictEqual(M2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\nexport var getMonoid = function (M) {\n var getSemigroupM = getSemigroup(M);\n return function () {\n return {\n concat: getSemigroupM().concat,\n empty: function () {\n return M.empty;\n }\n };\n };\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var getSemiring = function (S) {\n return {\n add: function (f, g) {\n return function (x) {\n return S.add(f(x), g(x));\n };\n },\n zero: function () {\n return S.zero;\n },\n mul: function (f, g) {\n return function (x) {\n return S.mul(f(x), g(x));\n };\n },\n one: function () {\n return S.one;\n }\n };\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var getRing = function (R) {\n var S = getSemiring(R);\n return {\n add: S.add,\n mul: S.mul,\n one: S.one,\n zero: S.zero,\n sub: function (f, g) {\n return function (x) {\n return R.sub(f(x), g(x));\n };\n }\n };\n};\n/**\n * Endomorphism form a monoid where the `empty` value is the identity function.\n *\n * @category instances\n * @since 2.10.0\n */\nexport var getEndomorphismMonoid = function () {\n return {\n concat: function (x, y) {\n return function (a) {\n return y(x(a));\n };\n },\n empty: identity\n };\n};\n/**\n * @since 2.0.0\n */\nexport function identity(a) {\n return a;\n}\n/**\n * @since 2.0.0\n */\nexport var unsafeCoerce = identity;\n/**\n * @since 2.0.0\n */\nexport function not(predicate) {\n return function (a) {\n return !predicate(a);\n };\n}\n/**\n * @since 2.0.0\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 */\nexport var constTrue = /*#__PURE__*/\nconstant(true);\n/**\n * A thunk that returns always `false`.\n *\n * @since 2.0.0\n */\nexport var constFalse = /*#__PURE__*/\nconstant(false);\n/**\n * A thunk that returns always `null`.\n *\n * @since 2.0.0\n */\nexport var constNull = /*#__PURE__*/\nconstant(null);\n/**\n * A thunk that returns always `undefined`.\n *\n * @since 2.0.0\n */\nexport var constUndefined = /*#__PURE__*/\nconstant(undefined);\n/**\n * A thunk that returns always `void`.\n *\n * @since 2.0.0\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 */\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 case 2:\n return function () {\n return bc(ab.apply(this, arguments));\n };\n case 3:\n return function () {\n return cd(bc(ab.apply(this, arguments)));\n };\n case 4:\n return function () {\n return de(cd(bc(ab.apply(this, arguments))));\n };\n case 5:\n return function () {\n return ef(de(cd(bc(ab.apply(this, arguments)))));\n };\n case 6:\n return function () {\n return fg(ef(de(cd(bc(ab.apply(this, arguments))))));\n };\n case 7:\n return function () {\n return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));\n };\n case 8:\n return function () {\n return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));\n };\n case 9:\n return function () {\n return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));\n };\n }\n return;\n}\n/**\n * @since 2.0.0\n */\nexport function tuple() {\n var t = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n t[_i] = arguments[_i];\n }\n return t;\n}\n/**\n * @since 2.0.0\n */\nexport function increment(n) {\n return n + 1;\n}\n/**\n * @since 2.0.0\n */\nexport function decrement(n) {\n return n - 1;\n}\n/**\n * @since 2.0.0\n */\nexport function absurd(_) {\n throw new Error('Called `absurd` function which should be uncallable');\n}\n/**\n * Creates a tupled version of this function: instead of `n` arguments, it accepts a single tuple argument.\n *\n * @example\n * import { tupled } from 'fp-ts/function'\n *\n * const add = tupled((x: number, y: number): number => x + y)\n *\n * assert.strictEqual(add([1, 2]), 3)\n *\n * @since 2.4.0\n */\nexport function tupled(f) {\n return function (a) {\n return f.apply(void 0, a);\n };\n}\n/**\n * Inverse function of `tupled`\n *\n * @since 2.4.0\n */\nexport function untupled(f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return f(a);\n };\n}\nexport function pipe(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk, kl, lm, mn, no, op, pq, qr, rs, st) {\n switch (arguments.length) {\n case 1:\n return a;\n case 2:\n return ab(a);\n case 3:\n return bc(ab(a));\n case 4:\n return cd(bc(ab(a)));\n case 5:\n return de(cd(bc(ab(a))));\n case 6:\n return ef(de(cd(bc(ab(a)))));\n case 7:\n return fg(ef(de(cd(bc(ab(a))))));\n case 8:\n return gh(fg(ef(de(cd(bc(ab(a)))))));\n case 9:\n return hi(gh(fg(ef(de(cd(bc(ab(a))))))));\n case 10:\n return ij(hi(gh(fg(ef(de(cd(bc(ab(a)))))))));\n case 11:\n return jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a))))))))));\n case 12:\n return kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a)))))))))));\n case 13:\n return lm(kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a))))))))))));\n case 14:\n return mn(lm(kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a)))))))))))));\n case 15:\n return no(mn(lm(kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a))))))))))))));\n case 16:\n return op(no(mn(lm(kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a)))))))))))))));\n case 17:\n return pq(op(no(mn(lm(kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a))))))))))))))));\n case 18:\n return qr(pq(op(no(mn(lm(kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a)))))))))))))))));\n case 19:\n return rs(qr(pq(op(no(mn(lm(kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a))))))))))))))))));\n case 20:\n return st(rs(qr(pq(op(no(mn(lm(kl(jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a)))))))))))))))))));\n }\n return;\n}\n/**\n * Type hole simulation\n *\n * @since 2.7.0\n */\nexport var hole = absurd;","/**\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 return _a = {}, _a[name] = a, _a;\n });\n };\n };\n}\n/** @deprecated */\nexport function getFunctorComposition(F, G) {\n var _map = map(F, G);\n return {\n map: function (fga, f) {\n return pipe(fga, _map(f));\n }\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++) to[j] = from[i];\n return to;\n};\n// -------------------------------------------------------------------------------------\n// Option\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport var isSome = function (fa) {\n return fa._tag === 'Some';\n};\n// -------------------------------------------------------------------------------------\n// Either\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport var isLeft = function (ma) {\n return ma._tag === 'Left';\n};\n// -------------------------------------------------------------------------------------\n// Record\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport var has = Object.prototype.hasOwnProperty;\n// -------------------------------------------------------------------------------------\n// NonEmptyArray\n// -------------------------------------------------------------------------------------\n/** @internal */\nexport var fromReadonlyNonEmptyArray = function (as) {\n return __spreadArray([as[0]], as.slice(1));\n};","/**\n * @since 2.0.0\n */\nexport var tailRec = function (startWith, f) {\n var ab = f(startWith);\n while (ab._tag === 'Left') {\n ab = f(ab.left);\n }\n return ab.right;\n};","/**\n * ```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// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * @category constructors\n * @since 2.10.0\n */\nexport var separated = function (left, right) {\n return {\n left: left,\n right: right\n };\n};\n// -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\nvar _map = function (fa, f) {\n return pipe(fa, map(f));\n};\nvar _mapLeft = function (fa, f) {\n return pipe(fa, mapLeft(f));\n};\nvar _bimap = function (fa, g, f) {\n return pipe(fa, bimap(g, f));\n};\n// -------------------------------------------------------------------------------------\n// type class members\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 */\nexport var map = function (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 */\nexport var mapLeft = function (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 */\nexport var bimap = function (f, g) {\n return function (fa) {\n return separated(f(left(fa)), g(right(fa)));\n };\n};\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var URI = 'Separated';\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Bifunctor = {\n URI: URI,\n mapLeft: _mapLeft,\n bimap: _bimap\n};\n/**\n * @category instances\n * @since 2.10.0\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 */\nexport var flap = /*#_PURE_*/\nflap_(Functor);\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.10.0\n */\nexport var left = function (s) {\n return s.left;\n};\n/**\n * @since 2.10.0\n */\nexport var right = function (s) {\n return s.right;\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 { flow, identity, pipe } from './function';\nimport { bindTo as bindTo_, flap as flap_ } from './Functor';\nimport * as _ from './internal';\nimport { separated } from './Separated';\n// -------------------------------------------------------------------------------------\n// guards\n// -------------------------------------------------------------------------------------\n/**\n * Returns `true` if the either is an instance of `Left`, `false` otherwise.\n *\n * @category guards\n * @since 2.0.0\n */\nexport var isLeft = _.isLeft;\n/**\n * Returns `true` if the either is an instance of `Right`, `false` otherwise.\n *\n * @category guards\n * @since 2.0.0\n */\nexport var isRight = function (ma) {\n return ma._tag === 'Right';\n};\n// -------------------------------------------------------------------------------------\n// constructors\n// -------------------------------------------------------------------------------------\n/**\n * Constructs a new `Either` holding a `Left` value. This usually represents a failure, due to the right-bias of this\n * structure.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var left = function (e) {\n return {\n _tag: 'Left',\n left: e\n };\n};\n/**\n * Constructs a new `Either` holding a `Right` value. This usually represents a successful value due to the right bias\n * of this structure.\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var right = function (a) {\n return {\n _tag: 'Right',\n right: a\n };\n};\n/**\n * @example\n * import { fromOption, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n * import { none, some } from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(\n * some(1),\n * fromOption(() => 'error')\n * ),\n * right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * none,\n * fromOption(() => 'error')\n * ),\n * left('error')\n * )\n *\n * @category constructors\n * @since 2.0.0\n */\nexport var fromOption = function (onNone) {\n return function (ma) {\n return ma._tag === 'None' ? left(onNone()) : right(ma.value);\n };\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 */\nexport var fromPredicate = function (predicate, onFalse) {\n return function (a) {\n return predicate(a) ? right(a) : left(onFalse(a));\n };\n};\n// -------------------------------------------------------------------------------------\n// destructors\n// -------------------------------------------------------------------------------------\n/**\n * Less strict version of [`match`](#match).\n *\n * @category destructors\n * @since 2.10.0\n */\nexport var matchW = function (onLeft, onRight) {\n return function (ma) {\n return isLeft(ma) ? onLeft(ma.left) : onRight(ma.right);\n };\n};\n/**\n * Alias of [`matchW`](#matchww).\n *\n * @category destructors\n * @since 2.10.0\n */\nexport var foldW = matchW;\n/**\n * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the first function,\n * if the value is a `Right` the inner value is applied to the second function.\n *\n * @example\n * import { match, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * function onLeft(errors: Array): string {\n * return `Errors: ${errors.join(', ')}`\n * }\n *\n * function onRight(value: number): string {\n * return `Ok: ${value}`\n * }\n *\n * assert.strictEqual(\n * pipe(\n * right(1),\n * match(onLeft, onRight)\n * ),\n * 'Ok: 1'\n * )\n * assert.strictEqual(\n * pipe(\n * left(['error 1', 'error 2']),\n * match(onLeft, onRight)\n * ),\n * 'Errors: error 1, error 2'\n * )\n *\n * @category destructors\n * @since 2.10.0\n */\nexport var match = matchW;\n/**\n * Alias of [`match`](#match).\n *\n * @category destructors\n * @since 2.0.0\n */\nexport var fold = match;\n/**\n * Less strict version of [`getOrElse`](#getorelse).\n *\n * @category destructors\n * @since 2.6.0\n */\nexport var getOrElseW = function (onLeft) {\n return function (ma) {\n return isLeft(ma) ? onLeft(ma.left) : ma.right;\n };\n};\n/**\n * Returns the wrapped value if it's a `Right` or a default value if is a `Left`.\n *\n * @example\n * import { getOrElse, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * right(1),\n * getOrElse(() => 0)\n * ),\n * 1\n * )\n * assert.deepStrictEqual(\n * pipe(\n * left('error'),\n * getOrElse(() => 0)\n * ),\n * 0\n * )\n *\n * @category destructors\n * @since 2.0.0\n */\nexport var getOrElse = getOrElseW;\n// -------------------------------------------------------------------------------------\n// interop\n// -------------------------------------------------------------------------------------\n// TODO: make lazy in v3\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 */\nexport var fromNullable = function (e) {\n return function (a) {\n return a == null ? left(e) : right(a);\n };\n};\n/**\n * Constructs a new `Either` from a function that might throw.\n *\n * See also [`tryCatchK`](#trycatchk).\n *\n * @example\n * import * as E from 'fp-ts/Either'\n *\n * const unsafeHead = (as: ReadonlyArray): A => {\n * if (as.length > 0) {\n * return as[0]\n * } else {\n * throw new Error('empty array')\n * }\n * }\n *\n * const head = (as: ReadonlyArray): E.Either =>\n * E.tryCatch(() => unsafeHead(as), e => (e instanceof Error ? e : new Error('unknown error')))\n *\n * assert.deepStrictEqual(head([]), E.left(new Error('empty array')))\n * assert.deepStrictEqual(head([1, 2, 3]), E.right(1))\n *\n * @category interop\n * @since 2.0.0\n */\nexport var tryCatch = function (f, onThrow) {\n try {\n return right(f());\n } catch (e) {\n return left(onThrow(e));\n }\n};\n/**\n * Converts a function that may throw to one returning a `Either`.\n *\n * @category interop\n * @since 2.10.0\n */\nexport var tryCatchK = function (f, onThrow) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return tryCatch(function () {\n return f.apply(void 0, a);\n }, onThrow);\n };\n};\n/**\n * @category interop\n * @since 2.9.0\n */\nexport var fromNullableK = function (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 */\nexport var chainNullableK = function (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 */\nexport var toUnion = /*#__PURE__*/\nfoldW(identity, identity);\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @category combinators\n * @since 2.10.0\n */\nexport var fromOptionK = function (onNone) {\n var from = fromOption(onNone);\n return function (f) {\n return flow(f, from);\n };\n};\n/**\n * @category combinators\n * @since 2.10.0\n */\nexport var chainOptionK = function (onNone) {\n var from = fromOptionK(onNone);\n return function (f) {\n return chain(from(f));\n };\n};\n/**\n * Returns a `Right` if is a `Left` (and vice versa).\n *\n * @category combinators\n * @since 2.0.0\n */\nexport 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 */\nexport var orElseW = function (onLeft) {\n return function (ma) {\n return isLeft(ma) ? onLeft(ma.left) : ma;\n };\n};\n/**\n * Useful for recovering from errors.\n *\n * @category combinators\n * @since 2.0.0\n */\nexport var orElse = orElseW;\n/**\n * Less strict version of [`filterOrElse`](#filterorelse).\n *\n * @category combinators\n * @since 2.9.0\n */\nexport var filterOrElseW = function (predicate, onFalse) {\n return chainW(function (a) {\n return predicate(a) ? right(a) : left(onFalse(a));\n });\n};\n/**\n * @example\n * import { filterOrElse as filterOrElse, left, right } from 'fp-ts/Either'\n * import { pipe } from 'fp-ts/function'\n *\n * assert.deepStrictEqual(\n * pipe(\n * right(1),\n * filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * right(1)\n * )\n * assert.deepStrictEqual(\n * pipe(\n * right(-1),\n * filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * left('error')\n * )\n * assert.deepStrictEqual(\n * pipe(\n * left('a'),\n * filterOrElse(\n * (n) => n > 0,\n * () => 'error'\n * )\n * ),\n * left('a')\n * )\n *\n * @category combinators\n * @since 2.0.0\n */\nexport var filterOrElse = filterOrElseW;\n// -------------------------------------------------------------------------------------\n// non-pipeables\n// -------------------------------------------------------------------------------------\nvar _map = function (fa, f) {\n return pipe(fa, map(f));\n};\nvar _ap = function (fab, fa) {\n return pipe(fab, ap(fa));\n};\n/* istanbul ignore next */\nvar _chain = function (ma, f) {\n return pipe(ma, chain(f));\n};\n/* istanbul ignore next */\nvar _reduce = function (fa, b, f) {\n return pipe(fa, reduce(b, f));\n};\n/* istanbul ignore next */\nvar _foldMap = function (M) {\n return function (fa, f) {\n var foldMapM = foldMap(M);\n return pipe(fa, foldMapM(f));\n };\n};\n/* istanbul ignore next */\nvar _reduceRight = function (fa, b, f) {\n return pipe(fa, reduceRight(b, f));\n};\nvar _traverse = function (F) {\n var traverseF = traverse(F);\n return function (ta, f) {\n return pipe(ta, traverseF(f));\n };\n};\nvar _bimap = function (fa, f, g) {\n return pipe(fa, bimap(f, g));\n};\nvar _mapLeft = function (fa, f) {\n return pipe(fa, mapLeft(f));\n};\n/* istanbul ignore next */\nvar _alt = function (fa, that) {\n return pipe(fa, alt(that));\n};\n/* istanbul ignore next */\nvar _extend = function (wa, f) {\n return pipe(wa, extend(f));\n};\nvar _chainRec = function (a, f) {\n return tailRec(f(a), function (e) {\n return isLeft(e) ? right(left(e.left)) : isLeft(e.right) ? left(f(e.right.left)) : right(right(e.right.right));\n });\n};\n// -------------------------------------------------------------------------------------\n// type class members\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 */\nexport var map = function (f) {\n return function (fa) {\n return isLeft(fa) ? fa : right(f(fa.right));\n };\n};\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 */\nexport var bimap = function (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 Bifunctor\n * @since 2.0.0\n */\nexport var mapLeft = function (f) {\n return function (fa) {\n return isLeft(fa) ? left(f(fa.left)) : fa;\n };\n};\n/**\n * Less strict version of [`ap`](#ap).\n *\n * @category Apply\n * @since 2.8.0\n */\nexport var apW = function (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 Apply\n * @since 2.0.0\n */\nexport var ap = apW;\n/**\n * @category Pointed\n * @since 2.7.0\n */\nexport var of = right;\n/**\n * Less strict version of [`chain`](#chain).\n *\n * @category Monad\n * @since 2.6.0\n */\nexport var chainW = function (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 Monad\n * @since 2.0.0\n */\nexport var chain = chainW;\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 */\nexport var flatten = /*#__PURE__*/\nchain(identity);\n/**\n * Less strict version of [`alt`](#alt).\n *\n * @category Alt\n * @since 2.9.0\n */\nexport var altW = function (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 Alt\n * @since 2.0.0\n */\nexport var alt = altW;\n/**\n * @category Extend\n * @since 2.0.0\n */\nexport var extend = function (f) {\n return function (wa) {\n return isLeft(wa) ? wa : right(f(wa));\n };\n};\n/**\n * Derivable from `Extend`.\n *\n * @category combinators\n * @since 2.0.0\n */\nexport var duplicate = /*#__PURE__*/\nextend(identity);\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 Foldable\n * @since 2.0.0\n */\nexport var reduce = function (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 Foldable\n * @since 2.0.0\n */\nexport var foldMap = function (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 Foldable\n * @since 2.0.0\n */\nexport var reduceRight = function (b, f) {\n return function (fa) {\n return isLeft(fa) ? b : f(fa.right, b);\n };\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 Traversable\n * @since 2.6.3\n */\nexport var traverse = function (F) {\n return function (f) {\n return function (ta) {\n return isLeft(ta) ? F.of(left(ta.left)) : F.map(f(ta.right), right);\n };\n };\n};\n/**\n * Evaluate each monadic action in the structure from left to right, and collect the results.\n *\n * @example\n * import { pipe } from 'fp-ts/function'\n * import * as E from 'fp-ts/Either'\n * import * as O from 'fp-ts/Option'\n *\n * assert.deepStrictEqual(\n * pipe(E.right(O.some('a')), E.sequence(O.Applicative)),\n * O.some(E.right('a'))\n * )\n *\n * assert.deepStrictEqual(\n * pipe(E.right(O.none), E.sequence(O.Applicative)),\n * O.none\n * )\n *\n * @category Traversable\n * @since 2.6.3\n */\nexport var sequence = function (F) {\n return function (ma) {\n return isLeft(ma) ? F.of(left(ma.left)) : F.map(ma.right, right);\n };\n};\n/**\n * @category MonadThrow\n * @since 2.6.3\n */\nexport var throwError = left;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.0.0\n */\nexport var URI = 'Either';\n/**\n * @category instances\n * @since 2.0.0\n */\nexport function getShow(SE, SA) {\n return {\n show: function (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 */\nexport function getEq(EL, EA) {\n return {\n equals: function (x, y) {\n return x === y || (isLeft(x) ? isLeft(y) && EL.equals(x.left, y.left) : isRight(y) && EA.equals(x.right, y.right));\n }\n };\n}\n/**\n * Semigroup returning the left-most non-`Left` value. If both operands are `Right`s then the inner values are\n * concatenated using the provided `Semigroup`\n *\n * @example\n * import { getSemigroup, left, right } from 'fp-ts/Either'\n * import { SemigroupSum } from 'fp-ts/number'\n *\n * const S = getSemigroup(SemigroupSum)\n * assert.deepStrictEqual(S.concat(left('a'), left('b')), left('a'))\n * assert.deepStrictEqual(S.concat(left('a'), right(2)), right(2))\n * assert.deepStrictEqual(S.concat(right(1), left('b')), right(1))\n * assert.deepStrictEqual(S.concat(right(1), right(2)), right(3))\n *\n * @category instances\n * @since 2.0.0\n */\nexport function getSemigroup(S) {\n return {\n concat: function (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 */\nexport var getCompactable = function (M) {\n var empty = left(M.empty);\n return {\n URI: URI,\n _E: undefined,\n compact: function (ma) {\n return isLeft(ma) ? ma : ma.right._tag === 'None' ? empty : right(ma.right.value);\n },\n separate: function (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 */\nexport function getFilterable(M) {\n var empty = left(M.empty);\n var _a = getCompactable(M),\n compact = _a.compact,\n separate = _a.separate;\n var filter = function (ma, predicate) {\n return isLeft(ma) ? ma : predicate(ma.right) ? ma : empty;\n };\n var partition = function (ma, p) {\n return isLeft(ma) ? separated(ma, ma) : p(ma.right) ? separated(empty, right(ma.right)) : separated(right(ma.right), empty);\n };\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n compact: compact,\n separate: separate,\n filter: filter,\n filterMap: function (ma, f) {\n if (isLeft(ma)) {\n return ma;\n }\n var ob = f(ma.right);\n return ob._tag === 'None' ? empty : right(ob.value);\n },\n partition: partition,\n partitionMap: function (ma, f) {\n if (isLeft(ma)) {\n return separated(ma, ma);\n }\n var e = f(ma.right);\n return isLeft(e) ? separated(right(e.left), empty) : separated(empty, right(e.right));\n }\n };\n}\n/**\n * Builds `Witherable` instance for `Either` given `Monoid` for the left side\n *\n * @category instances\n * @since 2.0.0\n */\nexport function getWitherable(M) {\n var F_ = getFilterable(M);\n var wither = function (F) {\n var traverseF = _traverse(F);\n return function (ma, f) {\n return F.map(traverseF(ma, f), F_.compact);\n };\n };\n var wilt = function (F) {\n var traverseF = _traverse(F);\n return function (ma, f) {\n return F.map(traverseF(ma, f), F_.separate);\n };\n };\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: wither,\n wilt: wilt\n };\n}\n/**\n * @category instances\n * @since 2.7.0\n */\nexport function getApplicativeValidation(SE) {\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n ap: function (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 */\nexport function getAltValidation(SE) {\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n alt: function (me, that) {\n if (isRight(me)) {\n return me;\n }\n var ea = that();\n return isLeft(ea) ? left(SE.concat(me.left, ea.left)) : ea;\n }\n };\n}\n/**\n * @category instances\n * @since 2.7.0\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 */\nexport var flap = /*#_PURE_*/\nflap_(Functor);\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Pointed = {\n URI: URI,\n of: of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Apply = {\n URI: URI,\n map: _map,\n ap: _ap\n};\n/**\n * 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 */\nexport var apFirst = /*#__PURE__*/\napFirst_(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 */\nexport var apSecond = /*#__PURE__*/\napSecond_(Apply);\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Applicative = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var Chain = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: _chain\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Monad = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: _chain\n};\n/**\n * Composes computations in sequence, using the return value of one computation to determine the next computation and\n * keeping only the result of the first.\n *\n * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.0.0\n */\nexport var chainFirst = /*#__PURE__*/\nchainFirst_(Chain);\n/**\n * Less strict version of [`chainFirst`](#chainfirst)\n *\n * Derivable from `Chain`.\n *\n * @category combinators\n * @since 2.8.0\n */\nexport var chainFirstW = chainFirst;\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Foldable = {\n URI: URI,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Traversable = {\n URI: URI,\n map: _map,\n reduce: _reduce,\n foldMap: _foldMap,\n reduceRight: _reduceRight,\n traverse: _traverse,\n sequence: sequence\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Bifunctor = {\n URI: URI,\n bimap: _bimap,\n mapLeft: _mapLeft\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Alt = {\n URI: URI,\n map: _map,\n alt: _alt\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var Extend = {\n URI: URI,\n map: _map,\n extend: _extend\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var ChainRec = {\n URI: URI,\n map: _map,\n ap: _ap,\n chain: _chain,\n chainRec: _chainRec\n};\n/**\n * @category instances\n * @since 2.7.0\n */\nexport var MonadThrow = {\n URI: URI,\n map: _map,\n ap: _ap,\n of: of,\n chain: _chain,\n throwError: throwError\n};\n/**\n * @category instances\n * @since 2.10.0\n */\nexport var FromEither = {\n URI: URI,\n fromEither: identity\n};\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * Default value for the `onError` argument of `tryCatch`\n *\n * @since 2.0.0\n */\nexport function toError(e) {\n return e instanceof Error ? e : new Error(String(e));\n}\n/**\n * @since 2.0.0\n */\nexport function elem(E) {\n return function (a, ma) {\n return isLeft(ma) ? false : E.equals(a, ma.right);\n };\n}\n/**\n * Returns `false` if `Left` or returns the result of the application of the given predicate to the `Right` value.\n *\n * @example\n * import { exists, left, right } from 'fp-ts/Either'\n *\n * const gt2 = exists((n: number) => n > 2)\n *\n * assert.strictEqual(gt2(left('a')), false)\n * assert.strictEqual(gt2(right(1)), false)\n * assert.strictEqual(gt2(right(3)), true)\n *\n * @since 2.0.0\n */\nexport function exists(predicate) {\n return function (ma) {\n return isLeft(ma) ? false : predicate(ma.right);\n };\n}\n// -------------------------------------------------------------------------------------\n// do notation\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.9.0\n */\nexport var Do = /*#__PURE__*/\nof({});\n/**\n * @since 2.8.0\n */\nexport var bindTo = /*#__PURE__*/\nbindTo_(Functor);\n/**\n * @since 2.8.0\n */\nexport var bind = /*#__PURE__*/\nbind_(Chain);\n/**\n * @since 2.8.0\n */\nexport var bindW = bind;\n// -------------------------------------------------------------------------------------\n// pipeable sequence S\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.8.0\n */\nexport var apS = /*#__PURE__*/\napS_(Apply);\n/**\n * @since 2.8.0\n */\nexport var apSW = apS;\n// -------------------------------------------------------------------------------------\n// array utils\n// -------------------------------------------------------------------------------------\n/**\n * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.\n *\n * @since 2.9.0\n */\nexport var traverseArrayWithIndex = function (f) {\n return function (as) {\n var out = [];\n for (var i = 0; i < as.length; i++) {\n var e = f(i, as[i]);\n if (isLeft(e)) {\n return e;\n }\n out.push(e.right);\n }\n return right(out);\n };\n};\n/**\n * Equivalent to `ReadonlyArray#traverse(Applicative)`.\n *\n * @since 2.9.0\n */\nexport var traverseArray = function (f) {\n return traverseArrayWithIndex(function (_, a) {\n return f(a);\n });\n};\n/**\n * Equivalent to `ReadonlyArray#sequence(Applicative)`.\n *\n * @since 2.9.0\n */\nexport var sequenceArray = /*#__PURE__*/\ntraverseArray(identity);\n/**\n * Use [`parse`](./Json.ts.html#parse) instead.\n *\n * @category constructors\n * @since 2.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\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 */\nexport var stringifyJSON = function (u, onError) {\n return tryCatch(function () {\n var s = JSON.stringify(u);\n if (typeof s !== 'string') {\n throw new Error('Converting unsupported structure to JSON');\n }\n return s;\n }, onError);\n};\n/**\n * Use small, specific instances instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\nexport var either = {\n URI: URI,\n map: _map,\n of: of,\n ap: _ap,\n chain: _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 */\nexport var getApplySemigroup = /*#__PURE__*/\ngetApplySemigroup_(Apply);\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getApplicativeMonoid) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\nexport var getApplyMonoid = /*#__PURE__*/\ngetApplicativeMonoid(Applicative);\n/**\n * Use [`getApplySemigroup`](./Apply.ts.html#getApplySemigroup) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\nexport var getValidationSemigroup = function (SE, SA) {\n return getApplySemigroup_(getApplicativeValidation(SE))(SA);\n};\n/**\n * Use [`getApplicativeMonoid`](./Applicative.ts.html#getApplicativeMonoid) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\nexport var getValidationMonoid = function (SE, MA) {\n return getApplicativeMonoid(getApplicativeValidation(SE))(MA);\n};\n/**\n * Use [`getApplicativeValidation`](#getapplicativevalidation) and [`getAltValidation`](#getaltvalidation) instead.\n *\n * @category instances\n * @since 2.0.0\n * @deprecated\n */\nexport function getValidation(SE) {\n var ap = getApplicativeValidation(SE).ap;\n var alt = getAltValidation(SE).alt;\n return {\n URI: URI,\n _E: undefined,\n map: _map,\n of: of,\n chain: _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}","var __extends = this && this.__extends || function () {\n var extendStatics = function (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) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = this && this.__spreadArrays || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n return r;\n};\n/**\n * @since 1.0.0\n */\nimport { isLeft, left, right } from 'fp-ts/es6/Either';\n/**\n * @category Decode error\n * @since 1.0.0\n */\nexport var failures = left;\n/**\n * @category Decode error\n * @since 1.0.0\n */\nexport var failure = function (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 */\nexport var success = right;\n/**\n * @category Codec\n * @since 1.0.0\n */\nvar Type = /** @class */function () {\n function Type( /** a unique name for this codec */\n name, /** a custom type guard */\n is, /** succeeds if a value of type I can be decoded to a value of type A */\n validate, /** 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 Type.prototype.pipe = function (ab, name) {\n var _this = this;\n if (name === void 0) {\n name = \"pipe(\" + this.name + \", \" + ab.name + \")\";\n }\n return new Type(name, ab.is, function (i, c) {\n var e = _this.validate(i, c);\n if (isLeft(e)) {\n return e;\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 Type.prototype.asDecoder = function () {\n return this;\n };\n /**\n * @since 1.0.0\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 Type.prototype.decode = function (i) {\n return this.validate(i, [{\n key: '',\n type: this,\n actual: i\n }]);\n };\n return Type;\n}();\nexport { Type };\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 1.0.0\n */\nexport var identity = function (a) {\n return a;\n};\n/**\n * @since 1.0.0\n */\nexport function getFunctionName(f) {\n return f.displayName || f.name || \"\";\n}\n/**\n * @since 1.0.0\n */\nexport function getContextEntry(key, decoder) {\n return {\n key: key,\n type: decoder\n };\n}\n/**\n * @since 1.0.0\n */\nexport function appendContext(c, key, decoder, actual) {\n var len = c.length;\n var r = Array(len + 1);\n for (var i = 0; i < len; i++) {\n r[i] = c[i];\n }\n r[len] = {\n key: key,\n type: decoder,\n actual: actual\n };\n return r;\n}\nfunction pushAll(xs, ys) {\n var l = ys.length;\n for (var i = 0; i < l; i++) {\n xs.push(ys[i]);\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction getNameFromProps(props) {\n return Object.keys(props).map(function (k) {\n return k + \": \" + props[k].name;\n }).join(', ');\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 return true;\n}\nfunction getInterfaceTypeName(props) {\n return \"{ \" + getNameFromProps(props) + \" }\";\n}\nfunction getPartialTypeName(inner) {\n return \"Partial<\" + inner + \">\";\n}\nfunction enumerableRecord(keys, domain, codomain, name) {\n if (name === void 0) {\n name = \"{ [K in \" + domain.name + \"]: \" + codomain.name + \" }\";\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 if (isLeft(e)) {\n return e;\n }\n var o = e.right;\n var a = {};\n var errors = [];\n var changed = false;\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 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 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 for (var i = 0; i < len; i++) {\n var k = keys[i];\n s[k] = codomain.encode(a[k]);\n }\n return s;\n }, domain, codomain);\n}\n/**\n * @internal\n */\nexport function getDomainKeys(domain) {\n var _a;\n if (isLiteralC(domain)) {\n var literal_1 = domain.value;\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 return undefined;\n}\nfunction nonEnumerableRecord(domain, codomain, name) {\n if (name === void 0) {\n name = \"{ [K in \" + domain.name + \"]: \" + codomain.name + \" }\";\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 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 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 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 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 ? a : u);\n }\n if (isAnyC(codomain) && Array.isArray(u)) {\n return success(u);\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 for (var i = 0; i < len; i++) {\n var k = keys[i];\n s[String(domain.encode(k))] = codomain.encode(a[k]);\n }\n return s;\n }, domain, codomain);\n}\nfunction getUnionName(codecs) {\n return '(' + codecs.map(function (type) {\n return type.name;\n }).join(' | ') + ')';\n}\n/**\n * @internal\n */\nexport function mergeAll(base, us) {\n var equal = true;\n var primitive = true;\n var baseIsNotADictionary = !UnknownRecord.is(base);\n for (var _i = 0, us_1 = us; _i < us_1.length; _i++) {\n var u = us_1[_i];\n if (u !== base) {\n equal = false;\n }\n if (UnknownRecord.is(u)) {\n primitive = false;\n }\n }\n if (equal) {\n return base;\n } else if (primitive) {\n return us[us.length - 1];\n }\n var r = {};\n for (var _a = 0, us_2 = us; _a < us_2.length; _a++) {\n var u = us_2[_a];\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 return r;\n}\nfunction getProps(codec) {\n switch (codec._tag) {\n case 'RefinementType':\n case 'ReadonlyType':\n return getProps(codec.type);\n case 'InterfaceType':\n case 'StrictType':\n case 'PartialType':\n return codec.props;\n case 'IntersectionType':\n return codec.types.reduce(function (props, type) {\n return Object.assign(props, getProps(type));\n }, {});\n }\n}\nfunction stripKeys(o, props) {\n var keys = Object.getOwnPropertyNames(o);\n var shouldStrip = false;\n var r = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwnProperty.call(props, key)) {\n shouldStrip = true;\n } else {\n r[key] = o[key];\n }\n }\n return shouldStrip ? r : o;\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 return \"Exact<\" + codec.name + \">\";\n}\nfunction isNonEmpty(as) {\n return as.length > 0;\n}\n/**\n * @internal\n */\nexport var emptyTags = {};\nfunction intersect(a, b) {\n var r = [];\n for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {\n var v = a_1[_i];\n if (b.indexOf(v) !== -1) {\n r.push(v);\n }\n }\n return r;\n}\nfunction mergeTags(a, b) {\n if (a === emptyTags) {\n return b;\n }\n if (b === emptyTags) {\n return a;\n }\n var r = Object.assign({}, a);\n for (var k in b) {\n if (a.hasOwnProperty(k)) {\n var intersection_1 = intersect(a[k], b[k]);\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 return r;\n}\nfunction intersectTags(a, b) {\n if (a === emptyTags || b === emptyTags) {\n return emptyTags;\n }\n var r = emptyTags;\n for (var k in a) {\n if (b.hasOwnProperty(k)) {\n var intersection_2 = intersect(a[k], b[k]);\n if (intersection_2.length === 0) {\n if (r === emptyTags) {\n r = {};\n }\n r[k] = a[k].concat(b[k]);\n }\n }\n }\n return r;\n}\n// tslint:disable-next-line: deprecation\nfunction isAnyC(codec) {\n return codec._tag === 'AnyType';\n}\nfunction isLiteralC(codec) {\n return codec._tag === 'LiteralType';\n}\nfunction isKeyofC(codec) {\n return codec._tag === 'KeyofType';\n}\nfunction isTypeC(codec) {\n return codec._tag === 'InterfaceType';\n}\nfunction isPartialC(codec) {\n return codec._tag === 'PartialType';\n}\n// tslint:disable-next-line: deprecation\nfunction isStrictC(codec) {\n return codec._tag === 'StrictType';\n}\nfunction isExactC(codec) {\n return codec._tag === 'ExactType';\n}\n// tslint:disable-next-line: deprecation\nfunction isRefinementC(codec) {\n return codec._tag === 'RefinementType';\n}\nfunction isIntersectionC(codec) {\n return codec._tag === 'IntersectionType';\n}\nfunction isUnionC(codec) {\n return codec._tag === 'UnionType';\n}\nfunction isRecursiveC(codec) {\n return codec._tag === 'RecursiveType';\n}\nvar lazyCodecs = [];\n/**\n * @internal\n */\nexport function getTags(codec) {\n if (lazyCodecs.indexOf(codec) !== -1) {\n return emptyTags;\n }\n if (isTypeC(codec) || isStrictC(codec)) {\n var index = emptyTags;\n // tslint:disable-next-line: forin\n for (var k in codec.props) {\n var prop = codec.props[k];\n if (isLiteralC(prop)) {\n if (index === emptyTags) {\n index = {};\n }\n index[k] = [prop.value];\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 return emptyTags;\n}\n/**\n * @internal\n */\nexport function getIndex(codecs) {\n var tags = getTags(codecs[0]);\n var keys = Object.keys(tags);\n var len = codecs.length;\n var _loop_1 = function (k) {\n var all = tags[k].slice();\n var index = [tags[k]];\n for (var i = 1; i < len; i++) {\n var codec = codecs[i];\n var ctags = getTags(codec);\n var values = ctags[k];\n // tslint:disable-next-line: strict-type-predicates\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 return {\n value: [k, index]\n };\n };\n keys: for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var k = keys_1[_i];\n var state_1 = _loop_1(k);\n if (typeof state_1 === \"object\") return state_1.value;\n switch (state_1) {\n case \"continue-keys\":\n continue keys;\n }\n }\n return undefined;\n}\n// -------------------------------------------------------------------------------------\n// primitives\n// -------------------------------------------------------------------------------------\n/**\n * @since 1.0.0\n */\nvar NullType = /** @class */function (_super) {\n __extends(NullType, _super);\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 _this._tag = 'NullType';\n return _this;\n }\n return NullType;\n}(Type);\nexport { NullType };\n/**\n * @category primitives\n * @since 1.0.0\n */\nexport var nullType = new NullType();\n/**\n * @since 1.0.0\n */\nvar UndefinedType = /** @class */function (_super) {\n __extends(UndefinedType, _super);\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 _this._tag = 'UndefinedType';\n return _this;\n }\n return UndefinedType;\n}(Type);\nexport { UndefinedType };\nvar undefinedType = new UndefinedType();\n/**\n * @since 1.2.0\n */\nvar VoidType = /** @class */function (_super) {\n __extends(VoidType, _super);\n function VoidType() {\n var _this = _super.call(this, 'void', undefinedType.is, undefinedType.validate, identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'VoidType';\n return _this;\n }\n return VoidType;\n}(Type);\nexport { VoidType };\n/**\n * @category primitives\n * @since 1.2.0\n */\nexport var voidType = new VoidType();\n/**\n * @since 1.5.0\n */\nvar UnknownType = /** @class */function (_super) {\n __extends(UnknownType, _super);\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 _this._tag = 'UnknownType';\n return _this;\n }\n return UnknownType;\n}(Type);\nexport { UnknownType };\n/**\n * @category primitives\n * @since 1.5.0\n */\nexport var unknown = new UnknownType();\n/**\n * @since 1.0.0\n */\nvar StringType = /** @class */function (_super) {\n __extends(StringType, _super);\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 _this._tag = 'StringType';\n return _this;\n }\n return StringType;\n}(Type);\nexport { StringType };\n/**\n * @category primitives\n * @since 1.0.0\n */\nexport var string = new StringType();\n/**\n * @since 1.0.0\n */\nvar NumberType = /** @class */function (_super) {\n __extends(NumberType, _super);\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 _this._tag = 'NumberType';\n return _this;\n }\n return NumberType;\n}(Type);\nexport { NumberType };\n/**\n * @category primitives\n * @since 1.0.0\n */\nexport var number = new NumberType();\n/**\n * @since 2.1.0\n */\nvar BigIntType = /** @class */function (_super) {\n __extends(BigIntType, _super);\n function BigIntType() {\n var _this = _super.call(this, 'bigint',\n // 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 _this._tag = 'BigIntType';\n return _this;\n }\n return BigIntType;\n}(Type);\nexport { BigIntType };\n/**\n * @category primitives\n * @since 2.1.0\n */\nexport var bigint = new BigIntType();\n/**\n * @since 1.0.0\n */\nvar BooleanType = /** @class */function (_super) {\n __extends(BooleanType, _super);\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 _this._tag = 'BooleanType';\n return _this;\n }\n return BooleanType;\n}(Type);\nexport { BooleanType };\n/**\n * @category primitives\n * @since 1.0.0\n */\nexport var boolean = new BooleanType();\n/**\n * @since 1.0.0\n */\nvar AnyArrayType = /** @class */function (_super) {\n __extends(AnyArrayType, _super);\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 _this._tag = 'AnyArrayType';\n return _this;\n }\n return AnyArrayType;\n}(Type);\nexport { AnyArrayType };\n/**\n * @category primitives\n * @since 1.7.1\n */\nexport var UnknownArray = new AnyArrayType();\n/**\n * @since 1.0.0\n */\nvar AnyDictionaryType = /** @class */function (_super) {\n __extends(AnyDictionaryType, _super);\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 _this._tag = 'AnyDictionaryType';\n return _this;\n }\n return AnyDictionaryType;\n}(Type);\nexport { AnyDictionaryType };\n/**\n * @category primitives\n * @since 1.7.1\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 */\nvar LiteralType = /** @class */function (_super) {\n __extends(LiteralType, _super);\n function LiteralType(name, is, validate, encode, value) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.value = value;\n /**\n * @since 1.0.0\n */\n _this._tag = 'LiteralType';\n return _this;\n }\n return LiteralType;\n}(Type);\nexport { LiteralType };\n/**\n * @category constructors\n * @since 1.0.0\n */\nexport function literal(value, name) {\n if (name === void 0) {\n name = JSON.stringify(value);\n }\n var is = function (u) {\n return u === value;\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 */\nvar KeyofType = /** @class */function (_super) {\n __extends(KeyofType, _super);\n function KeyofType(name, is, validate, encode, keys) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.keys = keys;\n /**\n * @since 1.0.0\n */\n _this._tag = 'KeyofType';\n return _this;\n }\n return KeyofType;\n}(Type);\nexport { KeyofType };\n/**\n * @category constructors\n * @since 1.0.0\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 var is = function (u) {\n return string.is(u) && hasOwnProperty.call(keys, u);\n };\n return new KeyofType(name, is, function (u, c) {\n return is(u) ? success(u) : failure(u, c);\n }, identity, keys);\n}\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @since 1.0.0\n */\nvar RefinementType = /** @class */function (_super) {\n __extends(RefinementType, _super);\n function RefinementType(name, is, validate, encode, type, predicate) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n _this.predicate = predicate;\n /**\n * @since 1.0.0\n */\n _this._tag = 'RefinementType';\n return _this;\n }\n return RefinementType;\n}(Type);\nexport { RefinementType };\n/**\n * @category combinators\n * @since 1.8.1\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 */\nexport var Int = brand(number, function (n) {\n return Number.isInteger(n);\n}, 'Int');\n/**\n * @since 1.0.0\n */\nvar RecursiveType = /** @class */function (_super) {\n __extends(RecursiveType, _super);\n function RecursiveType(name, is, validate, encode, runDefinition) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.runDefinition = runDefinition;\n /**\n * @since 1.0.0\n */\n _this._tag = 'RecursiveType';\n return _this;\n }\n return RecursiveType;\n}(Type);\nexport { RecursiveType };\nObject.defineProperty(RecursiveType.prototype, 'type', {\n get: function () {\n return this.runDefinition();\n },\n enumerable: true,\n configurable: true\n});\n/**\n * @category combinators\n * @since 1.0.0\n */\nexport function recursion(name, definition) {\n var cache;\n var runDefinition = function () {\n if (!cache) {\n cache = definition(Self);\n cache.name = name;\n }\n return cache;\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 */\nvar ArrayType = /** @class */function (_super) {\n __extends(ArrayType, _super);\n function ArrayType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ArrayType';\n return _this;\n }\n return ArrayType;\n}(Type);\nexport { ArrayType };\n/**\n * @category combinators\n * @since 1.0.0\n */\nexport function array(item, name) {\n if (name === void 0) {\n name = \"Array<\" + item.name + \">\";\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 if (isLeft(e)) {\n return e;\n }\n var us = e.right;\n var len = us.length;\n var as = us;\n var errors = [];\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 if (isLeft(result)) {\n pushAll(errors, result.left);\n } else {\n var ai = result.right;\n if (ai !== ui) {\n if (as === us) {\n as = us.slice();\n }\n as[i] = ai;\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 */\nvar InterfaceType = /** @class */function (_super) {\n __extends(InterfaceType, _super);\n function InterfaceType(name, is, validate, encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.props = props;\n /**\n * @since 1.0.0\n */\n _this._tag = 'InterfaceType';\n return _this;\n }\n return InterfaceType;\n}(Type);\nexport { InterfaceType };\n/**\n * @category combinators\n * @since 1.0.0\n */\nexport function type(props, name) {\n if (name === void 0) {\n name = getInterfaceTypeName(props);\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 if (uk === undefined && !hasOwnProperty.call(u, k) || !types[i].is(uk)) {\n return false;\n }\n }\n return true;\n }\n return false;\n }, function (u, c) {\n var e = UnknownRecord.validate(u, c);\n if (isLeft(e)) {\n return e;\n }\n var o = e.right;\n var a = o;\n var errors = [];\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 if (isLeft(result)) {\n pushAll(errors, result.left);\n } else {\n var vak = result.right;\n if (vak !== ak || vak === undefined && !hasOwnProperty.call(a, k)) {\n /* istanbul ignore next */\n if (a === o) {\n a = __assign({}, o);\n }\n a[k] = vak;\n }\n }\n }\n return errors.length > 0 ? failures(errors) : success(a);\n }, useIdentity(types) ? identity : function (a) {\n var s = __assign({}, a);\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var encode = types[i].encode;\n if (encode !== identity) {\n s[k] = encode(a[k]);\n }\n }\n return s;\n }, props);\n}\n/**\n * @since 1.0.0\n */\nvar PartialType = /** @class */function (_super) {\n __extends(PartialType, _super);\n function PartialType(name, is, validate, encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.props = props;\n /**\n * @since 1.0.0\n */\n _this._tag = 'PartialType';\n return _this;\n }\n return PartialType;\n}(Type);\nexport { PartialType };\n/**\n * @category combinators\n * @since 1.0.0\n */\nexport function partial(props, name) {\n if (name === void 0) {\n name = getPartialTypeName(getInterfaceTypeName(props));\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 if (uk !== undefined && !props[k].is(uk)) {\n return false;\n }\n }\n return true;\n }\n return false;\n }, function (u, c) {\n var e = UnknownRecord.validate(u, c);\n if (isLeft(e)) {\n return e;\n }\n var o = e.right;\n var a = o;\n var errors = [];\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 if (isLeft(result)) {\n if (ak !== undefined) {\n pushAll(errors, result.left);\n }\n } else {\n var vak = result.right;\n if (vak !== ak) {\n /* istanbul ignore next */\n if (a === o) {\n a = __assign({}, o);\n }\n a[k] = vak;\n }\n }\n }\n return errors.length > 0 ? failures(errors) : success(a);\n }, useIdentity(types) ? identity : function (a) {\n var s = __assign({}, a);\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ak = a[k];\n if (ak !== undefined) {\n s[k] = types[i].encode(ak);\n }\n }\n return s;\n }, props);\n}\n/**\n * @since 1.0.0\n */\nvar DictionaryType = /** @class */function (_super) {\n __extends(DictionaryType, _super);\n function DictionaryType(name, is, validate, encode, domain, codomain) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.domain = domain;\n _this.codomain = codomain;\n /**\n * @since 1.0.0\n */\n _this._tag = 'DictionaryType';\n return _this;\n }\n return DictionaryType;\n}(Type);\nexport { DictionaryType };\n/**\n * @category combinators\n * @since 1.7.1\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 */\nvar UnionType = /** @class */function (_super) {\n __extends(UnionType, _super);\n function UnionType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.types = types;\n /**\n * @since 1.0.0\n */\n _this._tag = 'UnionType';\n return _this;\n }\n return UnionType;\n}(Type);\nexport { UnionType };\n/**\n * @category combinators\n * @since 1.0.0\n */\nexport function union(codecs, name) {\n if (name === void 0) {\n name = getUnionName(codecs);\n }\n var index = getIndex(codecs);\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 var find_1 = function (value) {\n for (var i = 0; i < len_1; i++) {\n if (groups_1[i].indexOf(value) !== -1) {\n return i;\n }\n }\n return undefined;\n };\n // tslint:disable-next-line: deprecation\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 return false;\n }, function (u, c) {\n var e = UnknownRecord.validate(u, c);\n if (isLeft(e)) {\n return e;\n }\n var r = e.right;\n var i = find_1(r[tag_1]);\n if (i === undefined) {\n return failure(u, c);\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 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 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 if (isLeft(result)) {\n pushAll(errors, result.left);\n } else {\n return success(result.right);\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 if (codec.is(a)) {\n return codec.encode(a);\n }\n }\n // https://github.com/gcanti/io-ts/pull/305\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 */\nvar IntersectionType = /** @class */function (_super) {\n __extends(IntersectionType, _super);\n function IntersectionType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.types = types;\n /**\n * @since 1.0.0\n */\n _this._tag = 'IntersectionType';\n return _this;\n }\n return IntersectionType;\n}(Type);\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 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 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 if (isLeft(result)) {\n pushAll(errors, result.left);\n } else {\n us.push(result.right);\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 */\nvar TupleType = /** @class */function (_super) {\n __extends(TupleType, _super);\n function TupleType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.types = types;\n /**\n * @since 1.0.0\n */\n _this._tag = 'TupleType';\n return _this;\n }\n return TupleType;\n}(Type);\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 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 if (isLeft(e)) {\n return e;\n }\n var us = e.right;\n var as = us.length > len ? us.slice(0, len) : us; // strip additional components\n var errors = [];\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 if (isLeft(result)) {\n pushAll(errors, result.left);\n } else {\n var va = result.right;\n if (va !== a) {\n /* istanbul ignore next */\n if (as === us) {\n as = us.slice();\n }\n as[i] = va;\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 */\nvar ReadonlyType = /** @class */function (_super) {\n __extends(ReadonlyType, _super);\n function ReadonlyType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ReadonlyType';\n return _this;\n }\n return ReadonlyType;\n}(Type);\nexport { ReadonlyType };\n/**\n * @category combinators\n * @since 1.0.0\n */\nexport function readonly(codec, name) {\n if (name === void 0) {\n name = \"Readonly<\" + codec.name + \">\";\n }\n return new ReadonlyType(name, codec.is, codec.validate, codec.encode, codec);\n}\n/**\n * @since 1.0.0\n */\nvar ReadonlyArrayType = /** @class */function (_super) {\n __extends(ReadonlyArrayType, _super);\n function ReadonlyArrayType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ReadonlyArrayType';\n return _this;\n }\n return ReadonlyArrayType;\n}(Type);\nexport { ReadonlyArrayType };\n/**\n * @category combinators\n * @since 1.0.0\n */\nexport function readonlyArray(item, name) {\n if (name === void 0) {\n name = \"ReadonlyArray<\" + item.name + \">\";\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 */\nexport var strict = function (props, name) {\n return exact(type(props), name);\n};\n/**\n * @since 1.1.0\n */\nvar ExactType = /** @class */function (_super) {\n __extends(ExactType, _super);\n function ExactType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ExactType';\n return _this;\n }\n return ExactType;\n}(Type);\nexport { ExactType };\n/**\n * Strips additional properties.\n *\n * @category combinators\n * @since 1.1.0\n */\nexport function exact(codec, name) {\n if (name === void 0) {\n name = getExactTypeName(codec);\n }\n var props = getProps(codec);\n return new ExactType(name, codec.is, function (u, c) {\n var e = UnknownRecord.validate(u, c);\n if (isLeft(e)) {\n return e;\n }\n var ce = codec.validate(u, c);\n if (isLeft(ce)) {\n return ce;\n }\n return right(stripKeys(ce.right, props));\n }, function (a) {\n return codec.encode(stripKeys(a, props));\n }, codec);\n}\n// -------------------------------------------------------------------------------------\n// deprecated\n// -------------------------------------------------------------------------------------\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar FunctionType = /** @class */function (_super) {\n __extends(FunctionType, _super);\n function FunctionType() {\n var _this = _super.call(this, 'Function',\n // 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 _this._tag = 'FunctionType';\n return _this;\n }\n return FunctionType;\n}(Type);\nexport { FunctionType };\n/**\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexport var Function = new FunctionType();\n/**\n * @since 1.3.0\n * @deprecated\n */\nvar TaggedUnionType = /** @class */function (_super) {\n __extends(TaggedUnionType, _super);\n function TaggedUnionType(name,\n // tslint:disable-next-line: deprecation\n is,\n // tslint:disable-next-line: deprecation\n validate,\n // tslint:disable-next-line: deprecation\n encode, codecs, tag) {\n var _this = _super.call(this, name, is, validate, encode, codecs) /* istanbul ignore next */ // <= workaround for https://github.com/Microsoft/TypeScript/issues/13455\n || this;\n _this.tag = tag;\n return _this;\n }\n return TaggedUnionType;\n}(UnionType);\nexport { TaggedUnionType };\n/**\n * Use `union` instead.\n *\n * @category combinators\n * @since 1.3.0\n * @deprecated\n */\nexport var taggedUnion = function (tag, codecs, name\n// tslint:disable-next-line: deprecation\n) {\n if (name === void 0) {\n name = getUnionName(codecs);\n }\n var U = union(codecs, name);\n // tslint:disable-next-line: deprecation\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\");\n // tslint:disable-next-line: deprecation\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 */\nexport var getValidationError /* istanbul ignore next */ = function (value, context) {\n return {\n value: value,\n context: context\n };\n};\n/**\n * @since 1.0.0\n * @deprecated\n */\nexport var getDefaultContext /* istanbul ignore next */ = function (decoder) {\n return [{\n key: '',\n type: decoder\n }];\n};\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar NeverType = /** @class */function (_super) {\n __extends(NeverType, _super);\n function NeverType() {\n var _this = _super.call(this, 'never', function (_) {\n return false;\n }, function (u, c) {\n return failure(u, c);\n }, /* istanbul ignore next */\n function () {\n throw new Error('cannot encode never');\n }) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'NeverType';\n return _this;\n }\n return NeverType;\n}(Type);\nexport { NeverType };\n/**\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexport var never = new NeverType();\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar AnyType = /** @class */function (_super) {\n __extends(AnyType, _super);\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 _this._tag = 'AnyType';\n return _this;\n }\n return AnyType;\n}(Type);\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\nexport var any = new AnyType();\n/**\n * Use `UnknownRecord` instead.\n *\n * @category primitives\n * @since 1.0.0\n * @deprecated\n */\nexport var Dictionary = UnknownRecord;\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar ObjectType = /** @class */function (_super) {\n __extends(ObjectType, _super);\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 _this._tag = 'ObjectType';\n return _this;\n }\n return ObjectType;\n}(Type);\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\nexport var object = new ObjectType();\n/**\n * Use `brand` instead.\n *\n * @category combinators\n * @since 1.0.0\n * @deprecated\n */\nexport function refinement(codec, predicate, name) {\n if (name === void 0) {\n name = \"(\" + codec.name + \" | \" + getFunctionName(predicate) + \")\";\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 if (isLeft(e)) {\n return e;\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\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 */\nexport var dictionary = record;\n/**\n * @since 1.0.0\n * @deprecated\n */\nvar StrictType = /** @class */function (_super) {\n __extends(StrictType, _super);\n function StrictType(name,\n // tslint:disable-next-line: deprecation\n is,\n // tslint:disable-next-line: deprecation\n validate,\n // tslint:disable-next-line: deprecation\n encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.props = props;\n /**\n * @since 1.0.0\n */\n _this._tag = 'StrictType';\n return _this;\n }\n return StrictType;\n}(Type);\nexport { StrictType };\n/**\n * Drops the codec \"kind\".\n *\n * @category combinators\n * @since 1.1.0\n * @deprecated\n */\nexport function clean(codec) {\n return codec;\n}\nexport function alias(codec) {\n return function () {\n return codec;\n };\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}",null,"module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMiA0VjIwQzIyIDIxLjEwNDYgMjEuMTA0NiAyMiAyMCAyMkgxNkg4SDRDMi44OTU0MyAyMiAyIDIxLjEwNDYgMiAyMFY0QzIgMi44OTU0MyAyLjg5NTQzIDIgNCAySDhIMTZIMjBDMjEuMTA0NiAyIDIyIDIuODk1NDMgMjIgNFpNMTYgNEgyMFYxMUgxNlY0Wk0xNCAxM0gxMFYyMEgxNFYxM1pNMTAgMTFIMTRWNEgxMFYxMVpNOCAxMUg0VjRIOFYxMVpNOCAxM0g0VjIwSDhWMTNaTTE2IDIwVjEzSDIwVjIwSDE2WiIgZmlsbD0iIzAwODVGRiIvPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAxOCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yIDEwVjYuNjIwODFDMy42NTU0NCA3LjUwNTA5IDYuMTg1NDcgOCA5IDhDMTEuODE0NSA4IDE0LjM0NDYgNy41MDUwOSAxNiA2LjYyMDgxVjEwQzE2IDEwLjgzNyAxMi44OTg3IDEyIDkgMTJDNS4xMDEyOCAxMiAyIDEwLjgzNyAyIDEwWk0wIDEwVjRDMCAxLjUyMzMxIDQuMDYyMTYgMCA5IDBDMTMuOTM3OCAwIDE4IDEuNTIzMzEgMTggNFYxMFYxNkMxOCAxOC40NzY3IDEzLjkzNzggMjAgOSAyMEM0LjA2MjE2IDIwIDAgMTguNDc2NyAwIDE2VjEwWk0xNiAxMi42MjA4VjE2QzE2IDE2LjgzNyAxMi44OTg3IDE4IDkgMThDNS4xMDEyOCAxOCAyIDE2LjgzNyAyIDE2VjEyLjYyMDhDMy42NTU0NCAxMy41MDUxIDYuMTg1NDcgMTQgOSAxNEMxMS44MTQ1IDE0IDE0LjM0NDYgMTMuNTA1MSAxNiAxMi42MjA4Wk05IDZDMTIuODk4NyA2IDE2IDQuODM3MDIgMTYgNEMxNiAzLjE2Mjk4IDEyLjg5ODcgMiA5IDJDNS4xMDEyOCAyIDIgMy4xNjI5OCAyIDRDMiA0LjgzNzAyIDUuMTAxMjggNiA5IDZaIiBmaWxsPSIjMDA4NUZGIi8+Cjwvc3ZnPgo=\"","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","import { Link } from \"gatsby\";\nimport React, { SyntheticEvent } from \"react\";\nimport styled from \"styled-components\";\nimport { Color, Dimen } from \"../constants\";\nimport Gutter from \"./Gutter\";\n\ntype ButtonColor =\n | \"blue\"\n | \"orange\"\n | \"hollow-blue\"\n | \"hollow-dark\"\n | \"hollow-white\";\n\ntype Props = {\n colorTheme: ButtonColor;\n label?: string;\n to?: string;\n href?: string;\n target?: string;\n onClick?: (ev: SyntheticEvent) => void;\n icon?: \"arrow\" | \"play\" | null;\n};\n\nexport default function Button({\n colorTheme = \"orange\",\n label,\n to,\n href,\n target,\n onClick,\n icon = \"arrow\",\n}: Props) {\n return (\n \n {label && (\n <>\n {label}\n {icon && }\n \n )}\n\n {icon === \"arrow\" && (\n \n \n \n )}\n {icon === \"play\" && (\n \n )}\n \n );\n}\n\nconst StyledButton = styled(({ to, ...rest }) =>\n to ? : \n)<{\n $theme: string;\n}>`\n box-sizing: border-box;\n display: flex;\n align-items: center;\n cursor: pointer;\n min-height: 48px;\n padding: 8px 30px;\n font-size: 18px;\n font-weight: 400;\n border-radius: 24px;\n border: 1px solid transparent;\n transition: background-color 200ms, color 200ms;\n\n span {\n flex: 1;\n padding-bottom: 4px;\n }\n\n svg {\n width: 13px;\n height: 12px;\n }\n\n svg,\n img {\n transition: transform 150ms, fill 150ms;\n }\n\n &:hover {\n svg,\n img {\n transform: translateX(7px);\n }\n }\n\n @media (max-width: ${Dimen.breakpointDownXs}px) {\n min-height: 38px;\n padding: 5px 20px;\n border-radius: 19px;\n }\n\n ${(p) =>\n p.$theme === \"blue\" &&\n `\n background-color: ${Color.blue1}; \n color: ${Color.light1};\n svg { fill: ${Color.light1}; }\n `}\n ${(p) =>\n p.$theme === \"orange\" &&\n `\n background-color: ${Color.orange1}; \n color: ${Color.light1};\n svg { fill: ${Color.light1}; }\n\n &:hover {\n background-color: ${Color.secondaryOrange1};\n }\n `}\n ${(p) =>\n p.$theme === \"hollow-blue\" &&\n `\n background-color: transparent;\n color: ${Color.blue1};\n border-color: ${Color.blue1};\n svg { fill: ${Color.blue1}; }\n\n &:hover {\n background-color: ${Color.blue1};\n color: ${Color.light1};\n svg { fill: ${Color.light1}; }\n }\n `}\n ${(p) =>\n p.$theme === \"hollow-dark\" &&\n `\n background-color: transparent; \n color: ${Color.dark4};\n border-color: ${Color.dark4};\n svg { fill: ${Color.dark4}; }\n \n &:hover {\n background-color: ${Color.dark4};\n color: ${Color.light1};\n svg { fill: ${Color.light1}; }\n }\n `}\n ${(p) =>\n p.$theme === \"hollow-white\" &&\n `\n background-color: transparent; \n color: ${Color.light1};\n border-color: ${Color.light1};\n svg { fill: ${Color.light1}; }\n\n &:hover {\n background-color: ${Color.light1};\n color: ${Color.dark4};\n svg { fill: ${Color.dark4}; }\n }\n `}\n`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQ0MCIgaGVpZ2h0PSIxNzQwIiB2aWV3Qm94PSIwIDAgMTQ0MCAxNzQwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWFzayBpZD0ibWFzazAiIG1hc2stdHlwZT0iYWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNDQwIiBoZWlnaHQ9IjE3NDAiPgo8cmVjdCB3aWR0aD0iMTQ0MCIgaGVpZ2h0PSIxNzQwIiBmaWxsPSIjQzRDNEM0Ii8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMCkiPgo8cmVjdCB3aWR0aD0iMTQ0MCIgaGVpZ2h0PSIxNzQwIiBmaWxsPSIjMTExRDI2Ii8+CjxnIG9wYWNpdHk9IjAuNSI+CjxnIG9wYWNpdHk9IjAuNSI+CjxwYXRoIGQ9Ik0xMDM1IC00ODhMMTAzNSAxODgySDY0MUw2NDEgLTQ4OEgxMDM1WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyKSIgc3R5bGU9Im1peC1ibGVuZC1tb2RlOnNjcmVlbiIvPgo8L2c+CjxnIG9wYWNpdHk9IjAuNSI+CjxwYXRoIGQ9Ik01MzAgLTQ4OEw1MzAgMTg4OUg2NTFMNjUxIC00ODhINTMwWiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyKSIgc3R5bGU9Im1peC1ibGVuZC1tb2RlOnNjcmVlbiIvPgo8L2c+CjxnIG9wYWNpdHk9IjAuNSI+CjxwYXRoIGQ9Ik05NSAxODU1SDMzMkwzMzIgLTQ4OEg5NUw5NSAxODU1WiIgZmlsbD0idXJsKCNwYWludDJfbGluZWFyKSIgc3R5bGU9Im1peC1ibGVuZC1tb2RlOnNjcmVlbiIvPgo8L2c+CjxnIG9wYWNpdHk9IjAuNSI+CjxwYXRoIGQ9Ik0xMzAzIDE4NTVIMTAwNEwxMDA0IC00ODhIMTMwM1YxODU1WiIgZmlsbD0idXJsKCNwYWludDNfbGluZWFyKSIgc3R5bGU9Im1peC1ibGVuZC1tb2RlOnNjcmVlbiIvPgo8L2c+CjxnIG9wYWNpdHk9IjAuNSI+CjxwYXRoIGQ9Ik0yOTUgMTg4N0g2MThMNjE4IC00ODhIMjk1TDI5NSAxODg3WiIgZmlsbD0idXJsKCNwYWludDRfbGluZWFyKSIgc3R5bGU9Im1peC1ibGVuZC1tb2RlOnNjcmVlbiIvPgo8L2c+CjxnIG9wYWNpdHk9IjAuNSI+CjxwYXRoIGQ9Ik0xMTUxIDE4ODRIMTQ0MFYtNDg4SDExNTFWMTg4NFoiIGZpbGw9InVybCgjcGFpbnQ1X2xpbmVhcikiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTpzY3JlZW4iLz4KPC9nPgo8ZyBvcGFjaXR5PSIwLjUiPgo8cGF0aCBkPSJNMjI4IDE4NTVIMEwwIC00ODhIMjI4TDIyOCAxODU1WiIgZmlsbD0idXJsKCNwYWludDZfbGluZWFyKSIgc3R5bGU9Im1peC1ibGVuZC1tb2RlOnNjcmVlbiIvPgo8L2c+CjwvZz4KPHJlY3Qgd2lkdGg9IjE0NDAiIGhlaWdodD0iMTc0MCIgZmlsbD0idXJsKCNwYWludDdfbGluZWFyKSIgZmlsbC1vcGFjaXR5PSIwLjUiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTptdWx0aXBseSIvPgo8L2c+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXIiIHgxPSI4MzcuMjAzIiB5MT0iLTQ4Ni4zMzgiIHgyPSI4MzcuMjAzIiB5Mj0iMTg3MC40NiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMUEyRDNBIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzFBMkQzQSIgc3RvcC1vcGFjaXR5PSIwIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhciIgeDE9IjU5MC43NDUiIHkxPSItNDg2LjMzNCIgeDI9IjU5MC43NDUiIHkyPSIxODc3LjQzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiMxQTJEM0EiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMUEyRDNBIiBzdG9wLW9wYWNpdHk9IjAiLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDJfbGluZWFyIiB4MT0iMjE1LjM2NiIgeTE9IjE4NTkuOTEiIHgyPSIyMTUuMzY2IiB5Mj0iLTQ3NC43MjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzFBMkQzQSIgc3RvcC1vcGFjaXR5PSIwIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzFBMkQzQSIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50M19saW5lYXIiIHgxPSIxMTUxLjE1IiB5MT0iMTg1OS45MSIgeDI9IjExNTEuMTUiIHkyPSItNDc0LjcyMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMUEyRDNBIiBzdG9wLW9wYWNpdHk9IjAiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMUEyRDNBIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQ0X2xpbmVhciIgeDE9IjQ1OS4wNDMiIHkxPSIxODkxLjk3IiB4Mj0iNDU5LjA0MyIgeTI9Ii00NzQuNTQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzFBMkQzQSIgc3RvcC1vcGFjaXR5PSIwIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzFBMkQzQSIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50NV9saW5lYXIiIHgxPSIxMjk3Ljc4IiB5MT0iMTg4OC45NyIgeDI9IjEyOTcuNzgiIHkyPSItNDc0LjU1NyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMUEyRDNBIiBzdG9wLW9wYWNpdHk9IjAiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMUEyRDNBIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQ2X2xpbmVhciIgeDE9IjExMi4yMDUiIHkxPSIxODU5LjkxIiB4Mj0iMTEyLjIwNSIgeTI9Ii00NzQuNzIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiMxQTJEM0EiIHN0b3Atb3BhY2l0eT0iMCIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMxQTJEM0EiLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDdfbGluZWFyIiB4MT0iNzIwIiB5MT0iMCIgeDI9IjcyMCIgeTI9IjE3NDAiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzFBMkQzQSIgc3RvcC1vcGFjaXR5PSIwIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzFBMkQzQSIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=\"","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Color } from \"../constants\";\n\ntype Props = {\n background?: \"dark\" | \"light\" | \"blue\" | keyof typeof Color;\n tint?: \"dark\" | \"light\";\n children: React.ReactNode;\n};\n\n/**\n * Pages are split vertically into overall sections. Should be placed directly\n * inside .\n */\nexport default function Section({\n background = \"light\",\n tint = \"dark\",\n children,\n}: Props) {\n let backgroundColor;\n if (background === \"dark\" || background === \"light\" || background === \"blue\")\n backgroundColor = {\n dark: Color.newDark2,\n light: Color.light1,\n blue: Color.blue1,\n }[background];\n else backgroundColor = Color[background];\n\n const textColor = {\n dark: Color.dark4,\n light: Color.light1,\n }[tint];\n\n return (\n \n {children}\n \n );\n}\n\nconst StyledSection = styled(\"section\")<{\n $backgroundColor: string;\n $textColor: string;\n}>`\n background-color: ${(p) => p.$backgroundColor};\n color: ${(p) => p.$textColor};\n\n /* Avoid white line appearing at some zoom levels between sections and\n their top/bottom curves */\n margin: -1px 0;\n`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IjI0IC8gYmFzaWMgLyBkb3dubG9hZCI+CjxwYXRoIGlkPSJpY29uIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE2LjI5MjkgOS4yOTI4OUwxMyAxMi41ODU4VjJIMTFWMTIuNTg1OEw3LjcwNzExIDkuMjkyODlMNi4yOTI4OSAxMC43MDcxTDEyIDE2LjQxNDJMMTcuNzA3MSAxMC43MDcxTDE2LjI5MjkgOS4yOTI4OVpNMjIgMjBWMTZIMjBWMjBINFYxNkgyVjIwQzIgMjEuMTA0NiAyLjg5NTQzIDIyIDQgMjJIMjBDMjEuMTA0NiAyMiAyMiAyMS4xMDQ2IDIyIDIwWiIgZmlsbD0iI0ZFNjYzQSIvPgo8L2c+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi41ODIgMUgxMy42MTMzQzEzLjYxMzMgMS4wODA0NSAxMy42MTAzIDEuMjY0NDMgMTMuNjA2MyAxLjUxNTM1TDEzLjYwNjMgMS41MTU5QzEzLjYwMzMgMS42OTg1OSAxMy41OTk4IDEuOTE2NzIgMTMuNTk2NSAyLjE1NjE5QzEzLjU4ODQgMi43MzcxOSAxMy41ODA3IDMuNDY5MjMgMTMuNTgyMiA0LjIxMDA2QzEzLjU4MzcgNC45NTI5OSAxMy41OTQ0IDUuNjk1MTEgMTMuNjIyNCA2LjI5OTAxQzEzLjYzNjQgNi42MDE2MyAxMy42NTQzIDYuODU4OTIgMTMuNjc2IDcuMDU5MDRDMTMuNjk2OSA3LjI1MjE3IDEzLjcxNjMgNy4zMzg1OCAxMy43MiA3LjM1NTM1QzEzLjcyMDYgNy4zNTgwNCAxMy43MjA4IDcuMzU4OTMgMTMuNzIwNiA3LjM1ODE5QzEzLjg5NTMgNy44NjA4OSAxNC4zMjk0IDguNTE3OTEgMTUuNTgzNSA5LjE0NDk0QzE2LjkzNTkgOS44MjExNiAxNy44NDU2IDEwLjcwMjkgMTguNDAxOSAxMS43NTM3QzE4Ljk1MDggMTIuNzkwNSAxOS4xMTMzIDEzLjkxMiAxOS4xMTMzIDE1LjAwMjFWMTguNDE4NUwyMS4wMzEyIDE2Ljc3NDVMMjIuMjc4NiAxOC4yMjk3TDE4Ljc3ODYgMjEuMjI5N0wxOC4xNTQ5IDIxLjc2NDNMMTcuNTMxMiAyMS4yMjk3TDE0LjAzMTIgMTguMjI5N0wxNS4yNzg2IDE2Ljc3NDVMMTcuMTk2NiAxOC40MTg1VjE1LjAwMjFDMTcuMTk2NiAxNC4wOTIyIDE3LjA1OTEgMTMuMzEzNyAxNi43MDggMTIuNjUwNUMxNi4zNjQzIDEyLjAwMTMgMTUuNzczOSAxMS4zODMgMTQuNzI2MyAxMC44NTkzQzEzLjM4NjcgMTAuMTg5NCAxMi41ODQgOS4zODI3OSAxMi4xMzkzIDguNTIxMjlDMTEuNjk0NiA5LjM4Mjc5IDEwLjg5MTkgMTAuMTg5NCA5LjU1MjI1IDEwLjg1OTNDOC41MDQ2OSAxMS4zODMgNy45MTQzNCAxMi4wMDEzIDcuNTcwNjQgMTIuNjUwNUM3LjIxOTUgMTMuMzEzNyA3LjA4MjAxIDE0LjA5MjIgNy4wODIwMSAxNS4wMDIxVjE4LjQxODVMOSAxNi43NzQ1TDEwLjI0NzMgMTguMjI5N0w2Ljc0NzM1IDIxLjIyOTdMNi4xMjM2OCAyMS43NjQzTDUuNSAyMS4yMjk3TDIgMTguMjI5N0wzLjI0NzM1IDE2Ljc3NDVMNS4xNjUzNCAxOC40MTg1VjE1LjAwMjFDNS4xNjUzNCAxMy45MTIgNS4zMjc4NSAxMi43OTA1IDUuODc2NzEgMTEuNzUzN0M2LjQzMzAxIDEwLjcwMjkgNy4zNDI2NiA5LjgyMTE2IDguNjk1MSA5LjE0NDk0QzkuOTQ5MTYgOC41MTc5MSAxMC4zODMzIDcuODYwODkgMTAuNTU4IDcuMzU4MTlDMTAuNTU3OCA3LjM1ODkzIDEwLjU1OCA3LjM1ODA1IDEwLjU1ODYgNy4zNTU0MUwxMC41NTg2IDcuMzU1MzVDMTAuNTYyMyA3LjMzODU4IDEwLjU4MTcgNy4yNTIxNyAxMC42MDI2IDcuMDU5MDRDMTAuNjI0MyA2Ljg1ODkyIDEwLjY0MjIgNi42MDE2MyAxMC42NTYyIDYuMjk5MDFDMTAuNjg0MiA1LjY5NTExIDEwLjY5NDkgNC45NTI5OSAxMC42OTY0IDQuMjEwMDZDMTAuNjk3OSAzLjQ2OTIzIDEwLjY5MDIgMi43MzcxOSAxMC42ODIxIDIuMTU2MTlDMTAuNjc4OCAxLjkxNjcyIDEwLjY3NTMgMS42OTg1OSAxMC42NzIzIDEuNTE1OUwxMC42NzIzIDEuNTE1MzVDMTAuNjY4MyAxLjI2NDQzIDEwLjY2NTMgMS4wODA0NSAxMC42NjUzIDFIMTEuNjk2NkgxMi41ODJaIiBmaWxsPSIjMDA4NUZGIi8+Cjwvc3ZnPgo=\"",null,"/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar b = Symbol.for(\"react.element\"),\n c = Symbol.for(\"react.portal\"),\n d = Symbol.for(\"react.fragment\"),\n e = Symbol.for(\"react.strict_mode\"),\n f = Symbol.for(\"react.profiler\"),\n g = Symbol.for(\"react.provider\"),\n h = Symbol.for(\"react.context\"),\n k = Symbol.for(\"react.server_context\"),\n l = Symbol.for(\"react.forward_ref\"),\n m = Symbol.for(\"react.suspense\"),\n n = Symbol.for(\"react.suspense_list\"),\n p = Symbol.for(\"react.memo\"),\n q = Symbol.for(\"react.lazy\"),\n t = Symbol.for(\"react.offscreen\"),\n u;\nu = Symbol.for(\"react.module.reference\");\nfunction v(a) {\n if (\"object\" === typeof a && null !== a) {\n var r = a.$$typeof;\n switch (r) {\n case b:\n switch (a = a.type, a) {\n case d:\n case f:\n case e:\n case m:\n case n:\n return a;\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case h:\n case l:\n case q:\n case p:\n case g:\n return a;\n default:\n return r;\n }\n }\n case c:\n return r;\n }\n }\n}\nexports.ContextConsumer = h;\nexports.ContextProvider = g;\nexports.Element = b;\nexports.ForwardRef = l;\nexports.Fragment = d;\nexports.Lazy = q;\nexports.Memo = p;\nexports.Portal = c;\nexports.Profiler = f;\nexports.StrictMode = e;\nexports.Suspense = m;\nexports.SuspenseList = n;\nexports.isAsyncMode = function () {\n return !1;\n};\nexports.isConcurrentMode = function () {\n return !1;\n};\nexports.isContextConsumer = function (a) {\n return v(a) === h;\n};\nexports.isContextProvider = function (a) {\n return v(a) === g;\n};\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === b;\n};\nexports.isForwardRef = function (a) {\n return v(a) === l;\n};\nexports.isFragment = function (a) {\n return v(a) === d;\n};\nexports.isLazy = function (a) {\n return v(a) === q;\n};\nexports.isMemo = function (a) {\n return v(a) === p;\n};\nexports.isPortal = function (a) {\n return v(a) === c;\n};\nexports.isProfiler = function (a) {\n return v(a) === f;\n};\nexports.isStrictMode = function (a) {\n return v(a) === e;\n};\nexports.isSuspense = function (a) {\n return v(a) === m;\n};\nexports.isSuspenseList = function (a) {\n return v(a) === n;\n};\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === d || a === f || a === e || a === m || a === n || a === t || \"object\" === typeof a && null !== a && (a.$$typeof === q || a.$$typeof === p || a.$$typeof === g || a.$$typeof === h || a.$$typeof === l || a.$$typeof === u || void 0 !== a.getModuleId) ? !0 : !1;\n};\nexports.typeOf = v;","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\";\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};\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\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 return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n 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};\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\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 return target;\n};\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (encode === false) {\n return String(str);\n }\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\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 var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\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};\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 for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n return innermostBaseTag;\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 if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n var value = tag[primaryAttributeKey].toLowerCase();\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n return approvedTags;\n }, []).reverse();\n};\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n return null;\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};\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\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;\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\nvar _helmetCallback = null;\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\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};\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 if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n if (!elementTag) {\n return;\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 for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\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};\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 if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\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 newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n 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};\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};\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};\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};\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};\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};\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\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 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};\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\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};\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\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 HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\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 HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\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 case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n return newFlattenedProps;\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 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 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 return true;\n };\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n var arrayTypeChildren = {};\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n _this2.warnOnInvalidChildren(child, nestedChildren);\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 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 HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n var newProps = _extends({}, props);\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n return React.createElement(Component, newProps);\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 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 return mappedState;\n }, _temp;\n};\nvar NullComponent = function NullComponent() {\n return null;\n};\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport default HelmetExport;\nexport { HelmetExport as Helmet };","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","import * as React from \"react\";\nimport styled from \"styled-components\";\n\ntype Props = {\n width: number;\n children: React.ReactNode;\n};\n\nexport default function MaxWidth({ width, children }: Props) {\n return {children};\n}\n\nconst StyledContainer = styled(\"div\")<{ $width: number }>`\n margin: 0 auto;\n width: 100%;\n max-width: ${(p) => p.$width}px;\n`;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQ0MCIgaGVpZ2h0PSI2NiIgdmlld0JveD0iMCAwIDE0NDAgNjYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtYXNrIGlkPSJtYXNrMCIgbWFzay10eXBlPSJhbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjE0NDAiIGhlaWdodD0iNjYiPgo8cmVjdCB3aWR0aD0iMTQ0MCIgaGVpZ2h0PSI2NiIgZmlsbD0iI0M0QzRDNCIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPGNpcmNsZSBjeD0iNzIwIiBjeT0iMzk5OSIgcj0iMzk5OSIgZmlsbD0iIzExMUQyNiIvPgo8ZyBvcGFjaXR5PSIwLjUiPgo8bWFzayBpZD0ibWFzazEiIG1hc2stdHlwZT0iYWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9Ii0zMjc5IiB5PSIwIiB3aWR0aD0iNzk5OCIgaGVpZ2h0PSI3OTk4Ij4KPGNpcmNsZSBjeD0iNzIwIiBjeT0iMzk5OSIgcj0iMzk5OSIgZmlsbD0iIzExMUQyNiIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazEpIj4KPGcgb3BhY2l0eT0iMC41Ij4KPHBhdGggZD0iTTEwMzUgLTQ4OEwxMDM1IDE4ODJINjQxTDY0MSAtNDg4SDEwMzVaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXIpIiBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6c2NyZWVuIi8+CjwvZz4KPGcgb3BhY2l0eT0iMC41Ij4KPHBhdGggZD0iTTUzMCAtNDg4TDUzMCAxODg5SDY1MUw2NTEgLTQ4OEg1MzBaIiBmaWxsPSJ1cmwoI3BhaW50MV9saW5lYXIpIiBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6c2NyZWVuIi8+CjwvZz4KPGcgb3BhY2l0eT0iMC41Ij4KPHBhdGggZD0iTTk1IDE4NTVIMzMyTDMzMiAtNDg4SDk1TDk1IDE4NTVaIiBmaWxsPSJ1cmwoI3BhaW50Ml9saW5lYXIpIiBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6c2NyZWVuIi8+CjwvZz4KPGcgb3BhY2l0eT0iMC41Ij4KPHBhdGggZD0iTTEzMDMgMTg1NUgxMDA0TDEwMDQgLTQ4OEgxMzAzVjE4NTVaIiBmaWxsPSJ1cmwoI3BhaW50M19saW5lYXIpIiBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6c2NyZWVuIi8+CjwvZz4KPGcgb3BhY2l0eT0iMC41Ij4KPHBhdGggZD0iTTI5NSAxODg3SDYxOEw2MTggLTQ4OEgyOTVMMjk1IDE4ODdaIiBmaWxsPSJ1cmwoI3BhaW50NF9saW5lYXIpIiBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6c2NyZWVuIi8+CjwvZz4KPGcgb3BhY2l0eT0iMC41Ij4KPHBhdGggZD0iTTExNTEgMTg4NEgxNDQwVi00ODhIMTE1MVYxODg0WiIgZmlsbD0idXJsKCNwYWludDVfbGluZWFyKSIgc3R5bGU9Im1peC1ibGVuZC1tb2RlOnNjcmVlbiIvPgo8L2c+CjxnIG9wYWNpdHk9IjAuNSI+CjxwYXRoIGQ9Ik0yMjggMTg1NUgwTDAgLTQ4OEgyMjhMMjI4IDE4NTVaIiBmaWxsPSJ1cmwoI3BhaW50Nl9saW5lYXIpIiBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6c2NyZWVuIi8+CjwvZz4KPC9nPgo8L2c+CjwvZz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhciIgeDE9IjgzNy4yMDMiIHkxPSItNDg2LjMzOCIgeDI9IjgzNy4yMDMiIHkyPSIxODcwLjQ2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiMxQTJEM0EiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMUEyRDNBIiBzdG9wLW9wYWNpdHk9IjAiLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDFfbGluZWFyIiB4MT0iNTkwLjc0NSIgeTE9Ii00ODYuMzM0IiB4Mj0iNTkwLjc0NSIgeTI9IjE4NzcuNDMiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzFBMkQzQSIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMxQTJEM0EiIHN0b3Atb3BhY2l0eT0iMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50Ml9saW5lYXIiIHgxPSIyMTUuMzY2IiB5MT0iMTg1OS45MSIgeDI9IjIxNS4zNjYiIHkyPSItNDc0LjcyMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMUEyRDNBIiBzdG9wLW9wYWNpdHk9IjAiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMUEyRDNBIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQzX2xpbmVhciIgeDE9IjExNTEuMTUiIHkxPSIxODU5LjkxIiB4Mj0iMTE1MS4xNSIgeTI9Ii00NzQuNzIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiMxQTJEM0EiIHN0b3Atb3BhY2l0eT0iMCIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMxQTJEM0EiLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDRfbGluZWFyIiB4MT0iNDU5LjA0MyIgeTE9IjE4OTEuOTciIHgyPSI0NTkuMDQzIiB5Mj0iLTQ3NC41NCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjMUEyRDNBIiBzdG9wLW9wYWNpdHk9IjAiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMUEyRDNBIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQ1X2xpbmVhciIgeDE9IjEyOTcuNzgiIHkxPSIxODg4Ljk3IiB4Mj0iMTI5Ny43OCIgeTI9Ii00NzQuNTU3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiMxQTJEM0EiIHN0b3Atb3BhY2l0eT0iMCIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMxQTJEM0EiLz4KPC9saW5lYXJHcmFkaWVudD4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDZfbGluZWFyIiB4MT0iMTEyLjIwNSIgeTE9IjE4NTkuOTEiIHgyPSIxMTIuMjA1IiB5Mj0iLTQ3NC43MjEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzFBMkQzQSIgc3RvcC1vcGFjaXR5PSIwIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzFBMkQzQSIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=\"","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","/**\n * A function that always returns `false`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.T\n * @example\n *\n * R.F(); //=> false\n */\nvar F = function () {\n return false;\n};\nexport default F;","/**\n * A function that always returns `true`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.F\n * @example\n *\n * R.T(); //=> true\n */\nvar T = function () {\n return true;\n};\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 case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\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__*/\n_curry2(function add(a, b) {\n return Number(a) + Number(b);\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 while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n idx = 0;\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\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 case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\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 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 while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\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 combined[combinedIdx] = result;\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n combinedIdx += 1;\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__*/\n_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n return _arity(length, _curryN(length, [], fn));\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__*/\n_curry1(function addIndex(fn) {\n return curryN(fn.length, function () {\n var idx = 0;\n var origFn = arguments[0];\n var list = arguments[arguments.length - 1];\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = function () {\n var result = origFn.apply(this, _concat(arguments, [idx, list]));\n idx += 1;\n return result;\n };\n return fn.apply(this, args);\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 case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\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 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__*/\n_curry3(function adjust(idx, fn, list) {\n if (idx >= list.length || idx < -list.length) {\n return list;\n }\n var start = idx < 0 ? list.length : 0;\n var _idx = start + idx;\n var _list = _concat(list);\n _list[_idx] = fn(list[_idx]);\n return _list;\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 var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n if (!_isArray(obj)) {\n var idx = 0;\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n idx += 1;\n }\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n return fn.apply(this, arguments);\n };\n}","export default function _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","export default {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XAll = /*#__PURE__*/\nfunction () {\n function XAll(f, xf) {\n this.xf = xf;\n this.f = f;\n this.all = true;\n }\n XAll.prototype['@@transducer/init'] = _xfBase.init;\n XAll.prototype['@@transducer/result'] = function (result) {\n if (this.all) {\n result = this.xf['@@transducer/step'](result, true);\n }\n return this.xf['@@transducer/result'](result);\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 return result;\n };\n return XAll;\n}();\nvar _xall = /*#__PURE__*/\n_curry2(function _xall(f, xf) {\n return new XAll(f, xf);\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable(['all'], _xall, function all(fn, list) {\n var idx = 0;\n while (idx < list.length) {\n if (!fn(list[idx])) {\n return false;\n }\n idx += 1;\n }\n return true;\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__*/\n_curry2(function max(a, b) {\n return b > a ? b : a;\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 while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\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__*/\n_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n if (!x) {\n return false;\n }\n if (typeof x !== 'object') {\n return false;\n }\n if (_isString(x)) {\n return false;\n }\n if (x.nodeType === 1) {\n return !!x.length;\n }\n if (x.length === 0) {\n return true;\n }\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n return false;\n});\nexport default _isArrayLike;","var XWrap = /*#__PURE__*/\nfunction () {\n function XWrap(fn) {\n this.f = fn;\n }\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n return XWrap;\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__*/\n_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\nexport default bind;","import _isArrayLike from \"./_isArrayLike.js\";\nimport _xwrap from \"./_xwrap.js\";\nimport bind from \"../bind.js\";\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\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 if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n throw new TypeError('reduce: list must be array or iterable');\n}","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XMap = /*#__PURE__*/\nfunction () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n return XMap;\n}();\nvar _xmap = /*#__PURE__*/\n_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\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;\nvar _isArguments = /*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\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{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug = /*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\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\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/\n_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/\n_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n default:\n return _map(fn, functor);\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__*/\n_curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\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__*/\n_curry2(function paths(pathsArray, obj) {\n return pathsArray.map(function (paths) {\n var val = obj;\n var idx = 0;\n var p;\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n p = paths[idx];\n val = _isInteger(p) ? nth(p, val) : val[p];\n idx += 1;\n }\n return val;\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__*/\n_curry2(function path(pathAr, obj) {\n return paths([pathAr], obj)[0];\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__*/\n_curry2(function prop(p, obj) {\n return path([p], obj);\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__*/\n_curry2(function pluck(p, list) {\n return map(prop(p), list);\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__*/\n_curry3(_reduce);\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__*/\n_curry1(function allPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n while (idx < len) {\n if (!preds[idx].apply(this, arguments)) {\n return false;\n }\n idx += 1;\n }\n return true;\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__*/\n_curry1(function always(val) {\n return function () {\n return val;\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__*/\n_curry2(function and(a, b) {\n return a && b;\n});\nexport default and;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XAny = /*#__PURE__*/\nfunction () {\n function XAny(f, xf) {\n this.xf = xf;\n this.f = f;\n this.any = false;\n }\n XAny.prototype['@@transducer/init'] = _xfBase.init;\n XAny.prototype['@@transducer/result'] = function (result) {\n if (!this.any) {\n result = this.xf['@@transducer/step'](result, false);\n }\n return this.xf['@@transducer/result'](result);\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 return result;\n };\n return XAny;\n}();\nvar _xany = /*#__PURE__*/\n_curry2(function _xany(f, xf) {\n return new XAny(f, xf);\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable(['any'], _xany, function any(fn, list) {\n var idx = 0;\n while (idx < list.length) {\n if (fn(list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\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__*/\n_curry1(function anyPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n while (idx < len) {\n if (preds[idx].apply(this, arguments)) {\n return true;\n }\n idx += 1;\n }\n return false;\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__*/\n_curry2(function ap(applyF, applyX) {\n return typeof applyX['fantasy-land/ap'] === 'function' ? applyX['fantasy-land/ap'](applyF) : typeof applyF.ap === 'function' ? applyF.ap(applyX) : typeof applyF === 'function' ? function (x) {\n return applyF(x)(applyX(x));\n } : _reduce(function (acc, f) {\n return _concat(acc, map(f, applyX));\n }, [], applyF);\n});\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 while (idx < limit) {\n acc[idx] = Array.prototype.slice.call(list, idx, idx + n);\n idx += 1;\n }\n return acc;\n}","import _concat from \"./_concat.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XAperture = /*#__PURE__*/\nfunction () {\n function XAperture(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n XAperture.prototype['@@transducer/init'] = _xfBase.init;\n XAperture.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\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 XAperture.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\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 return XAperture;\n}();\nvar _xaperture = /*#__PURE__*/\n_curry2(function _xaperture(n, xf) {\n return new XAperture(n, xf);\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable([], _xaperture, _aperture));\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__*/\n_curry2(function append(el, list) {\n return _concat(list, [el]);\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__*/\n_curry2(function apply(fn, args) {\n return fn.apply(this, args);\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__*/\n_curry1(function values(obj) {\n var props = keys(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n return vals;\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\nvar applySpec = /*#__PURE__*/\n_curry1(function applySpec(spec) {\n spec = mapValues(function (v) {\n return typeof v == 'function' ? v : applySpec(v);\n }, spec);\n return curryN(reduce(max, 0, pluck('length', values(spec))), function () {\n var args = arguments;\n return mapValues(function (f) {\n return apply(f, args);\n }, spec);\n });\n});\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__*/\n_curry2(function applyTo(x, f) {\n return f(x);\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__*/\n_curry3(function ascend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n});\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__*/\n_curry3(function assoc(prop, val, obj) {\n var result = {};\n for (var p in obj) {\n result[p] = obj[p];\n }\n result[prop] = val;\n return result;\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__*/\n_curry1(function isNil(x) {\n return x == null;\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__*/\n_curry3(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n var idx = path[0];\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 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});\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__*/\n_curry2(function nAry(n, fn) {\n switch (n) {\n case 0:\n return function () {\n return fn.call(this);\n };\n case 1:\n return function (a0) {\n return fn.call(this, a0);\n };\n case 2:\n return function (a0, a1) {\n return fn.call(this, a0, a1);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.call(this, a0, a1, a2);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.call(this, a0, a1, a2, a3);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.call(this, a0, a1, a2, a3, a4);\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 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 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 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 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 default:\n throw new Error('First argument to nAry must be a non-negative integer no greater than ten');\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__*/\n_curry1(function binary(fn) {\n return nAry(2, fn);\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__*/\n_curry2(function liftN(arity, fn) {\n var lifted = curryN(arity, fn);\n return curryN(arity, function () {\n return _reduce(ap, map(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));\n });\n});\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__*/\n_curry1(function lift(fn) {\n return liftN(fn.length, fn);\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__*/\n_curry2(function both(f, g) {\n return _isFunction(f) ? function _both() {\n return f.apply(this, arguments) && g.apply(this, arguments);\n } : lift(and)(f, g);\n});\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__*/\n_curry1(function curry(fn) {\n return curryN(fn.length, fn);\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__*/\ncurry(function call(fn) {\n return fn.apply(this, Array.prototype.slice.call(arguments, 1));\n});\nexport default call;","import _isArrayLike from \"./_isArrayLike.js\";\n/**\n * `_makeFlat` is a helper function that returns a one-level or fully recursive\n * function based on the flag passed in.\n *\n * @private\n */\n\nexport default function _makeFlat(recursive) {\n return function flatt(list) {\n var value, jlen, j;\n var result = [];\n var idx = 0;\n var ilen = list.length;\n while (idx < ilen) {\n if (_isArrayLike(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n idx += 1;\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\";\nvar preservingReduced = function (xf) {\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function (result) {\n return xf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n var ret = xf['@@transducer/step'](result, input);\n return ret['@@transducer/reduced'] ? _forceReduced(ret) : ret;\n }\n };\n};\nvar _flatCat = function _xcat(xf) {\n var rxf = preservingReduced(xf);\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function (result) {\n return rxf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n return !_isArrayLike(input) ? _reduce(rxf, result, [input]) : _reduce(rxf, result, input);\n }\n };\n};\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable(['fantasy-land/chain', 'chain'], _xchain, function chain(fn, monad) {\n if (typeof monad === 'function') {\n return function (x) {\n return fn(monad(x))(x);\n };\n }\n return _makeFlat(false)(map(fn, monad));\n}));\nexport default chain;","import _curry2 from \"./_curry2.js\";\nimport _flatCat from \"./_flatCat.js\";\nimport map from \"../map.js\";\nvar _xchain = /*#__PURE__*/\n_curry2(function _xchain(f, xf) {\n return map(f, _flatCat(xf));\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__*/\n_curry3(function clamp(min, max, value) {\n if (min > max) {\n throw new Error('min must not be greater than max in clamp(min, max, value)');\n }\n return value < min ? min : value > max ? max : value;\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__*/\n_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\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 while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n idx += 1;\n }\n refFrom[idx + 1] = value;\n refTo[idx + 1] = copiedValue;\n for (var key in value) {\n copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];\n }\n return copiedValue;\n };\n switch (type(value)) {\n case 'Object':\n return copy({});\n case 'Array':\n return copy([]);\n case 'Date':\n return new Date(value.valueOf());\n case 'RegExp':\n return _cloneRegExp(value);\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__*/\n_curry1(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : _clone(value, [], [], true);\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__*/\n_curry1(function comparator(pred) {\n return function (a, b) {\n return pred(a, b) ? -1 : pred(b, a) ? 1 : 0;\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__*/\n_curry1(function not(a) {\n return !a;\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__*/\nlift(not);\nexport default complement;","export default function _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}","import _isArray from \"./_isArray.js\";\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implemtation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\n\nexport default function _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n if (length === 0) {\n return fn();\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__*/\n_curry3( /*#__PURE__*/\n_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\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__*/\n_curry1( /*#__PURE__*/\n_checkForMethod('tail', /*#__PURE__*/\nslice(1, Infinity)));\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 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__*/\n_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\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 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 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 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 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__*/\nnth(0);\nexport default head;","export default function _identity(x) {\n return x;\n}","import _curry1 from \"./internal/_curry1.js\";\nimport _identity from \"./internal/_identity.js\";\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\nvar identity = /*#__PURE__*/\n_curry1(_identity);\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__*/\n_curry2(function pipeWith(xf, list) {\n if (list.length <= 0) {\n return identity;\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});\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__*/\n_curry2(function composeWith(xf, list) {\n return pipeWith.apply(this, [xf, reverse(list)]);\n});\nexport default composeWith;","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n}","export default function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n idx += 1;\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}\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 var b = _arrayFromIterator(bIterator);\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 return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\nexport default function _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n var typeA = type(a);\n if (typeA !== type(b)) {\n return false;\n }\n if (a == null || b == null) {\n return false;\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 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 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 break;\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 break;\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\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 break;\n }\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n idx -= 1;\n }\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\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 default:\n // Values of other types are only equal if identical.\n return false;\n }\n var keysA = keys(a);\n if (keysA.length !== keys(b).length) {\n return false;\n }\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n idx -= 1;\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__*/\n_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\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 while (idx < list.length) {\n item = list[idx];\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n } // non-zero numbers can utilise Set\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 case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n }\n } // anything else not covered above, defer to R.equals\n\n while (idx < list.length) {\n if (equals(list[idx], a)) {\n return idx;\n }\n idx += 1;\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};\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};\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 while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n idx += 1;\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\";\nvar XFilter = /*#__PURE__*/\nfunction () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XFilter.prototype['@@transducer/init'] = _xfBase.init;\n XFilter.prototype['@@transducer/result'] = _xfBase.result;\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n return XFilter;\n}();\nvar _xfilter = /*#__PURE__*/\n_curry2(function _xfilter(f, xf) {\n return new XFilter(f, xf);\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable(['filter'], _xfilter, function (pred, filterable) {\n return _isObject(filterable) ? _reduce(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n return acc;\n }, {}, keys(filterable)) :\n // else\n _filter(pred, filterable);\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__*/\n_curry2(function reject(pred, filterable) {\n return filter(_complement(pred), filterable);\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 var mapPairs = function (obj, keys) {\n return _map(function (k) {\n return _quote(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + _map(recur, x).join(', ') + '))';\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 case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : _quote(_toISOString(x))) + ')';\n case '[object Null]':\n return 'null';\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : _quote(x);\n case '[object Undefined]':\n return 'undefined';\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n if (repr !== '[object Object]') {\n return repr;\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__*/\n_curry1(function toString(val) {\n return _toString(val, []);\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__*/\n_curry2(function concat(a, b) {\n if (_isArray(a)) {\n if (_isArray(b)) {\n return a.concat(b);\n }\n throw new TypeError(toString(b) + ' is not an array');\n }\n if (_isString(a)) {\n if (_isString(b)) {\n return a + b;\n }\n throw new TypeError(toString(b) + ' is not a string');\n }\n if (a != null && _isFunction(a['fantasy-land/concat'])) {\n return a['fantasy-land/concat'](b);\n }\n if (a != null && _isFunction(a.concat)) {\n return a.concat(b);\n }\n throw new TypeError(toString(a) + ' does not have a method named \"concat\" or \"fantasy-land/concat\"');\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__*/\n_curry1(function cond(pairs) {\n var arity = reduce(max, 0, map(function (pair) {\n return pair[0].length;\n }, pairs));\n return _arity(arity, function () {\n var idx = 0;\n while (idx < pairs.length) {\n if (pairs[idx][0].apply(this, arguments)) {\n return pairs[idx][1].apply(this, arguments);\n }\n idx += 1;\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__*/\n_curry2(function constructN(n, Fn) {\n if (n > 10) {\n throw new Error('Constructor with greater than ten arguments');\n }\n if (n === 0) {\n return function () {\n return new Fn();\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 case 2:\n return new Fn($0, $1);\n case 3:\n return new Fn($0, $1, $2);\n case 4:\n return new Fn($0, $1, $2, $3);\n case 5:\n return new Fn($0, $1, $2, $3, $4);\n case 6:\n return new Fn($0, $1, $2, $3, $4, $5);\n case 7:\n return new Fn($0, $1, $2, $3, $4, $5, $6);\n case 8:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7);\n case 9:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8);\n case 10:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8, $9);\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__*/\n_curry1(function construct(Fn) {\n return constructN(Fn.length, Fn);\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__*/\n_curry2(_includes);\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__*/\n_curry2(function converge(after, fns) {\n return curryN(reduce(max, 0, pluck('length', fns)), function () {\n var args = arguments;\n var context = this;\n return after.apply(context, _map(function (fn) {\n return fn.apply(context, args);\n }, fns));\n });\n});\nexport default converge;","import _curryN from \"./_curryN.js\";\nimport _has from \"./_has.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XReduceBy = /*#__PURE__*/\nfunction () {\n function XReduceBy(valueFn, valueAcc, keyFn, xf) {\n this.valueFn = valueFn;\n this.valueAcc = valueAcc;\n this.keyFn = keyFn;\n this.xf = xf;\n this.inputs = {};\n }\n XReduceBy.prototype['@@transducer/init'] = _xfBase.init;\n XReduceBy.prototype['@@transducer/result'] = function (result) {\n var key;\n for (key in this.inputs) {\n if (_has(key, this.inputs)) {\n result = this.xf['@@transducer/step'](result, this.inputs[key]);\n if (result['@@transducer/reduced']) {\n result = result['@@transducer/value'];\n break;\n }\n }\n }\n this.inputs = null;\n return this.xf['@@transducer/result'](result);\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 return XReduceBy;\n}();\nvar _xreduceBy = /*#__PURE__*/\n_curryN(4, [], function _xreduceBy(valueFn, valueAcc, keyFn, xf) {\n return new XReduceBy(valueFn, valueAcc, keyFn, xf);\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__*/\n_curryN(4, [], /*#__PURE__*/\n_dispatchable([], _xreduceBy, function reduceBy(valueFn, valueAcc, keyFn, list) {\n return _reduce(function (acc, elt) {\n var key = keyFn(elt);\n acc[key] = valueFn(_has(key, acc) ? acc[key] : _clone(valueAcc, [], [], false), elt);\n return acc;\n }, {}, list);\n}));\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__*/\nreduceBy(function (acc, elem) {\n return acc + 1;\n}, 0);\nexport default countBy;","import add from \"./add.js\";\n/**\n * Decrements its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n - 1\n * @see R.inc\n * @example\n *\n * R.dec(42); //=> 41\n */\n\nvar dec = /*#__PURE__*/\nadd(-1);\nexport default dec;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the second argument if it is not `null`, `undefined` or `NaN`;\n * otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {a} default The default value.\n * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.\n * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value\n * @example\n *\n * const defaultTo42 = R.defaultTo(42);\n *\n * defaultTo42(null); //=> 42\n * defaultTo42(undefined); //=> 42\n * defaultTo42(false); //=> false\n * defaultTo42('Ramda'); //=> 'Ramda'\n * // parseInt('string') results in NaN\n * defaultTo42(parseInt('string')); //=> 42\n */\n\nvar defaultTo = /*#__PURE__*/\n_curry2(function defaultTo(d, v) {\n return v == null || v !== v ? d : v;\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__*/\n_curry3(function descend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa > bb ? -1 : aa < bb ? 1 : 0;\n});\nexport default descend;","import _includes from \"./_includes.js\";\nvar _Set = /*#__PURE__*/\nfunction () {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n }; //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n\n _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 return _Set;\n}();\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\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 return false;\n }\n } // these types can all utilise the native Set\n\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n set._nativeSet.add(item);\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 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 return false;\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 if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n return false;\n }\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n set._nativeSet.add(item);\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 return false;\n }\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n return false;\n }\n return true;\n }\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n return false;\n }\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n return false;\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 if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n return false;\n } // scan through all previously applied items\n\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n return false;\n }\n return true;\n }\n} // A simple Set type that honours R.equals semantics\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__*/\n_curry2(function difference(first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n var secondLen = second.length;\n var toFilterOut = new _Set();\n for (var i = 0; i < secondLen; i += 1) {\n toFilterOut.add(second[i]);\n }\n while (idx < firstLen) {\n if (toFilterOut.add(first[idx])) {\n out[out.length] = first[idx];\n }\n idx += 1;\n }\n return out;\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__*/\n_curry3(function differenceWith(pred, first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n while (idx < firstLen) {\n if (!_includesWith(pred, first[idx], second) && !_includesWith(pred, first[idx], out)) {\n out.push(first[idx]);\n }\n idx += 1;\n }\n return out;\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__*/\n_curry2(function dissoc(prop, obj) {\n var result = {};\n for (var p in obj) {\n result[p] = obj[p];\n }\n delete result[prop];\n return result;\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__*/\n_curry3(function remove(start, count, list) {\n var result = Array.prototype.slice.call(list, 0);\n result.splice(start, count);\n return result;\n});\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__*/\n_curry3(function update(idx, x, list) {\n return adjust(idx, always(x), list);\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__*/\n_curry2(function dissocPath(path, obj) {\n switch (path.length) {\n case 0:\n return obj;\n case 1:\n return _isInteger(path[0]) && _isArray(obj) ? remove(path[0], 1, obj) : dissoc(path[0], obj);\n default:\n var head = path[0];\n var tail = Array.prototype.slice.call(path, 1);\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});\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__*/\n_curry2(function divide(a, b) {\n return a / b;\n});\nexport default divide;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XDrop = /*#__PURE__*/\nfunction () {\n function XDrop(n, xf) {\n this.xf = xf;\n this.n = n;\n }\n XDrop.prototype['@@transducer/init'] = _xfBase.init;\n XDrop.prototype['@@transducer/result'] = _xfBase.result;\n XDrop.prototype['@@transducer/step'] = function (result, input) {\n if (this.n > 0) {\n this.n -= 1;\n return result;\n }\n return this.xf['@@transducer/step'](result, input);\n };\n return XDrop;\n}();\nvar _xdrop = /*#__PURE__*/\n_curry2(function _xdrop(n, xf) {\n return new XDrop(n, xf);\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable(['drop'], _xdrop, function drop(n, xs) {\n return slice(Math.max(0, n), Infinity, xs);\n}));\nexport default drop;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XTake = /*#__PURE__*/\nfunction () {\n function XTake(n, xf) {\n this.xf = xf;\n this.n = n;\n this.i = 0;\n }\n XTake.prototype['@@transducer/init'] = _xfBase.init;\n XTake.prototype['@@transducer/result'] = _xfBase.result;\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 return XTake;\n}();\nvar _xtake = /*#__PURE__*/\n_curry2(function _xtake(n, xf) {\n return new XTake(n, xf);\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable(['take'], _xtake, function take(n, xs) {\n return slice(0, n < 0 ? Infinity : n, xs);\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\";\nvar XDropLast = /*#__PURE__*/\nfunction () {\n function XDropLast(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n XDropLast.prototype['@@transducer/init'] = _xfBase.init;\n XDropLast.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\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 this.store(input);\n return result;\n };\n XDropLast.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n return XDropLast;\n}();\nvar _xdropLast = /*#__PURE__*/\n_curry2(function _xdropLast(n, xf) {\n return new XDropLast(n, xf);\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable([], _xdropLast, _dropLast));\nexport default dropLast;","import slice from \"../slice.js\";\nexport default function dropLastWhile(pred, xs) {\n var idx = xs.length - 1;\n while (idx >= 0 && pred(xs[idx])) {\n idx -= 1;\n }\n return slice(0, idx + 1, xs);\n}","import _curry2 from \"./_curry2.js\";\nimport _reduce from \"./_reduce.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XDropLastWhile = /*#__PURE__*/\nfunction () {\n function XDropLastWhile(fn, xf) {\n this.f = fn;\n this.retained = [];\n this.xf = xf;\n }\n XDropLastWhile.prototype['@@transducer/init'] = _xfBase.init;\n XDropLastWhile.prototype['@@transducer/result'] = function (result) {\n this.retained = null;\n return this.xf['@@transducer/result'](result);\n };\n XDropLastWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.retain(result, input) : this.flush(result, input);\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 XDropLastWhile.prototype.retain = function (result, input) {\n this.retained.push(input);\n return result;\n };\n return XDropLastWhile;\n}();\nvar _xdropLastWhile = /*#__PURE__*/\n_curry2(function _xdropLastWhile(fn, xf) {\n return new XDropLastWhile(fn, xf);\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable([], _xdropLastWhile, _dropLastWhile));\nexport default dropLastWhile;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XDropRepeatsWith = /*#__PURE__*/\nfunction () {\n function XDropRepeatsWith(pred, xf) {\n this.xf = xf;\n this.pred = pred;\n this.lastValue = undefined;\n this.seenFirstValue = false;\n }\n XDropRepeatsWith.prototype['@@transducer/init'] = _xfBase.init;\n XDropRepeatsWith.prototype['@@transducer/result'] = _xfBase.result;\n XDropRepeatsWith.prototype['@@transducer/step'] = function (result, input) {\n var sameAsLast = false;\n if (!this.seenFirstValue) {\n this.seenFirstValue = true;\n } else if (this.pred(this.lastValue, input)) {\n sameAsLast = true;\n }\n this.lastValue = input;\n return sameAsLast ? result : this.xf['@@transducer/step'](result, input);\n };\n return XDropRepeatsWith;\n}();\nvar _xdropRepeatsWith = /*#__PURE__*/\n_curry2(function _xdropRepeatsWith(pred, xf) {\n return new XDropRepeatsWith(pred, xf);\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__*/\nnth(-1);\nexport default last;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _xdropRepeatsWith from \"./internal/_xdropRepeatsWith.js\";\nimport last from \"./last.js\";\n/**\n * Returns a new list without any consecutively repeating elements. Equality is\n * determined by applying the supplied predicate to each pair of consecutive elements. The\n * first element in a series of equal elements will be preserved.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * const l = [1, -1, 1, 3, 4, -4, -4, -5, 5, 3, 3];\n * R.dropRepeatsWith(R.eqBy(Math.abs), l); //=> [1, 3, 4, -5, 3]\n */\n\nvar dropRepeatsWith = /*#__PURE__*/\n_curry2( /*#__PURE__*/\n_dispatchable([], _xdropRepeatsWith, function dropRepeatsWith(pred, list) {\n var result = [];\n var idx = 1;\n var len = list.length;\n if (len !== 0) {\n result[0] = list[0];\n while (idx < len) {\n if (!pred(last(result), list[idx])) {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n }\n return result;\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__*/\n_curry1( /*#__PURE__*/\n_dispatchable([], /*#__PURE__*/\n_xdropRepeatsWith(equals), /*#__PURE__*/\ndropRepeatsWith(equals)));\nexport default dropRepeats;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XDropWhile = /*#__PURE__*/\nfunction () {\n function XDropWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XDropWhile.prototype['@@transducer/init'] = _xfBase.init;\n XDropWhile.prototype['@@transducer/result'] = _xfBase.result;\n XDropWhile.prototype['@@transducer/step'] = function (result, input) {\n if (this.f) {\n if (this.f(input)) {\n return result;\n }\n this.f = null;\n }\n return this.xf['@@transducer/step'](result, input);\n };\n return XDropWhile;\n}();\nvar _xdropWhile = /*#__PURE__*/\n_curry2(function _xdropWhile(f, xf) {\n return new XDropWhile(f, xf);\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable(['dropWhile'], _xdropWhile, function dropWhile(pred, xs) {\n var idx = 0;\n var len = xs.length;\n while (idx < len && pred(xs[idx])) {\n idx += 1;\n }\n return slice(idx, Infinity, xs);\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__*/\n_curry2(function or(a, b) {\n return a || b;\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__*/\n_curry2(function either(f, g) {\n return _isFunction(f) ? function _either() {\n return f.apply(this, arguments) || g.apply(this, arguments);\n } : lift(or)(f, g);\n});\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__*/\n_curry1(function empty(x) {\n return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : _isArray(x) ? [] : _isString(x) ? '' : _isObject(x) ? {} : _isArguments(x) ? function () {\n return arguments;\n }() : void 0 // else\n ;\n});\n\nexport default empty;","import _curry2 from \"./internal/_curry2.js\";\nimport drop from \"./drop.js\";\n/**\n * Returns a new list containing the last `n` elements of the given list.\n * If `n > list.length`, returns a list of `list.length` elements.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements to return.\n * @param {Array} xs The collection to consider.\n * @return {Array}\n * @see R.dropLast\n * @example\n *\n * R.takeLast(1, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.takeLast(2, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.takeLast(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(3, 'ramda'); //=> 'mda'\n */\n\nvar takeLast = /*#__PURE__*/\n_curry2(function takeLast(n, xs) {\n return drop(n >= 0 ? xs.length - n : 0, xs);\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__*/\n_curry2(function (suffix, list) {\n return equals(takeLast(suffix.length, list), suffix);\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__*/\n_curry3(function eqBy(f, x, y) {\n return equals(f(x), f(y));\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__*/\n_curry3(function eqProps(prop, obj1, obj2) {\n return equals(obj1[prop], obj2[prop]);\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__*/\n_curry2(function evolve(transformations, object) {\n var result = object instanceof Array ? [] : {};\n var transformation, key, type;\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 return result;\n});\nexport default evolve;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XFind = /*#__PURE__*/\nfunction () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n XFind.prototype['@@transducer/init'] = _xfBase.init;\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n return this.xf['@@transducer/result'](result);\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 return result;\n };\n return XFind;\n}();\nvar _xfind = /*#__PURE__*/\n_curry2(function _xfind(f, xf) {\n return new XFind(f, xf);\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable(['find'], _xfind, function find(fn, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n idx += 1;\n }\n}));\nexport default find;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XFindIndex = /*#__PURE__*/\nfunction () {\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n XFindIndex.prototype['@@transducer/init'] = _xfBase.init;\n XFindIndex.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n return this.xf['@@transducer/result'](result);\n };\n XFindIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, this.idx));\n }\n return result;\n };\n return XFindIndex;\n}();\nvar _xfindIndex = /*#__PURE__*/\n_curry2(function _xfindIndex(f, xf) {\n return new XFindIndex(f, xf);\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable([], _xfindIndex, function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n}));\nexport default findIndex;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XFindLast = /*#__PURE__*/\nfunction () {\n function XFindLast(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XFindLast.prototype['@@transducer/init'] = _xfBase.init;\n XFindLast.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));\n };\n XFindLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.last = input;\n }\n return result;\n };\n return XFindLast;\n}();\nvar _xfindLast = /*#__PURE__*/\n_curry2(function _xfindLast(f, xf) {\n return new XFindLast(f, xf);\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable([], _xfindLast, function findLast(fn, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n if (fn(list[idx])) {\n return list[idx];\n }\n idx -= 1;\n }\n}));\nexport default findLast;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XFindLastIndex = /*#__PURE__*/\nfunction () {\n function XFindLastIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.lastIdx = -1;\n }\n XFindLastIndex.prototype['@@transducer/init'] = _xfBase.init;\n XFindLastIndex.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.lastIdx));\n };\n XFindLastIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n if (this.f(input)) {\n this.lastIdx = this.idx;\n }\n return result;\n };\n return XFindLastIndex;\n}();\nvar _xfindLastIndex = /*#__PURE__*/\n_curry2(function _xfindLastIndex(f, xf) {\n return new XFindLastIndex(f, xf);\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable([], _xfindLastIndex, function findLastIndex(fn, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n if (fn(list[idx])) {\n return idx;\n }\n idx -= 1;\n }\n return -1;\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__*/\n_curry1( /*#__PURE__*/\n_makeFlat(true));\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__*/\n_curry1(function flip(fn) {\n return curryN(fn.length, function (a, b) {\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = b;\n args[1] = a;\n return fn.apply(this, args);\n });\n});\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__*/\n_curry2( /*#__PURE__*/\n_checkForMethod('forEach', function forEach(fn, list) {\n var len = list.length;\n var idx = 0;\n while (idx < len) {\n fn(list[idx]);\n idx += 1;\n }\n return list;\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__*/\n_curry2(function forEachObjIndexed(fn, obj) {\n var keyList = keys(obj);\n var idx = 0;\n while (idx < keyList.length) {\n var key = keyList[idx];\n fn(obj[key], key, obj);\n idx += 1;\n }\n return obj;\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__*/\n_curry1(function fromPairs(pairs) {\n var result = {};\n var idx = 0;\n while (idx < pairs.length) {\n result[pairs[idx][0]] = pairs[idx][1];\n idx += 1;\n }\n return result;\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__*/\n_curry2( /*#__PURE__*/\n_checkForMethod('groupBy', /*#__PURE__*/\nreduceBy(function (acc, item) {\n if (acc == null) {\n acc = [];\n }\n acc.push(item);\n return acc;\n}, null)));\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__*/\n_curry2(function (fn, list) {\n var res = [];\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n var nextidx = idx + 1;\n while (nextidx < len && fn(list[nextidx - 1], list[nextidx])) {\n nextidx += 1;\n }\n res.push(list.slice(idx, nextidx));\n idx = nextidx;\n }\n return res;\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__*/\n_curry2(function gt(a, b) {\n return a > b;\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__*/\n_curry2(function gte(a, b) {\n return a >= b;\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__*/\n_curry2(function hasPath(_path, obj) {\n if (_path.length === 0 || isNil(obj)) {\n return false;\n }\n var val = obj;\n var idx = 0;\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 return true;\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__*/\n_curry2(function has(prop, obj) {\n return hasPath([prop], obj);\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__*/\n_curry2(function hasIn(prop, obj) {\n return prop in obj;\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__*/\n_curry2(_objectIs);\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__*/\n_curry3(function ifElse(condition, onTrue, onFalse) {\n return curryN(Math.max(condition.length, onTrue.length, onFalse.length), function _ifElse() {\n return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments);\n });\n});\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__*/\nadd(1);\nexport default inc;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.any\n * @example\n *\n * R.includes(3, [1, 2, 3]); //=> true\n * R.includes(4, [1, 2, 3]); //=> false\n * R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.includes([42], [[42]]); //=> true\n * R.includes('ba', 'banana'); //=>true\n */\n\nvar includes = /*#__PURE__*/\n_curry2(_includes);\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__*/\nreduceBy(function (acc, elem) {\n return elem;\n}, null);\nexport default indexBy;","import _curry2 from \"./internal/_curry2.js\";\nimport _indexOf from \"./internal/_indexOf.js\";\nimport _isArray from \"./internal/_isArray.js\";\n/**\n * Returns the position of the first occurrence of an item in an array, or -1\n * if the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.lastIndexOf\n * @example\n *\n * R.indexOf(3, [1,2,3,4]); //=> 2\n * R.indexOf(10, [1,2,3,4]); //=> -1\n */\n\nvar indexOf = /*#__PURE__*/\n_curry2(function indexOf(target, xs) {\n return typeof xs.indexOf === 'function' && !_isArray(xs) ? xs.indexOf(target) : _indexOf(xs, target, 0);\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__*/\nslice(0, -1);\nexport default init;","import _includesWith from \"./internal/_includesWith.js\";\nimport _curry3 from \"./internal/_curry3.js\";\nimport _filter from \"./internal/_filter.js\";\n/**\n * Takes a predicate `pred`, a list `xs`, and a list `ys`, and returns a list\n * `xs'` comprising each of the elements of `xs` which is equal to one or more\n * elements of `ys` according to `pred`.\n *\n * `pred` must be a binary function expecting an element from each list.\n *\n * `xs`, `ys`, and `xs'` are treated as sets, semantically, so ordering should\n * not be significant, but since `xs'` is ordered the implementation guarantees\n * that its values are in the same order as they appear in `xs`. Duplicates are\n * not removed, so `xs'` may contain duplicates if `xs` contains duplicates.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Relation\n * @sig ((a, b) -> Boolean) -> [a] -> [b] -> [a]\n * @param {Function} pred\n * @param {Array} xs\n * @param {Array} ys\n * @return {Array}\n * @see R.intersection\n * @example\n *\n * R.innerJoin(\n * (record, id) => record.id === id,\n * [{id: 824, name: 'Richie Furay'},\n * {id: 956, name: 'Dewey Martin'},\n * {id: 313, name: 'Bruce Palmer'},\n * {id: 456, name: 'Stephen Stills'},\n * {id: 177, name: 'Neil Young'}],\n * [177, 456, 999]\n * );\n * //=> [{id: 456, name: 'Stephen Stills'}, {id: 177, name: 'Neil Young'}]\n */\n\nvar innerJoin = /*#__PURE__*/\n_curry3(function innerJoin(pred, xs, ys) {\n return _filter(function (x) {\n return _includesWith(pred, x, ys);\n }, xs);\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__*/\n_curry3(function insert(idx, elt, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n var result = Array.prototype.slice.call(list, 0);\n result.splice(idx, 0, elt);\n return result;\n});\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__*/\n_curry3(function insertAll(idx, elts, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n return [].concat(Array.prototype.slice.call(list, 0, idx), elts, Array.prototype.slice.call(list, idx));\n});\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__*/\n_curry2(function uniqBy(fn, list) {\n var set = new _Set();\n var result = [];\n var idx = 0;\n var appliedItem, item;\n while (idx < list.length) {\n item = list[idx];\n appliedItem = fn(item);\n if (set.add(appliedItem)) {\n result.push(item);\n }\n idx += 1;\n }\n return result;\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__*/\nuniqBy(identity);\nexport default uniq;","import _includes from \"./internal/_includes.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _filter from \"./internal/_filter.js\";\nimport flip from \"./flip.js\";\nimport uniq from \"./uniq.js\";\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of those\n * elements common to both lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The list of elements found in both `list1` and `list2`.\n * @see R.innerJoin\n * @example\n *\n * R.intersection([1,2,3,4], [7,6,5,4,3]); //=> [4, 3]\n */\n\nvar intersection = /*#__PURE__*/\n_curry2(function intersection(list1, list2) {\n var lookupList, filteredList;\n if (list1.length > list2.length) {\n lookupList = list1;\n filteredList = list2;\n } else {\n lookupList = list2;\n filteredList = list1;\n }\n return uniq(_filter(flip(_includes)(lookupList), filteredList));\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__*/\n_curry2( /*#__PURE__*/\n_checkForMethod('intersperse', function intersperse(separator, list) {\n var out = [];\n var idx = 0;\n var length = list.length;\n while (idx < length) {\n if (idx === length - 1) {\n out.push(list[idx]);\n } else {\n out.push(list[idx], separator);\n }\n idx += 1;\n }\n return out;\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 var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n while (idx < length) {\n var source = arguments[idx];\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n idx += 1;\n }\n return output;\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__*/\n_curry2(function objOf(key, val) {\n var obj = {};\n obj[key] = val;\n return obj;\n});\nexport default objOf;","import _objectAssign from \"./_objectAssign.js\";\nimport _identity from \"./_identity.js\";\nimport _isArrayLike from \"./_isArrayLike.js\";\nimport _isTransformer from \"./_isTransformer.js\";\nimport objOf from \"../objOf.js\";\nvar _stepCatArray = {\n '@@transducer/init': Array,\n '@@transducer/step': function (xs, x) {\n xs.push(x);\n return xs;\n },\n '@@transducer/result': _identity\n};\nvar _stepCatString = {\n '@@transducer/init': String,\n '@@transducer/step': function (a, b) {\n return a + b;\n },\n '@@transducer/result': _identity\n};\nvar _stepCatObject = {\n '@@transducer/init': Object,\n '@@transducer/step': function (result, input) {\n return _objectAssign(result, _isArrayLike(input) ? objOf(input[0], input[1]) : input);\n },\n '@@transducer/result': _identity\n};\nexport default function _stepCat(obj) {\n if (_isTransformer(obj)) {\n return obj;\n }\n if (_isArrayLike(obj)) {\n return _stepCatArray;\n }\n if (typeof obj === 'string') {\n return _stepCatString;\n }\n if (typeof obj === 'object') {\n return _stepCatObject;\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__*/\n_curry3(function into(acc, xf, list) {\n return _isTransformer(acc) ? _reduce(xf(acc), acc['@@transducer/init'](), list) : _reduce(xf(_stepCat(acc)), _clone(acc, [], [], false), list);\n});\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__*/\n_curry1(function invert(obj) {\n var props = keys(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\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 return out;\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__*/\n_curry1(function invertObj(obj) {\n var props = keys(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n while (idx < len) {\n var key = props[idx];\n out[obj[key]] = key;\n idx += 1;\n }\n return out;\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__*/\n_curry2(function invoker(arity, method) {\n return curryN(arity + 1, function () {\n var target = arguments[arity];\n if (target != null && _isFunction(target[method])) {\n return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity));\n }\n throw new TypeError(toString(target) + ' does not have a method named \"' + method + '\"');\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__*/\n_curry2(function is(Ctor, val) {\n return val != null && val.constructor === Ctor || val instanceof Ctor;\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__*/\n_curry1(function isEmpty(x) {\n return x != null && equals(x, empty(x));\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__*/\ninvoker(1, 'join');\nexport default join;","import _curry1 from \"./internal/_curry1.js\";\nimport converge from \"./converge.js\";\n/**\n * juxt applies a list of functions to a list of values.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Function\n * @sig [(a, b, ..., m) -> n] -> ((a, b, ..., m) -> [n])\n * @param {Array} fns An array of functions\n * @return {Function} A function that returns a list of values after applying each of the original `fns` to its parameters.\n * @see R.applySpec\n * @example\n *\n * const getRange = R.juxt([Math.min, Math.max]);\n * getRange(3, 4, 9, -3); //=> [-3, 9]\n * @symb R.juxt([f, g, h])(a, b) = [f(a, b), g(a, b), h(a, b)]\n */\n\nvar juxt = /*#__PURE__*/\n_curry1(function juxt(fns) {\n return converge(function () {\n return Array.prototype.slice.call(arguments, 0);\n }, fns);\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__*/\n_curry1(function keysIn(obj) {\n var prop;\n var ks = [];\n for (prop in obj) {\n ks[ks.length] = prop;\n }\n return ks;\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__*/\n_curry2(function lastIndexOf(target, xs) {\n if (typeof xs.lastIndexOf === 'function' && !_isArray(xs)) {\n return xs.lastIndexOf(target);\n } else {\n var idx = xs.length - 1;\n while (idx >= 0) {\n if (equals(xs[idx], target)) {\n return idx;\n }\n idx -= 1;\n }\n return -1;\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__*/\n_curry1(function length(list) {\n return list != null && _isNumber(list.length) ? list.length : NaN;\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__*/\n_curry2(function lens(getter, setter) {\n return function (toFunctorFn) {\n return function (target) {\n return map(function (focus) {\n return setter(focus, target);\n }, toFunctorFn(getter(target)));\n };\n };\n});\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__*/\n_curry1(function lensIndex(n) {\n return lens(nth(n), update(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__*/\n_curry1(function lensPath(p) {\n return lens(path(p), assocPath(p));\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__*/\n_curry1(function lensProp(k) {\n return lens(prop(k), assoc(k));\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__*/\n_curry2(function lt(a, b) {\n return a < b;\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__*/\n_curry2(function lte(a, b) {\n return a <= b;\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__*/\n_curry3(function mapAccum(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var tuple = [acc];\n while (idx < len) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx += 1;\n }\n return [tuple[0], result];\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__*/\n_curry3(function mapAccumRight(fn, acc, list) {\n var idx = list.length - 1;\n var result = [];\n var tuple = [acc];\n while (idx >= 0) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx -= 1;\n }\n return [tuple[0], result];\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__*/\n_curry2(function mapObjIndexed(fn, obj) {\n return _reduce(function (acc, key) {\n acc[key] = fn(obj[key], key, obj);\n return acc;\n }, {}, keys(obj));\n});\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__*/\n_curry2(function match(rx, str) {\n return str.match(rx) || [];\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__*/\n_curry2(function mathMod(m, p) {\n if (!_isInteger(m)) {\n return NaN;\n }\n if (!_isInteger(p) || p < 1) {\n return NaN;\n }\n return (m % p + p) % p;\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__*/\n_curry3(function maxBy(f, a, b) {\n return f(b) > f(a) ? b : a;\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__*/\nreduce(add, 0);\nexport default sum;","import _curry1 from \"./internal/_curry1.js\";\nimport sum from \"./sum.js\";\n/**\n * Returns the mean of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.median\n * @example\n *\n * R.mean([2, 7, 9]); //=> 6\n * R.mean([]); //=> NaN\n */\n\nvar mean = /*#__PURE__*/\n_curry1(function mean(list) {\n return sum(list) / list.length;\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__*/\n_curry1(function median(list) {\n var len = list.length;\n if (len === 0) {\n return NaN;\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});\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__*/\n_curry2(function memoizeWith(mFn, fn) {\n var cache = {};\n return _arity(fn.length, function () {\n var key = mFn.apply(this, arguments);\n if (!_has(key, cache)) {\n cache[key] = fn.apply(this, arguments);\n }\n return cache[key];\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__*/\n_curry2(function merge(l, r) {\n return _objectAssign({}, l, r);\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__*/\n_curry1(function mergeAll(list) {\n return _objectAssign.apply(null, [{}].concat(list));\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__*/\n_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\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 for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n return result;\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__*/\n_curry3(function mergeDeepWithKey(fn, lObj, rObj) {\n return mergeWithKey(function (k, lVal, rVal) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\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__*/\n_curry2(function mergeDeepLeft(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return lVal;\n }, lObj, rObj);\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__*/\n_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\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__*/\n_curry3(function mergeDeepWith(fn, lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return fn(lVal, rVal);\n }, lObj, rObj);\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__*/\n_curry2(function mergeLeft(l, r) {\n return _objectAssign({}, r, l);\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__*/\n_curry2(function mergeRight(l, r) {\n return _objectAssign({}, l, r);\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__*/\n_curry3(function mergeWith(fn, l, r) {\n return mergeWithKey(function (_, _l, _r) {\n return fn(_l, _r);\n }, l, r);\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__*/\n_curry2(function min(a, b) {\n return b < a ? b : a;\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__*/\n_curry3(function minBy(f, a, b) {\n return f(b) < f(a) ? b : a;\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__*/\n_curry2(function modulo(a, b) {\n return a % b;\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__*/\n_curry3(function (from, to, list) {\n var length = list.length;\n var result = list.slice();\n var positiveFrom = from < 0 ? length + from : from;\n var positiveTo = to < 0 ? length + to : to;\n var item = result.splice(positiveFrom, 1);\n return positiveFrom < 0 || positiveFrom >= list.length || positiveTo < 0 || positiveTo >= list.length ? list : [].concat(result.slice(0, positiveTo)).concat(item).concat(result.slice(positiveTo, list.length));\n});\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__*/\n_curry2(function multiply(a, b) {\n return a * b;\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__*/\n_curry1(function negate(n) {\n return -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__*/\n_curry2(function none(fn, input) {\n return all(_complement(fn), input);\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__*/\n_curry1(function nthArg(n) {\n var arity = n < 0 ? 1 : n + 1;\n return curryN(arity, function () {\n return nth(n, arguments);\n });\n});\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__*/\n_curry3(function o(f, g, x) {\n return f(g(x));\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__*/\n_curry1(_of);\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__*/\n_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\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__*/\n_curry1(function once(fn) {\n var called = false;\n var result;\n return _arity(fn.length, function () {\n if (called) {\n return result;\n }\n called = true;\n result = fn.apply(this, arguments);\n return result;\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__*/\n_curry2(function otherwise(f, p) {\n _assertPromise('otherwise', p);\n return p.then(null, f);\n});\nexport default otherwise;","import _curry3 from \"./internal/_curry3.js\"; // `Identity` is a functor that holds a single value, where `map` simply\n// transforms the held value with the provided function.\n\nvar Identity = function (x) {\n return {\n value: x,\n map: function (f) {\n return Identity(f(x));\n }\n };\n};\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the result of applying the given function to\n * the focused value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> (a -> a) -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.over(headLens, R.toUpper, ['foo', 'bar', 'baz']); //=> ['FOO', 'bar', 'baz']\n */\n\nvar over = /*#__PURE__*/\n_curry3(function over(lens, f, x) {\n // The value returned by the getter function is first transformed with `f`,\n // then set as the value of an `Identity`. This is then mapped over with the\n // setter function of the lens.\n return lens(function (y) {\n return Identity(f(y));\n })(x).value;\n});\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__*/\n_curry2(function pair(fst, snd) {\n return [fst, snd];\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__*/\n_createPartialApplicator(_concat);\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__*/\n_createPartialApplicator( /*#__PURE__*/\nflip(_concat));\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__*/\njuxt([filter, reject]);\nexport default partition;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\nimport path from \"./path.js\";\n/**\n * Determines whether a nested path on an object has a specific value, in\n * [`R.equals`](#equals) terms. Most likely used to filter a list.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Relation\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> Boolean\n * @param {Array} path The path of the nested property to use\n * @param {*} val The value to compare the nested property with\n * @param {Object} obj The object to check the nested property in\n * @return {Boolean} `true` if the value equals the nested object property,\n * `false` otherwise.\n * @example\n *\n * const user1 = { address: { zipCode: 90210 } };\n * const user2 = { address: { zipCode: 55555 } };\n * const user3 = { name: 'Bob' };\n * const users = [ user1, user2, user3 ];\n * const isFamous = R.pathEq(['address', 'zipCode'], 90210);\n * R.filter(isFamous, users); //=> [ user1 ]\n */\n\nvar pathEq = /*#__PURE__*/\n_curry3(function pathEq(_path, val, obj) {\n return equals(path(_path, obj), val);\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__*/\n_curry3(function pathOr(d, p, obj) {\n return defaultTo(d, path(p, obj));\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__*/\n_curry3(function pathSatisfies(pred, propPath, obj) {\n return pred(path(propPath, obj));\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__*/\n_curry2(function pick(names, obj) {\n var result = {};\n var idx = 0;\n while (idx < names.length) {\n if (names[idx] in obj) {\n result[names[idx]] = obj[names[idx]];\n }\n idx += 1;\n }\n return result;\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__*/\n_curry2(function pickAll(names, obj) {\n var result = {};\n var idx = 0;\n var len = names.length;\n while (idx < len) {\n var name = names[idx];\n result[name] = obj[name];\n idx += 1;\n }\n return result;\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__*/\n_curry2(function pickBy(test, obj) {\n var result = {};\n for (var prop in obj) {\n if (test(obj[prop], prop, obj)) {\n result[prop] = obj[prop];\n }\n }\n return result;\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 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__*/\n_curry2(function prepend(el, list) {\n return _concat([el], list);\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__*/\nreduce(multiply, 1);\nexport default product;","import _curry2 from \"./internal/_curry2.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Accepts a function `fn` and a list of transformer functions and returns a\n * new curried function. When the new function is invoked, it calls the\n * function `fn` with parameters consisting of the result of calling each\n * supplied handler on successive arguments to the new function.\n *\n * If more arguments are passed to the returned function than transformer\n * functions, those arguments are passed directly to `fn` as additional\n * parameters. If you expect additional arguments that don't need to be\n * transformed, although you can ignore them, it's best to pass an identity\n * function so that the new function reports the correct arity.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [(a -> x1), (b -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} fn The function to wrap.\n * @param {Array} transformers A list of transformer functions\n * @return {Function} The wrapped function.\n * @see R.converge\n * @example\n *\n * R.useWith(Math.pow, [R.identity, R.identity])(3, 4); //=> 81\n * R.useWith(Math.pow, [R.identity, R.identity])(3)(4); //=> 81\n * R.useWith(Math.pow, [R.dec, R.inc])(3, 4); //=> 32\n * R.useWith(Math.pow, [R.dec, R.inc])(3)(4); //=> 32\n * @symb R.useWith(f, [g, h])(a, b) = f(g(a), h(b))\n */\n\nvar useWith = /*#__PURE__*/\n_curry2(function useWith(fn, transformers) {\n return curryN(transformers.length, function () {\n var args = [];\n var idx = 0;\n while (idx < transformers.length) {\n args.push(transformers[idx].call(this, arguments[idx]));\n idx += 1;\n }\n return fn.apply(this, args.concat(Array.prototype.slice.call(arguments, transformers.length)));\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__*/\nuseWith(_map, [pickAll, identity]); // passing `identity` gives correct arity\n\nexport default project;","import _curry3 from \"./internal/_curry3.js\";\nimport equals from \"./equals.js\";\n/**\n * Returns `true` if the specified object property is equal, in\n * [`R.equals`](#equals) terms, to the given value; `false` otherwise.\n * You can test multiple properties with [`R.whereEq`](#whereEq).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.whereEq, R.propSatisfies, R.equals\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond'};\n * const fred = {name: 'Fred', age: 12, hair: 'brown'};\n * const rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * const alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * const kids = [abby, fred, rusty, alois];\n * const hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\n\nvar propEq = /*#__PURE__*/\n_curry3(function propEq(name, val, obj) {\n return equals(val, obj[name]);\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__*/\n_curry3(function propIs(type, name, obj) {\n return is(type, obj[name]);\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__*/\n_curry3(function propOr(val, p, obj) {\n return pathOr(val, [p], obj);\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__*/\n_curry3(function propSatisfies(pred, name, obj) {\n return pred(obj[name]);\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__*/\n_curry2(function props(ps, obj) {\n return ps.map(function (p) {\n return path([p], obj);\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__*/\n_curry2(function range(from, to) {\n if (!(_isNumber(from) && _isNumber(to))) {\n throw new TypeError('Both arguments to range must be numbers');\n }\n var result = [];\n var n = from;\n while (n < to) {\n result.push(n);\n n += 1;\n }\n return result;\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__*/\n_curry3(function reduceRight(fn, acc, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n acc = fn(list[idx], acc);\n idx -= 1;\n }\n return acc;\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__*/\n_curryN(4, [], function _reduceWhile(pred, fn, a, list) {\n return _reduce(function (acc, x) {\n return pred(acc, x) ? fn(acc, x) : _reduced(acc);\n }, a, list);\n});\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__*/\n_curry1(_reduced);\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__*/\n_curry2(function times(fn, n) {\n var len = Number(n);\n var idx = 0;\n var list;\n if (len < 0 || isNaN(len)) {\n throw new RangeError('n must be a non-negative number');\n }\n list = new Array(len);\n while (idx < len) {\n list[idx] = fn(idx);\n idx += 1;\n }\n return list;\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__*/\n_curry2(function repeat(value, n) {\n return times(always(value), 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__*/\n_curry3(function replace(regex, replacement, str) {\n return str.replace(regex, replacement);\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__*/\n_curry3(function scan(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [acc];\n while (idx < len) {\n acc = fn(acc, list[idx]);\n result[idx + 1] = acc;\n idx += 1;\n }\n return result;\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__*/\n_curry2(function sequence(of, traversable) {\n return typeof traversable.sequence === 'function' ? traversable.sequence(of) : reduceRight(function (x, acc) {\n return ap(map(prepend, x), acc);\n }, of([]), traversable);\n});\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__*/\n_curry3(function set(lens, v, x) {\n return over(lens, always(v), x);\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__*/\n_curry2(function sort(comparator, list) {\n return Array.prototype.slice.call(list, 0).sort(comparator);\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__*/\n_curry2(function sortBy(fn, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n });\n});\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__*/\n_curry2(function sortWith(fns, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var result = 0;\n var i = 0;\n while (result === 0 && i < fns.length) {\n result = fns[i](a, b);\n i += 1;\n }\n return result;\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__*/\ninvoker(1, 'split');\nexport default split;","import _curry2 from \"./internal/_curry2.js\";\nimport length from \"./length.js\";\nimport slice from \"./slice.js\";\n/**\n * Splits a given list or string at a given index.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig Number -> [a] -> [[a], [a]]\n * @sig Number -> String -> [String, String]\n * @param {Number} index The index where the array/string is split.\n * @param {Array|String} array The array/string to be split.\n * @return {Array}\n * @example\n *\n * R.splitAt(1, [1, 2, 3]); //=> [[1], [2, 3]]\n * R.splitAt(5, 'hello world'); //=> ['hello', ' world']\n * R.splitAt(-1, 'foobar'); //=> ['fooba', 'r']\n */\n\nvar splitAt = /*#__PURE__*/\n_curry2(function splitAt(index, array) {\n return [slice(0, index, array), slice(index, length(array), array)];\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__*/\n_curry2(function splitEvery(n, list) {\n if (n <= 0) {\n throw new Error('First argument to splitEvery must be a positive integer');\n }\n var result = [];\n var idx = 0;\n while (idx < list.length) {\n result.push(slice(idx, idx += n, list));\n }\n return result;\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__*/\n_curry2(function splitWhen(pred, list) {\n var idx = 0;\n var len = list.length;\n var prefix = [];\n while (idx < len && !pred(list[idx])) {\n prefix.push(list[idx]);\n idx += 1;\n }\n return [prefix, Array.prototype.slice.call(list, idx)];\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__*/\n_curry2(function (prefix, list) {\n return equals(take(prefix.length, list), prefix);\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__*/\n_curry2(function subtract(a, b) {\n return Number(a) - Number(b);\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__*/\n_curry2(function symmetricDifference(list1, list2) {\n return concat(difference(list1, list2), difference(list2, list1));\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__*/\n_curry3(function symmetricDifferenceWith(pred, list1, list2) {\n return concat(differenceWith(pred, list1, list2), differenceWith(pred, list2, list1));\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__*/\n_curry2(function takeLastWhile(fn, xs) {\n var idx = xs.length - 1;\n while (idx >= 0 && fn(xs[idx])) {\n idx -= 1;\n }\n return slice(idx + 1, Infinity, xs);\n});\nexport default takeLastWhile;","import _curry2 from \"./_curry2.js\";\nimport _reduced from \"./_reduced.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XTakeWhile = /*#__PURE__*/\nfunction () {\n function XTakeWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XTakeWhile.prototype['@@transducer/init'] = _xfBase.init;\n XTakeWhile.prototype['@@transducer/result'] = _xfBase.result;\n XTakeWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : _reduced(result);\n };\n return XTakeWhile;\n}();\nvar _xtakeWhile = /*#__PURE__*/\n_curry2(function _xtakeWhile(f, xf) {\n return new XTakeWhile(f, xf);\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable(['takeWhile'], _xtakeWhile, function takeWhile(fn, xs) {\n var idx = 0;\n var len = xs.length;\n while (idx < len && fn(xs[idx])) {\n idx += 1;\n }\n return slice(0, idx, xs);\n}));\nexport default takeWhile;","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\nvar XTap = /*#__PURE__*/\nfunction () {\n function XTap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XTap.prototype['@@transducer/init'] = _xfBase.init;\n XTap.prototype['@@transducer/result'] = _xfBase.result;\n XTap.prototype['@@transducer/step'] = function (result, input) {\n this.f(input);\n return this.xf['@@transducer/step'](result, input);\n };\n return XTap;\n}();\nvar _xtap = /*#__PURE__*/\n_curry2(function _xtap(f, xf) {\n return new XTap(f, xf);\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__*/\n_curry2( /*#__PURE__*/\n_dispatchable([], _xtap, function tap(fn, x) {\n fn(x);\n return x;\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__*/\n_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\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__*/\n_curry2(function andThen(f, p) {\n _assertPromise('andThen', p);\n return p.then(f);\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__*/\ninvoker(0, 'toLowerCase');\nexport default toLower;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Converts an object into an array of key, value arrays. Only the object's\n * own properties are used.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own properties.\n * @see R.fromPairs\n * @example\n *\n * R.toPairs({a: 1, b: 2, c: 3}); //=> [['a', 1], ['b', 2], ['c', 3]]\n */\n\nvar toPairs = /*#__PURE__*/\n_curry1(function toPairs(obj) {\n var pairs = [];\n for (var prop in obj) {\n if (_has(prop, obj)) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n }\n return pairs;\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__*/\n_curry1(function toPairsIn(obj) {\n var pairs = [];\n for (var prop in obj) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n return pairs;\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__*/\ninvoker(0, 'toUpperCase');\nexport default toUpper;","import _reduce from \"./internal/_reduce.js\";\nimport _xwrap from \"./internal/_xwrap.js\";\nimport curryN from \"./curryN.js\";\n/**\n * Initializes a transducer using supplied iterator function. Returns a single\n * item by iterating through the list, successively calling the transformed\n * iterator function and passing it an accumulator value and the current value\n * from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It will be\n * wrapped as a transformer to initialize the transducer. A transformer can be\n * passed directly in place of an iterator function. In both cases, iteration\n * may be stopped early with the [`R.reduced`](#reduced) function.\n *\n * A transducer is a function that accepts a transformer and returns a\n * transformer and can be composed directly.\n *\n * A transformer is an an object that provides a 2-arity reducing iterator\n * function, step, 0-arity initial value function, init, and 1-arity result\n * extraction function, result. The step function is used as the iterator\n * function in reduce. The result function is used to convert the final\n * accumulator into the return type and in most cases is\n * [`R.identity`](#identity). The init function can be used to provide an\n * initial accumulator, but is ignored by transduce.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (c -> c) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array. Wrapped as transformer, if necessary, and used to\n * initialize the transducer\n * @param {*} acc The initial accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced, R.into\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n * R.transduce(transducer, R.flip(R.append), [], numbers); //=> [2, 3]\n *\n * const isOdd = (x) => x % 2 === 1;\n * const firstOddTransducer = R.compose(R.filter(isOdd), R.take(1));\n * R.transduce(firstOddTransducer, R.flip(R.append), [], R.range(0, 100)); //=> [1]\n */\n\nvar transduce = /*#__PURE__*/\ncurryN(4, function transduce(xf, fn, acc, list) {\n return _reduce(xf(typeof fn === 'function' ? _xwrap(fn) : fn), acc, list);\n});\nexport default transduce;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Transposes the rows and columns of a 2D list.\n * When passed a list of `n` lists of length `x`,\n * returns a list of `x` lists of length `n`.\n *\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [[a]] -> [[a]]\n * @param {Array} list A 2D list\n * @return {Array} A 2D list\n * @example\n *\n * R.transpose([[1, 'a'], [2, 'b'], [3, 'c']]) //=> [[1, 2, 3], ['a', 'b', 'c']]\n * R.transpose([[1, 2, 3], ['a', 'b', 'c']]) //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n *\n * // If some of the rows are shorter than the following rows, their elements are skipped:\n * R.transpose([[10, 11], [20], [], [30, 31, 32]]) //=> [[10, 20, 30], [11, 31], [32]]\n * @symb R.transpose([[a], [b], [c]]) = [a, b, c]\n * @symb R.transpose([[a, b], [c, d]]) = [[a, c], [b, d]]\n * @symb R.transpose([[a, b], [c]]) = [[a, c], [b]]\n */\n\nvar transpose = /*#__PURE__*/\n_curry1(function transpose(outerlist) {\n var i = 0;\n var result = [];\n while (i < outerlist.length) {\n var innerlist = outerlist[i];\n var j = 0;\n while (j < innerlist.length) {\n if (typeof result[j] === 'undefined') {\n result[j] = [];\n }\n result[j].push(innerlist[j]);\n j += 1;\n }\n i += 1;\n }\n return result;\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__*/\n_curry3(function traverse(of, f, traversable) {\n return typeof traversable['fantasy-land/traverse'] === 'function' ? traversable['fantasy-land/traverse'](f, of) : sequence(of, map(f, traversable));\n});\nexport default traverse;","import _curry1 from \"./internal/_curry1.js\";\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\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__*/\nws.trim() || ! /*#__PURE__*/\nzeroWidth.trim() ? /*#__PURE__*/\n_curry1(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n}) : /*#__PURE__*/\n_curry1(function trim(str) {\n return str.trim();\n});\nexport default trim;","import _arity from \"./internal/_arity.js\";\nimport _concat from \"./internal/_concat.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * `tryCatch` takes two functions, a `tryer` and a `catcher`. The returned\n * function evaluates the `tryer`; if it does not throw, it simply returns the\n * result. If the `tryer` *does* throw, the returned function evaluates the\n * `catcher` function and returns its result. Note that for effective\n * composition with this function, both the `tryer` and `catcher` functions\n * must return the same type of results.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig (...x -> a) -> ((e, ...x) -> a) -> (...x -> a)\n * @param {Function} tryer The function that may throw.\n * @param {Function} catcher The function that will be evaluated if `tryer` throws.\n * @return {Function} A new function that will catch exceptions and send then to the catcher.\n * @example\n *\n * R.tryCatch(R.prop('x'), R.F)({x: true}); //=> true\n * R.tryCatch(() => { throw 'foo'}, R.always('catched'))('bar') // => 'catched'\n * R.tryCatch(R.times(R.identity), R.always([]))('s') // => []\n * R.tryCatch(() => { throw 'this is not a valid value'}, (err, value)=>({error : err, value }))('bar') // => {'error': 'this is not a valid value', 'value': 'bar'}\n */\n\nvar tryCatch = /*#__PURE__*/\n_curry2(function _tryCatch(tryer, catcher) {\n return _arity(tryer.length, function () {\n try {\n return tryer.apply(this, arguments);\n } catch (e) {\n return catcher.apply(this, _concat([e], arguments));\n }\n });\n});\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__*/\n_curry1(function unapply(fn) {\n return function () {\n return fn(Array.prototype.slice.call(arguments, 0));\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__*/\n_curry1(function unary(fn) {\n return nAry(1, fn);\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__*/\n_curry2(function uncurryN(depth, fn) {\n return curryN(depth, function () {\n var currentDepth = 1;\n var value = fn;\n var idx = 0;\n var endIdx;\n 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 return value;\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__*/\n_curry2(function unfold(fn, seed) {\n var pair = fn(seed);\n var result = [];\n while (pair && pair.length) {\n result[result.length] = pair[0];\n pair = fn(pair[1]);\n }\n return result;\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__*/\n_curry2( /*#__PURE__*/\ncompose(uniq, _concat));\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__*/\n_curry2(function uniqWith(pred, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var item;\n while (idx < len) {\n item = list[idx];\n if (!_includesWith(pred, item, result)) {\n result[result.length] = item;\n }\n idx += 1;\n }\n return result;\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__*/\n_curry3(function unionWith(pred, list1, list2) {\n return uniqWith(pred, _concat(list1, list2));\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__*/\n_curry3(function unless(pred, whenFalseFn, x) {\n return pred(x) ? x : whenFalseFn(x);\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__*/\nchain(_identity);\nexport default unnest;","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Takes a predicate, a transformation function, and an initial value,\n * and returns a value of the same type as the initial value.\n * It does so by applying the transformation until the predicate is satisfied,\n * at which point it returns the satisfactory value.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} fn The iterator function\n * @param {*} init Initial value\n * @return {*} Final value that satisfies predicate\n * @example\n *\n * R.until(R.gt(R.__, 100), R.multiply(2))(1) // => 128\n */\n\nvar until = /*#__PURE__*/\n_curry3(function until(pred, fn, init) {\n var val = init;\n while (!pred(val)) {\n val = fn(val);\n }\n return val;\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__*/\n_curry1(function valuesIn(obj) {\n var prop;\n var vs = [];\n for (prop in obj) {\n vs[vs.length] = obj[prop];\n }\n return vs;\n});\nexport default valuesIn;","import _curry2 from \"./internal/_curry2.js\"; // `Const` is a functor that effectively ignores the function given to `map`.\n\nvar Const = function (x) {\n return {\n value: x,\n 'fantasy-land/map': function () {\n return this;\n }\n };\n};\n/**\n * Returns a \"view\" of the given data structure, determined by the given lens.\n * The lens's focus determines which portion of the data structure is visible.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> s -> a\n * @param {Lens} lens\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.view(xLens, {x: 4, y: 2}); //=> 4\n */\n\nvar view = /*#__PURE__*/\n_curry2(function view(lens, x) {\n // Using `Const` effectively ignores the setter function of the `lens`,\n // leaving the value returned by the getter function unmodified.\n return lens(Const)(x).value;\n});\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__*/\n_curry3(function when(pred, whenTrueFn, x) {\n return pred(x) ? whenTrueFn(x) : x;\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__*/\n_curry2(function where(spec, testObj) {\n for (var prop in spec) {\n if (_has(prop, spec) && !spec[prop](testObj[prop])) {\n return false;\n }\n }\n return true;\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__*/\n_curry2(function whereEq(spec, testObj) {\n return where(map(equals, spec), testObj);\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__*/\n_curry2(function (xs, list) {\n return reject(flip(_includes)(xs), list);\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__*/\n_curry2(function xor(a, b) {\n return Boolean(!a ^ !b);\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__*/\n_curry2(function xprod(a, b) {\n // = xprodWith(prepend); (takes about 3 times as long...)\n var idx = 0;\n var ilen = a.length;\n var j;\n var jlen = b.length;\n var result = [];\n while (idx < ilen) {\n j = 0;\n while (j < jlen) {\n result[result.length] = [a[idx], b[j]];\n j += 1;\n }\n idx += 1;\n }\n return result;\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__*/\n_curry2(function zip(a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n while (idx < len) {\n rv[idx] = [a[idx], b[idx]];\n idx += 1;\n }\n return rv;\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__*/\n_curry2(function zipObj(keys, values) {\n var idx = 0;\n var len = Math.min(keys.length, values.length);\n var out = {};\n while (idx < len) {\n out[keys[idx]] = values[idx];\n idx += 1;\n }\n return out;\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__*/\n_curry3(function zipWith(fn, a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n while (idx < len) {\n rv[idx] = fn(a[idx], b[idx]);\n idx += 1;\n }\n return rv;\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__*/\n_curry1(function thunkify(fn) {\n return curryN(fn.length, function createThunk() {\n var fnArgs = arguments;\n return function invokeThunk() {\n return fn.apply(this, fnArgs);\n };\n });\n});\nexport default thunkify;",null,"/**\n * Groups of sub menu navigation links, shared by:\n * - desktop header nav dropdowns\n * - mobile nav menu\n * - desktop footer nav\n */\nexport const NAV_SUB_MENUS = {\n useCases: [\n {\n title: \"Automatic reconciliation of AP Invoices\",\n icon: require(\"../img/ui/nav_icons/note_text.svg\"),\n linkTo: \"/reconciling-ap-invoices\",\n description:\n \"Automate the reconciliation of accounts payable Invoices into your TMS or ERP in real time.\",\n },\n {\n title: \"Populating Customs Declarations\",\n icon: require(\"../img/ui/nav_icons/file_download.svg\"),\n linkTo: \"/commercial-invoice-automation\",\n description:\n \"Automate data capture from your commercial invoices to quickly and accurately create customs declarations. \",\n },\n {\n title: \"Creating and Updating Import Jobs\",\n icon: require(\"../img/ui/nav_icons/pencil_edit.svg\"),\n linkTo: \"/import-jobs-automation\",\n description:\n \"Automate the creation and update of import jobs from master and house bills contained within pre-alert emails. \",\n },\n {\n title: \"Triage Master Bills for Export\",\n icon: require(\"../img/ui/nav_icons/file_upload.svg\"),\n linkTo: \"/master-bill-management\",\n description: \"Automatically triage master bill management for exports.\",\n },\n {\n title: \"Automatic Filing of Logistics Docs\",\n icon: require(\"../img/ui/nav_icons/docrouter.svg\"),\n linkTo: \"/docrouter\",\n description:\n \"DocRouter automatically categorises and routes your email attachments to the matching Job.\",\n },\n ],\n solutions: [\n {\n title: \"AP Invoice\",\n icon: require(\"../img/ui/nav_icons/clipboard_checked.svg\"),\n linkTo: \"/ap-invoice-automation\",\n },\n {\n title: \"Commercial Invoices\",\n icon: require(\"../img/ui/nav_icons/clipboard_text.svg\"),\n linkTo: \"/commercial-invoices\",\n },\n {\n title: \"Bill of Lading Import\",\n icon: require(\"../img/ui/nav_icons/file_download.svg\"),\n linkTo: \"/bill-of-lading-import\",\n },\n {\n title: \"Bill of Lading Export\",\n icon: require(\"../img/ui/nav_icons/file_upload.svg\"),\n linkTo: \"/bill-of-lading-export\",\n },\n {\n title: \"DocRouter\",\n icon: require(\"../img/ui/nav_icons/docrouter.svg\"),\n linkTo: \"/docrouter\",\n },\n ],\n whyShipamax: [\n {\n title: \"Why Shipamax\",\n icon: require(\"../img/ui/nav_icons/bar_chart.svg\"),\n linkTo: \"/why-shipamax\",\n description:\n \"To achieve true automation, your data extraction solution should be designed with today’s scale in mind\",\n },\n {\n title: \"Customers and Case Studies\",\n icon: require(\"../img/ui/nav_icons/bar_chart.svg\"),\n linkTo: \"/case-studies\",\n description:\n \"Learn how Shipamax has helped some of the world’s most respected logistics organisations\",\n },\n {\n title: \"Technology Integrations\",\n icon: require(\"../img/ui/nav_icons/database.svg\"),\n linkTo: \"/technology-integrations\",\n description:\n \"Shipamax connects to leading logistics systems out-of-the-box\",\n },\n {\n title: \"Partnerships\",\n icon: require(\"../img/ui/nav_icons/people.svg\"),\n linkTo: \"/partners\",\n description: \"We offer a range of different partnership opportunities\",\n },\n ],\n resources: [\n {\n title: \"Blogs\",\n icon: require(\"../img/ui/nav_icons/note_text.svg\"),\n linkTo: \"/blog\",\n description:\n \"Read our latest blog posts and sign up for our monthly newsletter - Container News.\",\n },\n {\n title: \"eBooks and Webinars\",\n icon: require(\"../img/ui/nav_icons/book.svg\"),\n linkTo: \"/whitepapers\",\n description:\n \"Insights and analysis on document automation, logsitics technology and freight trends.\",\n },\n {\n title: \"ROI Calculator\",\n icon: require(\"../img/ui/nav_icons/calculator.svg\"),\n linkTo: \"/roi-calculator\",\n description: \"Request a free ROI analysis customized for your business.\",\n },\n ],\n company: [\n {\n title: \"About Shipamax\",\n icon: require(\"../img/ui/nav_icons/info.svg\"),\n linkTo: \"/about\",\n description:\n \"Discover more about our team, our story, who we are and what we do.\",\n },\n /* {\n title: \"Partnership Programme\",\n icon: require(\"../img/ui/nav_icons/comment_checked.svg\"),\n linkTo: \"/partners\",\n description:\n \"Learn about the Shipamax partner programme and global partner network\",\n }, */\n {\n title: \"In the News\",\n icon: require(\"../img/ui/nav_icons/newspaper.svg\"),\n linkTo: \"/media\",\n description: \"The latest Shipamax news and media coverage\",\n },\n ],\n};\n","import * as React from \"react\";\nimport Column from \"./Column\";\nimport Grid from \"./Grid\";\nimport Gutter from \"./Gutter\";\nimport MaxWidth from \"./MaxWidth\";\nimport Button from \"./Button\";\nimport HorizontalAlign from \"./HorizontalAlign\";\nimport Section from \"./Section\";\nimport Text from \"./Text\";\nimport Line from \"./Line\";\nimport PageMaxWidth from \"./PageMaxWidth\";\nimport LOGO_LIGHT from \"../../img/ui/logo_light.svg\";\nimport SOCIAL_LINKEDIN from \"../../img/ui/footer/social_linkedin.svg\";\nimport SOCIAL_TWITTER from \"../../img/ui/footer/social_twitter.svg\";\nimport { Link } from \"gatsby\";\nimport styled from \"styled-components\";\nimport { Color, Dimen } from \"../constants\";\nimport Visibility from \"./Visibility\";\nimport NEWSLETTER_ICON from \"../../img/ui/footer/newsletter_icon.svg\";\nimport STRIPED_BACKGROUND from \"../../img/ui/footer/striped_background.svg\";\nimport STRIPED_CURVE from \"../../img/ui/footer/striped_curve.svg\";\nimport Spacer from \"./Gutter\";\nimport { NAV_SUB_MENUS } from \"../nav\";\n\ntype Props = {\n backColor?: string;\n};\n\nexport default function LayoutFooter({ backColor = Color.light1 }: Props) {\n return (\n \n );\n}\n\nconst StyledStripedCurve = styled.div`\n background-image: url(${STRIPED_CURVE});\n background-repeat: no-repeat;\n background-position: bottom center;\n background-size: 100%;\n height: 210px;\n\n /* Avoid white line appearing at some zoom levels */\n position: relative;\n top: 1px;\n\n @media (max-width: 1940px) {\n height: 125px;\n }\n\n @media (max-width: 1680px) {\n height: 88px;\n }\n\n @media (max-width: ${Dimen.breakpointDownXl}px) {\n height: 68px;\n }\n`;\n\nconst StyledStripedBackground = styled.div`\n background-image: url(${STRIPED_BACKGROUND});\n background-repeat: no-repeat;\n background-position: top center;\n background-size: 100%;\n background-color: #0a1118;\n`;\n\nconst StyledLinksColumn = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n > a {\n display: block;\n margin-top: 8px;\n break-inside: avoid;\n\n &:first-child {\n margin-top: 10px;\n }\n }\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n columns: 2;\n }\n`;\n\nconst StyledLink = styled(Link)`\n color: ${Color.light7};\n transition: color 0.25s;\n\n &:hover {\n color: ${Color.light6};\n }\n`;\n\nconst StyledNewsletterForm = styled.form`\n display: flex;\n align-items: stretch;\n height: 64px;\n margin: 0;\n position: relative;\n\n > input {\n flex: 1;\n max-width: 300px;\n padding-left: 24px;\n background-color: transparent;\n border: 2px ${Color.light1} solid;\n border-right-width: 0;\n border-top-left-radius: 32px;\n border-bottom-left-radius: 32px;\n color: ${Color.light1};\n\n &::placeholder {\n color: ${Color.light1};\n }\n }\n\n > label {\n position: absolute;\n top: 17px;\n left: 30px;\n display: flex;\n align-items: center;\n pointer-events: none;\n\n img {\n display: block;\n padding-top: 3px;\n }\n }\n\n > button {\n background-color: ${Color.light1};\n border: 0;\n border-top-right-radius: 32px;\n border-bottom-right-radius: 32px;\n padding-left: ${Dimen.gutterWidth}px;\n padding-right: ${Dimen.gutterWidth * 1.5}px;\n font-size: 18px;\n cursor: pointer;\n transition: background-color 200ms;\n\n &:hover {\n background-color: ${Color.light4};\n }\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n padding-left: ${Dimen.gutterWidth / 2}px;\n padding-right: ${Dimen.gutterWidth / 2}px;\n }\n }\n`;\n\nconst StyledFooterContacts = styled.div`\n display: flex;\n flex-direction: column;\n\n > div:first-child {\n width: 50%;\n }\n\n > div:last-child {\n display: flex;\n flex-direction: column;\n width: 50%;\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n align-items: flex-end;\n }\n }\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n flex-direction: row;\n align-items: flex-start;\n }\n`;\n\nconst StyledSocials = styled.div`\n display: flex;\n\n a {\n transition: opacity 200ms;\n &:hover {\n opacity: 0.8;\n }\n }\n\n img {\n width: 32px;\n height: 32px;\n }\n`;\n","import { graphql, Link, useStaticQuery } from \"gatsby\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { Color, Dimen } from \"../constants\";\nimport PageMaxWidth from \"./PageMaxWidth\";\nimport Text from \"./Text\";\n\nexport default function DemoBanner() {\n const data = useStaticQuery(graphql`\n query DemoBanner {\n prismicDemoBannerComponent {\n data {\n banner_text\n banner_link_text\n }\n }\n }\n `).prismicDemoBannerComponent?.data;\n if (!data) return null;\n\n return (\n \n \n \n {data.banner_text}\n   {data.banner_link_text}\n \n \n \n );\n}\n\nconst StyledBanner = styled.div`\n min-height: 34px;\n padding: 3px 0;\n background-color: ${Color.green1};\n text-align: center;\n\n a {\n text-decoration: underline;\n }\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n display: none;\n }\n`;\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Link } from \"gatsby\";\nimport Text from \"./Text\";\nimport Gutter from \"./Gutter\";\nimport { Color, Dimen } from \"../constants\";\n\ntype Props = {\n title: string;\n rightOffset: number;\n visible: boolean;\n onMouseEnter: () => void;\n onMouseLeave: () => void;\n items: Array<{\n title: string;\n description?: string;\n linkTo: string;\n icon: string;\n }>;\n};\n\nexport default function LayoutNavDropdown({\n title,\n visible,\n rightOffset,\n onMouseEnter,\n onMouseLeave,\n items,\n}: Props) {\n return (\n \n

{title}

\n {items.map((item) => (\n \n \n \"\"\n \n \n
\n \n \n {item.title}\n \n \n \n \n \n \n {item.description && (\n \n {item.description}\n \n )}\n
\n
\n ))}\n \n );\n}\n\nconst StyledContainer = styled(\"div\")<{ $visible: boolean }>`\n position: absolute;\n top: -7px;\n right: 0;\n max-width: 480px;\n background: ${Color.light1};\n box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.07);\n border-radius: 8px;\n padding: ${Dimen.gutterWidth * 1.25}px;\n transform: translateY(-8px);\n z-index: 180;\n\n transition: transform 200ms, opacity 200ms;\n opacity: 0;\n pointer-events: none;\n\n ${(p) =>\n p.$visible &&\n `\n transform: translateY(0px);\n opacity: 1;\n pointer-events: auto;\n `};\n\n /* Invisible area to prevent mouseLeave */\n &::before {\n content: \"\";\n position: absolute;\n top: -11px;\n right: 0;\n left: 0;\n bottom: 100%;\n }\n\n &::after {\n content: \"\";\n position: absolute;\n top: -11px;\n right: 24px;\n width: 0;\n height: 0;\n border-left: 11px solid transparent;\n border-right: 11px solid transparent;\n border-bottom: 11px solid ${Color.light1};\n }\n`;\n\nconst StyledItem = styled(Link)`\n display: flex;\n align-items: flex-start;\n padding: 10px 0;\n\n &:hover {\n svg {\n fill: ${Color.blue1};\n transform: translateX(7px);\n }\n }\n`;\n\nconst StyledItemIcon = styled.div`\n width: 24px;\n display: flex;\n justify-content: center;\n`;\n\nconst StyledItemTitle = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n svg {\n width: 13px;\n height: 12px;\n fill: ${Color.light5};\n transition: transform 150ms, fill 150ms;\n }\n`;\n","import { Link } from \"gatsby\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Gutter } from \".\";\nimport { Color } from \"../constants\";\nimport Text from \"./Text\";\n\ntype Props = {\n title: string;\n icon?: string;\n linkTo?: string;\n href?: string;\n onClick?: () => void;\n description?: string;\n arrowColor?: string;\n};\n\nexport default function LayoutMobileNavItem({\n title,\n icon,\n linkTo,\n description,\n arrowColor,\n ...rest\n}: Props) {\n return (\n \n \n {icon && (\n <>\n \n \n \n )}\n \n {title}\n \n \n \n \n \n {description && (\n <>\n \n \n {description}\n \n \n )}\n \n );\n}\n\nconst StyledContainer = styled(({ to, ...rest }) =>\n to ? : \n)`\n min-height: 80px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 14px 20px;\n border-bottom: 1px #29343c solid;\n cursor: pointer;\n`;\n\nconst StyledTitleRow = styled(\"div\")<{ $arrowColor: string | undefined }>`\n display: flex;\n align-items: center;\n\n img {\n width: 14px;\n }\n\n svg {\n fill: ${(p) => p.$arrowColor ?? Color.light1};\n margin-left: 10px;\n width: 13px;\n height: 12px;\n }\n`;\n","import { Link } from \"gatsby\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Color, Config, Dimen } from \"../constants\";\nimport { NAV_SUB_MENUS } from \"../nav\";\nimport Gutter from \"./Gutter\";\nimport LayoutMobileNavItem from \"./LayoutMobileNavItem\";\nimport Text from \"./Text\";\n\ntype Props = {\n visible: boolean;\n onClose: () => void;\n};\n\nexport default function LayoutMobileMenu({ visible, onClose }: Props) {\n const [onSubLevel, setOnSubLevel] = React.useState(false);\n const [subMenu, setSubMenu] = React.useState<\n | null\n | \"useCases\"\n | \"solutions\"\n | \"whyShipamax\"\n | \"resources\"\n | \"company\"\n | \"login\"\n >(null);\n\n return (\n \n \n {\n setOnSubLevel(false);\n }}\n $visible={onSubLevel}\n >\n \n \n Menu\n \n
\n \n \n \n \n {/* Main area contains 2 pages (main and sub level), which transition\n with a slide back and forth */}\n \n \n {\n setSubMenu(\"useCases\");\n setOnSubLevel(true);\n }}\n />\n {\n setSubMenu(\"solutions\");\n setOnSubLevel(true);\n }}\n />\n {\n setSubMenu(\"whyShipamax\");\n setOnSubLevel(true);\n }}\n />\n {\n setSubMenu(\"resources\");\n setOnSubLevel(true);\n }}\n />\n {\n setSubMenu(\"company\");\n setOnSubLevel(true);\n }}\n />\n \n \n {subMenu === \"useCases\" &&\n NAV_SUB_MENUS.useCases.map((item, i) => (\n \n ))}\n {subMenu === \"solutions\" &&\n NAV_SUB_MENUS.solutions.map((item, i) => (\n \n ))}\n {subMenu === \"whyShipamax\" &&\n NAV_SUB_MENUS.whyShipamax.map((item, i) => (\n \n ))}\n {subMenu === \"resources\" &&\n NAV_SUB_MENUS.resources.map((item, i) => (\n \n ))}\n {subMenu === \"company\" &&\n NAV_SUB_MENUS.company.map((item, i) => (\n \n ))}\n {subMenu === \"login\" && (\n <>\n \n \n \n )}\n \n \n \n \n \n Get in touch\n \n \n {\n ev.stopPropagation();\n setSubMenu(\"login\");\n setOnSubLevel(true);\n }}\n >\n \n Log In\n \n \n \n \n );\n}\n\nconst StyledContainer = styled(\"div\")<{ $visible: boolean }>`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: ${Color.newDark2};\n z-index: 200;\n display: none;\n flex-direction: column;\n align-items: stretch;\n transform: translateY(${(p) => (p.$visible ? \"0\" : \"-100%\")});\n transition: transform 250ms;\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n display: flex;\n }\n`;\n\nconst StyledTopBar = styled.div`\n height: 88px;\n display: flex;\n align-items: center;\n border-bottom: 1px #29343c solid;\n`;\n\nconst StyledBackButton = styled(\"a\")<{ $visible: boolean }>`\n display: flex;\n align-items: center;\n padding: ${Dimen.gutterWidth * 0.75}px;\n cursor: pointer;\n ${(p) => !p.$visible && `pointer-events: none`};\n opacity: ${(p) => (p.$visible ? 1 : 0)};\n transition: opacity 250ms;\n`;\n\nconst StyledCloseButton = styled.a`\n padding: ${Dimen.gutterWidth * 0.75}px;\n cursor: pointer;\n`;\n\nconst StyledMainArea = styled.nav`\n position: relative;\n flex: 1;\n`;\n\nconst StyledPage = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n overflow: auto;\n transition: transform 250ms;\n`;\n\nconst StyledBottomBar = styled.div`\n height: 48px;\n background-color: ${Color.newDark1};\n display: flex;\n align-items: center;\n\n a {\n padding: 8px 20px;\n cursor: pointer;\n\n span {\n display: block;\n }\n }\n`;\n","import * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { Color, Config, Dimen } from \"../constants\";\nimport Gutter from \"./Gutter\";\nimport Text from \"./Text\";\n\ntype Props = {\n visible: boolean;\n onMouseEnter: () => void;\n onMouseLeave: () => void;\n};\n\nexport default function LayoutLoginDropdown({\n visible,\n onMouseEnter,\n onMouseLeave,\n}: Props) {\n return (\n \n \n \"\"\n \n \n Bulk & Tankers\n \n \n \n \n \n \n \n \"\"\n \n \n Freight Forwarding\n \n \n \n \n \n \n \n );\n}\n\nconst StyledContainer = styled(\"div\")<{ $visible: boolean }>`\n position: absolute;\n top: 8px;\n right: 0;\n width: 260px;\n background: #13131f;\n box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.07);\n border-radius: 8px;\n padding: ${Dimen.gutterWidth * 0.75}px ${Dimen.gutterWidth}px;\n transform: translateY(-8px);\n z-index: 180;\n\n transition: transform 200ms, opacity 200ms;\n opacity: 0;\n pointer-events: none;\n\n ${(p) =>\n p.$visible &&\n `\n transform: translateY(0px);\n opacity: 1;\n pointer-events: auto;\n `};\n\n /* Invisible area to prevent mouseLeave */\n &::before {\n content: \"\";\n position: absolute;\n top: -11px;\n right: 0;\n left: 0;\n bottom: 100%;\n }\n\n &::after {\n content: \"\";\n position: absolute;\n top: -11px;\n right: 24px;\n width: 0;\n height: 0;\n border-left: 11px solid transparent;\n border-right: 11px solid transparent;\n border-bottom: 11px solid #13131f;\n }\n`;\n\nconst StyledItem = styled.a`\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: ${Dimen.gutterWidth * 0.5}px 0;\n\n svg {\n width: 13px;\n height: 12px;\n fill: ${Color.blue1};\n transition: transform 150ms, fill 150ms;\n }\n\n &:hover {\n svg {\n transform: translateX(7px);\n }\n }\n`;\n","import { Link } from \"gatsby\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport Gutter from \"./Gutter\";\nimport { Color, Dimen } from \"../constants\";\nimport DemoBanner from \"./DemoBanner\";\nimport PageMaxWidth from \"./PageMaxWidth\";\nimport Text from \"./Text\";\nimport LOGO_DARK from \"../../img/ui/logo_dark.svg\";\nimport LayoutNavDropdown from \"./LayoutNavDropdown\";\nimport MOBILE_MENU_PROMPT from \"../../img/ui/mobile_menu_prompt.svg\";\nimport Visibility from \"./Visibility\";\nimport { NAV_SUB_MENUS } from \"../nav\";\nimport LayoutMobileMenu from \"./LayoutMobileMenu\";\nimport LayoutLoginDropdown from \"./LayoutLoginDropdown\";\n\ntype Props = {\n showDemoBanner?: boolean;\n};\n\nexport default function LayoutHeader({ showDemoBanner }: Props) {\n const [mobileMenuVisible, setMobileMenuVisible] =\n React.useState(false);\n\n // Keep track of which elemnts the mouse is over, to determine which nav\n // dropdown (if any) to display.\n const [mouseOvers, setMouseOvers] = React.useState([]);\n const makeMouseProps = (id: string) => ({\n onMouseEnter: () =>\n setMouseOvers((state) => (state.includes(id) ? state : [...state, id])),\n onMouseLeave: () => setMouseOvers((state) => state.filter((x) => x !== id)),\n });\n const shouldShowDropdown = (idPrefix: string) =>\n mouseOvers.includes(`${idPrefix}-link`) ||\n mouseOvers.includes(`${idPrefix}-dropdown`);\n\n // Show a shadow once header is detached from top of page\n const scrolledTopRef = React.useRef(null);\n const [showShadow, setShowShadow] = React.useState(false);\n React.useEffect(() => {\n if (\"IntersectionObserver\" in window) {\n let observer = new IntersectionObserver((entries) => {\n setShowShadow(entries[0].intersectionRatio === 0);\n });\n scrolledTopRef.current && observer.observe(scrolledTopRef.current);\n return () => {\n observer.disconnect();\n };\n }\n }, []);\n\n return (\n <>\n
\n\n \n \n \n \n\n setMobileMenuVisible(!mobileMenuVisible)}\n >\n Menu\n \n \n \n \n\n setMobileMenuVisible(false)}\n />\n\n {showDemoBanner && }\n\n \n \n \n \n \n Get in touch\n \n \n {/* \n \n Help Centre\n \n */}\n \n \n Log In\n \n \n \n\n \n \n \n \n \n \n \n \n \n \"Shipamax\"\n \n
\n\n \n Use Cases\n \n \n \n Solutions\n \n \n \n Why Shipamax\n \n \n \n Resources\n \n \n \n Company\n \n \n \n Get a demo\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n );\n}\n\nconst StyledMobileHeader = styled(\"div\") <{ $showShadow: boolean }>`\n position: sticky;\n top: 0;\n left: 0;\n right: 0;\n z-index: 100;\n height: 80px;\n padding: 0 18px;\n align-items: center;\n justify-content: space-between;\n background-color: ${Color.light1};\n user-select: none;\n display: none;\n box-shadow: 0 2px 10px rgba(0, 0, 0, ${(p) => (p.$showShadow ? 0.05 : 0)});\n transition: box-shadow 250ms;\n\n img {\n display: block;\n }\n\n .menu-button {\n height: 48px;\n display: flex;\n align-items: center;\n cursor: pointer;\n\n span {\n padding-bottom: 2px;\n }\n }\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n display: flex;\n }\n`;\n\nconst StyledMinorRow = styled.nav`\n height: 34px;\n display: flex;\n align-items: center;\n justify-content: stretch;\n background-color: ${Color.light3};\n z-index: 150;\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n display: none;\n }\n`;\n\nconst StyledMinorLinks = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n`;\n\nconst StyledMinorLink = styled(({ to, ...rest }) =>\n to ? : \n)`\n display: block;\n padding: 5px 12px;\n cursor: pointer;\n`;\n\nconst StyledMainRow = styled(\"nav\") <{ $showShadow: boolean }>`\n position: sticky;\n top: 0;\n left: 0;\n right: 0;\n z-index: 100;\n background-color: #fff;\n box-shadow: 0 2px 10px rgba(0, 0, 0, ${(p) => (p.$showShadow ? 0.05 : 0)});\n transition: box-shadow 250ms;\n\n @media (max-width: ${Dimen.breakpointDownMd}px) {\n display: none;\n }\n`;\n\nconst StyledMainInner = styled.div`\n height: 80px;\n display: flex;\n align-items: center;\n`;\n\nconst StyledLogoLink = styled(Link)`\n transition: opacity 150ms;\n\n &:hover {\n opacity: 0.8;\n }\n\n img {\n width: 145px;\n }\n`;\n\nconst StyledNavLink = styled(({ to, ...rest }) =>\n to ? : \n)`\n cursor: pointer;\n padding: 20px 0;\n\n span {\n transition: color 150ms;\n }\n\n &:hover span {\n color: ${Color.blue1};\n }\n`;\n\nconst StyledDropdownAnchor = styled.div`\n position: relative;\n`;\n","import * as React from \"react\";\n\nexport default function LayoutSvgSprites() {\n return (\n \n \n \n \n \n );\n}\n","import * as React from \"react\";\nimport Helmet from \"react-helmet\";\nimport { createGlobalStyle } from \"styled-components\";\nimport LayoutFooter from \"./LayoutFooter\";\nimport LayoutHeader from \"./LayoutHeader\";\nimport LayoutSvgSprites from \"./LayoutSvgSprites\";\n\n// For legacy components, to be remove later\nimport \"../styles/index.css\";\n\ntype Props = {\n showDemoBanner?: boolean;\n /** Hex color code */\n footerBackColor?: string;\n children: React.ReactNode;\n};\n\nconst GlobalStyle = createGlobalStyle`\n html, body, blockquote, form {\n margin: 0;\n padding: 0;\n }\n\n body {\n font-family: \"sofia-pro\", sans-serif;\n }\n\n button, input, textarea {\n font-family: inherit;\n }\n\n a {\n text-decoration: none;\n color: inherit;\n }\n`;\n\n/**\n * Wrap a page with a header, footer, and other essential scripts etc.\n */\nexport default function Layout({\n showDemoBanner,\n footerBackColor,\n children,\n}: Props) {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n\n \n\n {/* Google Tag Manager dynamically loads all other third party JS */}\n \n \n \n\n \n
{children}
\n \n\n \n \n \n );\n}\n","export default function _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n strings.raw = raw;\n return strings;\n}",null,"module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNiAwQzcuMTYzNDQgMCAwIDcuMTYzNDQgMCAxNkMwIDI0LjgzNjYgNy4xNjM0NCAzMiAxNiAzMkMyNC44MzY2IDMyIDMyIDI0LjgzNjYgMzIgMTZDMzIgNy4xNjM0NCAyNC44MzY2IDAgMTYgMFpNNy42ODEwNCAxMy4yNTE5SDExLjMwN1YyNC4xNDY0SDcuNjgxMDRWMTMuMjUxOVpNMTEuNTQ1OSA5Ljg4MThDMTEuNTIyMyA4LjgxMzYgMTAuNzU4NSA4IDkuNTE4MDQgOEM4LjI3NzYyIDggNy40NjY2OCA4LjgxMzYgNy40NjY2OCA5Ljg4MThDNy40NjY2OCAxMC45Mjc5IDguMjUzNjUgMTEuNzY0OSA5LjQ3MDk3IDExLjc2NDlIOS40OTQxNEMxMC43NTg1IDExLjc2NDkgMTEuNTQ1OSAxMC45Mjc5IDExLjU0NTkgOS44ODE4Wk0yMC4yMDg3IDEyLjk5NjFDMjIuNTk0OCAxMi45OTYxIDI0LjM4MzYgMTQuNTUzNSAyNC4zODM2IDE3Ljg5OThMMjQuMzgzNCAyNC4xNDY0SDIwLjc1NzZWMTguMzE3OEMyMC43NTc2IDE2Ljg1MzggMjAuMjMyOSAxNS44NTQ4IDE4LjkyMDMgMTUuODU0OEMxNy45MTg2IDE1Ljg1NDggMTcuMzIxOSAxNi41MjgzIDE3LjA1OTggMTcuMTc4OEMxNi45NjQgMTcuNDExOSAxNi45NDA0IDE3LjczNjcgMTYuOTQwNCAxOC4wNjIzVjI0LjE0NjdIMTMuMzE0QzEzLjMxNCAyNC4xNDY3IDEzLjM2MTggMTQuMjc0NSAxMy4zMTQgMTMuMjUyMkgxNi45NDA0VjE0Ljc5NTNDMTcuNDIxNyAxNC4wNTM1IDE4LjI4MzYgMTIuOTk2MSAyMC4yMDg3IDEyLjk5NjFaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K\"","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFunctorComposition = exports.bindTo = exports.flap = exports.map = void 0;\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 */\nvar function_1 = require(\"./function\");\nfunction 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}\nexports.map = map;\nfunction 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}\nexports.flap = flap;\nfunction bindTo(F) {\n return function (name) {\n return function (fa) {\n return F.map(fa, function (a) {\n var _a;\n return _a = {}, _a[name] = a, _a;\n });\n };\n };\n}\nexports.bindTo = bindTo;\n/** @deprecated */\nfunction getFunctorComposition(F, G) {\n var _map = map(F, G);\n return {\n map: function (fga, f) {\n return function_1.pipe(fga, _map(f));\n }\n };\n}\nexports.getFunctorComposition = getFunctorComposition;","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS40MTQyIDFINUMzLjg5NTQzIDEgMyAxLjg5NTQzIDMgM1YyMUMzIDIyLjEwNDYgMy44OTU0MyAyMyA1IDIzSDE5QzIwLjEwNDYgMjMgMjEgMjIuMTA0NiAyMSAyMVY2LjU4NTc5TDE1LjQxNDIgMVpNNSAzSDEzVjdDMTMgOC4xMDQ1NyAxMy44OTU0IDkgMTUgOUgxOVYyMUg1VjNaTTE1IDdWMy40MTQyMUwxOC41ODU4IDdIMTVaTTExIDEwVjE0LjU4NThMOS43MDcxMSAxMy4yOTI5TDguMjkyODkgMTQuNzA3MUwxMiAxOC40MTQyTDE1LjcwNzEgMTQuNzA3MUwxNC4yOTI5IDEzLjI5MjlMMTMgMTQuNTg1OFYxMEgxMVoiIGZpbGw9IiMwMDg1RkYiLz4KPC9zdmc+Cg==\"","import \"core-js/modules/es.typed-array.set.js\";\nimport \"core-js/modules/es.typed-array.sort.js\";\nimport { typeOf as e, isElement as t, isValidElementType as n } from \"react-is\";\nimport r, { useState as o, useContext as i, useMemo as s, useEffect as a, useRef as c, createElement as u, useDebugValue as l, useLayoutEffect as d } from \"react\";\nimport h from \"shallowequal\";\nimport p from \"@emotion/stylis\";\nimport f from \"@emotion/unitless\";\nimport m from \"@emotion/is-prop-valid\";\nimport y from \"hoist-non-react-statics\";\nfunction v() {\n return (v = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]);\n }\n return e;\n }).apply(this, arguments);\n}\nvar g = function (e, t) {\n for (var n = [e[0]], r = 0, o = t.length; r < o; r += 1) n.push(t[r], e[r + 1]);\n return n;\n },\n S = function (t) {\n return null !== t && \"object\" == typeof t && \"[object Object]\" === (t.toString ? t.toString() : Object.prototype.toString.call(t)) && !e(t);\n },\n w = Object.freeze([]),\n E = Object.freeze({});\nfunction b(e) {\n return \"function\" == typeof e;\n}\nfunction _(e) {\n return \"production\" !== process.env.NODE_ENV && \"string\" == typeof e && e || e.displayName || e.name || \"Component\";\n}\nfunction N(e) {\n return e && \"string\" == typeof e.styledComponentId;\n}\nvar A = \"undefined\" != typeof process && (process.env.REACT_APP_SC_ATTR || process.env.SC_ATTR) || \"data-styled\",\n C = \"5.3.0\",\n I = \"undefined\" != typeof window && \"HTMLElement\" in window,\n P = Boolean(\"boolean\" == typeof SC_DISABLE_SPEEDY ? SC_DISABLE_SPEEDY : \"undefined\" != typeof process && void 0 !== process.env.REACT_APP_SC_DISABLE_SPEEDY && \"\" !== process.env.REACT_APP_SC_DISABLE_SPEEDY ? \"false\" !== process.env.REACT_APP_SC_DISABLE_SPEEDY && process.env.REACT_APP_SC_DISABLE_SPEEDY : \"undefined\" != typeof process && void 0 !== process.env.SC_DISABLE_SPEEDY && \"\" !== process.env.SC_DISABLE_SPEEDY ? \"false\" !== process.env.SC_DISABLE_SPEEDY && process.env.SC_DISABLE_SPEEDY : \"production\" !== process.env.NODE_ENV),\n O = {},\n R = \"production\" !== process.env.NODE_ENV ? {\n 1: \"Cannot create styled-component for component: %s.\\n\\n\",\n 2: \"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",\n 3: \"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",\n 4: \"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",\n 5: \"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",\n 6: \"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",\n 7: 'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',\n 8: 'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',\n 9: \"Missing document ``\\n\\n\",\n 10: \"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",\n 11: \"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",\n 12: \"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",\n 13: \"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",\n 14: 'ThemeProvider: \"theme\" prop is required.\\n\\n',\n 15: \"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to ``, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",\n 16: \"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",\n 17: \"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\"\n } : {};\nfunction D() {\n for (var e = arguments.length <= 0 ? void 0 : arguments[0], t = [], n = 1, r = arguments.length; n < r; n += 1) t.push(n < 0 || arguments.length <= n ? void 0 : arguments[n]);\n return t.forEach(function (t) {\n e = e.replace(/%[a-z]/, t);\n }), e;\n}\nfunction j(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n throw \"production\" === process.env.NODE_ENV ? new Error(\"An error occurred. See https://git.io/JUIaE#\" + e + \" for more information.\" + (n.length > 0 ? \" Args: \" + n.join(\", \") : \"\")) : new Error(D.apply(void 0, [R[e]].concat(n)).trim());\n}\nvar T = function () {\n function e(e) {\n this.groupSizes = new Uint32Array(512), this.length = 512, this.tag = e;\n }\n var t = e.prototype;\n return t.indexOfGroup = function (e) {\n for (var t = 0, n = 0; n < e; n++) t += this.groupSizes[n];\n return t;\n }, t.insertRules = function (e, t) {\n if (e >= this.groupSizes.length) {\n for (var n = this.groupSizes, r = n.length, o = r; e >= o;) (o <<= 1) < 0 && j(16, \"\" + e);\n this.groupSizes = new Uint32Array(o), this.groupSizes.set(n), this.length = o;\n for (var i = r; i < o; i++) this.groupSizes[i] = 0;\n }\n for (var s = this.indexOfGroup(e + 1), a = 0, c = t.length; a < c; a++) this.tag.insertRule(s, t[a]) && (this.groupSizes[e]++, s++);\n }, t.clearGroup = function (e) {\n if (e < this.length) {\n var t = this.groupSizes[e],\n n = this.indexOfGroup(e),\n r = n + t;\n this.groupSizes[e] = 0;\n for (var o = n; o < r; o++) this.tag.deleteRule(n);\n }\n }, t.getGroup = function (e) {\n var t = \"\";\n if (e >= this.length || 0 === this.groupSizes[e]) return t;\n for (var n = this.groupSizes[e], r = this.indexOfGroup(e), o = r + n, i = r; i < o; i++) t += this.tag.getRule(i) + \"/*!sc*/\\n\";\n return t;\n }, e;\n }(),\n k = new Map(),\n x = new Map(),\n V = 1,\n B = function (e) {\n if (k.has(e)) return k.get(e);\n for (; x.has(V);) V++;\n var t = V++;\n return \"production\" !== process.env.NODE_ENV && ((0 | t) < 0 || t > 1 << 30) && j(16, \"\" + t), k.set(e, t), x.set(t, e), t;\n },\n M = function (e) {\n return x.get(e);\n },\n z = function (e, t) {\n k.set(e, t), x.set(t, e);\n },\n L = \"style[\" + A + '][data-styled-version=\"5.3.0\"]',\n G = new RegExp(\"^\" + A + '\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)'),\n F = function (e, t, n) {\n for (var r, o = n.split(\",\"), i = 0, s = o.length; i < s; i++) (r = o[i]) && e.registerName(t, r);\n },\n Y = function (e, t) {\n for (var n = t.innerHTML.split(\"/*!sc*/\\n\"), r = [], o = 0, i = n.length; o < i; o++) {\n var s = n[o].trim();\n if (s) {\n var a = s.match(G);\n if (a) {\n var c = 0 | parseInt(a[1], 10),\n u = a[2];\n 0 !== c && (z(u, c), F(e, u, a[3]), e.getTag().insertRules(c, r)), r.length = 0;\n } else r.push(s);\n }\n }\n },\n q = function () {\n return \"undefined\" != typeof window && void 0 !== window.__webpack_nonce__ ? window.__webpack_nonce__ : null;\n },\n H = function (e) {\n var t = document.head,\n n = e || t,\n r = document.createElement(\"style\"),\n o = function (e) {\n for (var t = e.childNodes, n = t.length; n >= 0; n--) {\n var r = t[n];\n if (r && 1 === r.nodeType && r.hasAttribute(A)) return r;\n }\n }(n),\n i = void 0 !== o ? o.nextSibling : null;\n r.setAttribute(A, \"active\"), r.setAttribute(\"data-styled-version\", \"5.3.0\");\n var s = q();\n return s && r.setAttribute(\"nonce\", s), n.insertBefore(r, i), r;\n },\n $ = function () {\n function e(e) {\n var t = this.element = H(e);\n t.appendChild(document.createTextNode(\"\")), this.sheet = function (e) {\n if (e.sheet) return e.sheet;\n for (var t = document.styleSheets, n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n if (o.ownerNode === e) return o;\n }\n j(17);\n }(t), this.length = 0;\n }\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n try {\n return this.sheet.insertRule(t, e), this.length++, !0;\n } catch (e) {\n return !1;\n }\n }, t.deleteRule = function (e) {\n this.sheet.deleteRule(e), this.length--;\n }, t.getRule = function (e) {\n var t = this.sheet.cssRules[e];\n return void 0 !== t && \"string\" == typeof t.cssText ? t.cssText : \"\";\n }, e;\n }(),\n W = function () {\n function e(e) {\n var t = this.element = H(e);\n this.nodes = t.childNodes, this.length = 0;\n }\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n if (e <= this.length && e >= 0) {\n var n = document.createTextNode(t),\n r = this.nodes[e];\n return this.element.insertBefore(n, r || null), this.length++, !0;\n }\n return !1;\n }, t.deleteRule = function (e) {\n this.element.removeChild(this.nodes[e]), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.nodes[e].textContent : \"\";\n }, e;\n }(),\n U = function () {\n function e(e) {\n this.rules = [], this.length = 0;\n }\n var t = e.prototype;\n return t.insertRule = function (e, t) {\n return e <= this.length && (this.rules.splice(e, 0, t), this.length++, !0);\n }, t.deleteRule = function (e) {\n this.rules.splice(e, 1), this.length--;\n }, t.getRule = function (e) {\n return e < this.length ? this.rules[e] : \"\";\n }, e;\n }(),\n J = I,\n X = {\n isServer: !I,\n useCSSOMInjection: !P\n },\n Z = function () {\n function e(e, t, n) {\n void 0 === e && (e = E), void 0 === t && (t = {}), this.options = v({}, X, {}, e), this.gs = t, this.names = new Map(n), !this.options.isServer && I && J && (J = !1, function (e) {\n for (var t = document.querySelectorAll(L), n = 0, r = t.length; n < r; n++) {\n var o = t[n];\n o && \"active\" !== o.getAttribute(A) && (Y(e, o), o.parentNode && o.parentNode.removeChild(o));\n }\n }(this));\n }\n e.registerId = function (e) {\n return B(e);\n };\n var t = e.prototype;\n return t.reconstructWithOptions = function (t, n) {\n return void 0 === n && (n = !0), new e(v({}, this.options, {}, t), this.gs, n && this.names || void 0);\n }, t.allocateGSInstance = function (e) {\n return this.gs[e] = (this.gs[e] || 0) + 1;\n }, t.getTag = function () {\n return this.tag || (this.tag = (n = (t = this.options).isServer, r = t.useCSSOMInjection, o = t.target, e = n ? new U(o) : r ? new $(o) : new W(o), new T(e)));\n var e, t, n, r, o;\n }, t.hasNameForId = function (e, t) {\n return this.names.has(e) && this.names.get(e).has(t);\n }, t.registerName = function (e, t) {\n if (B(e), this.names.has(e)) this.names.get(e).add(t);else {\n var n = new Set();\n n.add(t), this.names.set(e, n);\n }\n }, t.insertRules = function (e, t, n) {\n this.registerName(e, t), this.getTag().insertRules(B(e), n);\n }, t.clearNames = function (e) {\n this.names.has(e) && this.names.get(e).clear();\n }, t.clearRules = function (e) {\n this.getTag().clearGroup(B(e)), this.clearNames(e);\n }, t.clearTag = function () {\n this.tag = void 0;\n }, t.toString = function () {\n return function (e) {\n for (var t = e.getTag(), n = t.length, r = \"\", o = 0; o < n; o++) {\n var i = M(o);\n if (void 0 !== i) {\n var s = e.names.get(i),\n a = t.getGroup(o);\n if (void 0 !== s && 0 !== a.length) {\n var c = A + \".g\" + o + '[id=\"' + i + '\"]',\n u = \"\";\n void 0 !== s && s.forEach(function (e) {\n e.length > 0 && (u += e + \",\");\n }), r += \"\" + a + c + '{content:\"' + u + '\"}/*!sc*/\\n';\n }\n }\n }\n return r;\n }(this);\n }, e;\n }(),\n K = /(a)(d)/gi,\n Q = function (e) {\n return String.fromCharCode(e + (e > 25 ? 39 : 97));\n };\nfunction ee(e) {\n var t,\n n = \"\";\n for (t = Math.abs(e); t > 52; t = t / 52 | 0) n = Q(t % 52) + n;\n return (Q(t % 52) + n).replace(K, \"$1-$2\");\n}\nvar te = function (e, t) {\n for (var n = t.length; n;) e = 33 * e ^ t.charCodeAt(--n);\n return e;\n },\n ne = function (e) {\n return te(5381, e);\n };\nfunction re(e) {\n for (var t = 0; t < e.length; t += 1) {\n var n = e[t];\n if (b(n) && !N(n)) return !1;\n }\n return !0;\n}\nvar oe = ne(\"5.3.0\"),\n ie = function () {\n function e(e, t, n) {\n this.rules = e, this.staticRulesId = \"\", this.isStatic = \"production\" === process.env.NODE_ENV && (void 0 === n || n.isStatic) && re(e), this.componentId = t, this.baseHash = te(oe, t), this.baseStyle = n, Z.registerId(t);\n }\n return e.prototype.generateAndInjectStyles = function (e, t, n) {\n var r = this.componentId,\n o = [];\n if (this.baseStyle && o.push(this.baseStyle.generateAndInjectStyles(e, t, n)), this.isStatic && !n.hash) {\n if (this.staticRulesId && t.hasNameForId(r, this.staticRulesId)) o.push(this.staticRulesId);else {\n var i = Ne(this.rules, e, t, n).join(\"\"),\n s = ee(te(this.baseHash, i.length) >>> 0);\n if (!t.hasNameForId(r, s)) {\n var a = n(i, \".\" + s, void 0, r);\n t.insertRules(r, s, a);\n }\n o.push(s), this.staticRulesId = s;\n }\n } else {\n for (var c = this.rules.length, u = te(this.baseHash, n.hash), l = \"\", d = 0; d < c; d++) {\n var h = this.rules[d];\n if (\"string\" == typeof h) l += h, \"production\" !== process.env.NODE_ENV && (u = te(u, h + d));else if (h) {\n var p = Ne(h, e, t, n),\n f = Array.isArray(p) ? p.join(\"\") : p;\n u = te(u, f + d), l += f;\n }\n }\n if (l) {\n var m = ee(u >>> 0);\n if (!t.hasNameForId(r, m)) {\n var y = n(l, \".\" + m, void 0, r);\n t.insertRules(r, m, y);\n }\n o.push(m);\n }\n }\n return o.join(\" \");\n }, e;\n }(),\n se = /^\\s*\\/\\/.*$/gm,\n ae = [\":\", \"[\", \".\", \"#\"];\nfunction ce(e) {\n var t,\n n,\n r,\n o,\n i = void 0 === e ? E : e,\n s = i.options,\n a = void 0 === s ? E : s,\n c = i.plugins,\n u = void 0 === c ? w : c,\n l = new p(a),\n d = [],\n h = function (e) {\n function t(t) {\n if (t) try {\n e(t + \"}\");\n } catch (e) {}\n }\n return function (n, r, o, i, s, a, c, u, l, d) {\n switch (n) {\n case 1:\n if (0 === l && 64 === r.charCodeAt(0)) return e(r + \";\"), \"\";\n break;\n case 2:\n if (0 === u) return r + \"/*|*/\";\n break;\n case 3:\n switch (u) {\n case 102:\n case 112:\n return e(o[0] + r), \"\";\n default:\n return r + (0 === d ? \"/*|*/\" : \"\");\n }\n case -2:\n r.split(\"/*|*/}\").forEach(t);\n }\n };\n }(function (e) {\n d.push(e);\n }),\n f = function (e, r, i) {\n return 0 === r && -1 !== ae.indexOf(i[n.length]) || i.match(o) ? e : \".\" + t;\n };\n function m(e, i, s, a) {\n void 0 === a && (a = \"&\");\n var c = e.replace(se, \"\"),\n u = i && s ? s + \" \" + i + \" { \" + c + \" }\" : c;\n return t = a, n = i, r = new RegExp(\"\\\\\" + n + \"\\\\b\", \"g\"), o = new RegExp(\"(\\\\\" + n + \"\\\\b){2,}\"), l(s || !i ? \"\" : i, u);\n }\n return l.use([].concat(u, [function (e, t, o) {\n 2 === e && o.length && o[0].lastIndexOf(n) > 0 && (o[0] = o[0].replace(r, f));\n }, h, function (e) {\n if (-2 === e) {\n var t = d;\n return d = [], t;\n }\n }])), m.hash = u.length ? u.reduce(function (e, t) {\n return t.name || j(15), te(e, t.name);\n }, 5381).toString() : \"\", m;\n}\nvar ue = r.createContext(),\n le = ue.Consumer,\n de = r.createContext(),\n he = (de.Consumer, new Z()),\n pe = ce();\nfunction fe() {\n return i(ue) || he;\n}\nfunction me() {\n return i(de) || pe;\n}\nfunction ye(e) {\n var t = o(e.stylisPlugins),\n n = t[0],\n i = t[1],\n c = fe(),\n u = s(function () {\n var t = c;\n return e.sheet ? t = e.sheet : e.target && (t = t.reconstructWithOptions({\n target: e.target\n }, !1)), e.disableCSSOMInjection && (t = t.reconstructWithOptions({\n useCSSOMInjection: !1\n })), t;\n }, [e.disableCSSOMInjection, e.sheet, e.target]),\n l = s(function () {\n return ce({\n options: {\n prefix: !e.disableVendorPrefixes\n },\n plugins: n\n });\n }, [e.disableVendorPrefixes, n]);\n return a(function () {\n h(n, e.stylisPlugins) || i(e.stylisPlugins);\n }, [e.stylisPlugins]), r.createElement(ue.Provider, {\n value: u\n }, r.createElement(de.Provider, {\n value: l\n }, \"production\" !== process.env.NODE_ENV ? r.Children.only(e.children) : e.children));\n}\nvar ve = function () {\n function e(e, t) {\n var n = this;\n this.inject = function (e, t) {\n void 0 === t && (t = pe);\n var r = n.name + t.hash;\n e.hasNameForId(n.id, r) || e.insertRules(n.id, r, t(n.rules, r, \"@keyframes\"));\n }, this.toString = function () {\n return j(12, String(n.name));\n }, this.name = e, this.id = \"sc-keyframes-\" + e, this.rules = t;\n }\n return e.prototype.getName = function (e) {\n return void 0 === e && (e = pe), this.name + e.hash;\n }, e;\n }(),\n ge = /([A-Z])/,\n Se = /([A-Z])/g,\n we = /^ms-/,\n Ee = function (e) {\n return \"-\" + e.toLowerCase();\n };\nfunction be(e) {\n return ge.test(e) ? e.replace(Se, Ee).replace(we, \"-ms-\") : e;\n}\nvar _e = function (e) {\n return null == e || !1 === e || \"\" === e;\n};\nfunction Ne(e, n, r, o) {\n if (Array.isArray(e)) {\n for (var i, s = [], a = 0, c = e.length; a < c; a += 1) \"\" !== (i = Ne(e[a], n, r, o)) && (Array.isArray(i) ? s.push.apply(s, i) : s.push(i));\n return s;\n }\n if (_e(e)) return \"\";\n if (N(e)) return \".\" + e.styledComponentId;\n if (b(e)) {\n if (\"function\" != typeof (l = e) || l.prototype && l.prototype.isReactComponent || !n) return e;\n var u = e(n);\n return \"production\" !== process.env.NODE_ENV && t(u) && console.warn(_(e) + \" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\"), Ne(u, n, r, o);\n }\n var l;\n return e instanceof ve ? r ? (e.inject(r, o), e.getName(o)) : e : S(e) ? function e(t, n) {\n var r,\n o,\n i = [];\n for (var s in t) t.hasOwnProperty(s) && !_e(t[s]) && (S(t[s]) ? i.push.apply(i, e(t[s], s)) : b(t[s]) ? i.push(be(s) + \":\", t[s], \";\") : i.push(be(s) + \": \" + (r = s, null == (o = t[s]) || \"boolean\" == typeof o || \"\" === o ? \"\" : \"number\" != typeof o || 0 === o || r in f ? String(o).trim() : o + \"px\") + \";\"));\n return n ? [n + \" {\"].concat(i, [\"}\"]) : i;\n }(e) : e.toString();\n}\nfunction Ae(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n return b(e) || S(e) ? Ne(g(w, [e].concat(n))) : 0 === n.length && 1 === e.length && \"string\" == typeof e[0] ? e : Ne(g(e, n));\n}\nvar Ce = /invalid hook call/i,\n Ie = new Set(),\n Pe = function (e, t) {\n if (\"production\" !== process.env.NODE_ENV) {\n var n = \"The component \" + e + (t ? ' with the id of \"' + t + '\"' : \"\") + \" has been created dynamically.\\nYou may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\";\n try {\n c(), Ie.has(n) || (console.warn(n), Ie.add(n));\n } catch (e) {\n Ce.test(e.message) && Ie.delete(n);\n }\n }\n },\n Oe = function (e, t, n) {\n return void 0 === n && (n = E), e.theme !== n.theme && e.theme || t || n.theme;\n },\n Re = /[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,\n De = /(^-|-$)/g;\nfunction je(e) {\n return e.replace(Re, \"-\").replace(De, \"\");\n}\nvar Te = function (e) {\n return ee(ne(e) >>> 0);\n};\nfunction ke(e) {\n return \"string\" == typeof e && (\"production\" === process.env.NODE_ENV || e.charAt(0) === e.charAt(0).toLowerCase());\n}\nvar xe = function (e) {\n return \"function\" == typeof e || \"object\" == typeof e && null !== e && !Array.isArray(e);\n },\n Ve = function (e) {\n return \"__proto__\" !== e && \"constructor\" !== e && \"prototype\" !== e;\n };\nfunction Be(e, t, n) {\n var r = e[n];\n xe(t) && xe(r) ? Me(r, t) : e[n] = t;\n}\nfunction Me(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n for (var o = 0, i = n; o < i.length; o++) {\n var s = i[o];\n if (xe(s)) for (var a in s) Ve(a) && Be(e, s[a], a);\n }\n return e;\n}\nvar ze = r.createContext(),\n Le = ze.Consumer;\nfunction Ge(e) {\n var t = i(ze),\n n = s(function () {\n return function (e, t) {\n if (!e) return j(14);\n if (b(e)) {\n var n = e(t);\n return \"production\" === process.env.NODE_ENV || null !== n && !Array.isArray(n) && \"object\" == typeof n ? n : j(7);\n }\n return Array.isArray(e) || \"object\" != typeof e ? j(8) : t ? v({}, t, {}, e) : e;\n }(e.theme, t);\n }, [e.theme, t]);\n return e.children ? r.createElement(ze.Provider, {\n value: n\n }, e.children) : null;\n}\nvar Fe = {};\nfunction Ye(e, t, n) {\n var o = N(e),\n s = !ke(e),\n a = t.attrs,\n c = void 0 === a ? w : a,\n d = t.componentId,\n h = void 0 === d ? function (e, t) {\n var n = \"string\" != typeof e ? \"sc\" : je(e);\n Fe[n] = (Fe[n] || 0) + 1;\n var r = n + \"-\" + Te(\"5.3.0\" + n + Fe[n]);\n return t ? t + \"-\" + r : r;\n }(t.displayName, t.parentComponentId) : d,\n p = t.displayName,\n f = void 0 === p ? function (e) {\n return ke(e) ? \"styled.\" + e : \"Styled(\" + _(e) + \")\";\n }(e) : p,\n g = t.displayName && t.componentId ? je(t.displayName) + \"-\" + t.componentId : t.componentId || h,\n S = o && e.attrs ? Array.prototype.concat(e.attrs, c).filter(Boolean) : c,\n A = t.shouldForwardProp;\n o && e.shouldForwardProp && (A = t.shouldForwardProp ? function (n, r, o) {\n return e.shouldForwardProp(n, r, o) && t.shouldForwardProp(n, r, o);\n } : e.shouldForwardProp);\n var C,\n I = new ie(n, g, o ? e.componentStyle : void 0),\n P = I.isStatic && 0 === c.length,\n O = function (e, t) {\n return function (e, t, n, r) {\n var o = e.attrs,\n s = e.componentStyle,\n a = e.defaultProps,\n c = e.foldedComponentIds,\n d = e.shouldForwardProp,\n h = e.styledComponentId,\n p = e.target;\n \"production\" !== process.env.NODE_ENV && l(h);\n var f = function (e, t, n) {\n void 0 === e && (e = E);\n var r = v({}, t, {\n theme: e\n }),\n o = {};\n return n.forEach(function (e) {\n var t,\n n,\n i,\n s = e;\n for (t in b(s) && (s = s(r)), s) r[t] = o[t] = \"className\" === t ? (n = o[t], i = s[t], n && i ? n + \" \" + i : n || i) : s[t];\n }), [r, o];\n }(Oe(t, i(ze), a) || E, t, o),\n y = f[0],\n g = f[1],\n S = function (e, t, n, r) {\n var o = fe(),\n i = me(),\n s = t ? e.generateAndInjectStyles(E, o, i) : e.generateAndInjectStyles(n, o, i);\n return \"production\" !== process.env.NODE_ENV && l(s), \"production\" !== process.env.NODE_ENV && !t && r && r(s), s;\n }(s, r, y, \"production\" !== process.env.NODE_ENV ? e.warnTooManyClasses : void 0),\n w = n,\n _ = g.$as || t.$as || g.as || t.as || p,\n N = ke(_),\n A = g !== t ? v({}, t, {}, g) : t,\n C = {};\n for (var I in A) \"$\" !== I[0] && \"as\" !== I && (\"forwardedAs\" === I ? C.as = A[I] : (d ? d(I, m, _) : !N || m(I)) && (C[I] = A[I]));\n return t.style && g.style !== t.style && (C.style = v({}, t.style, {}, g.style)), C.className = Array.prototype.concat(c, h, S !== h ? S : null, t.className, g.className).filter(Boolean).join(\" \"), C.ref = w, u(_, C);\n }(C, e, t, P);\n };\n return O.displayName = f, (C = r.forwardRef(O)).attrs = S, C.componentStyle = I, C.displayName = f, C.shouldForwardProp = A, C.foldedComponentIds = o ? Array.prototype.concat(e.foldedComponentIds, e.styledComponentId) : w, C.styledComponentId = g, C.target = o ? e.target : e, C.withComponent = function (e) {\n var r = t.componentId,\n o = function (e, t) {\n if (null == e) return {};\n var n,\n r,\n o = {},\n i = Object.keys(e);\n for (r = 0; r < i.length; r++) n = i[r], t.indexOf(n) >= 0 || (o[n] = e[n]);\n return o;\n }(t, [\"componentId\"]),\n i = r && r + \"-\" + (ke(e) ? e : je(_(e)));\n return Ye(e, v({}, o, {\n attrs: S,\n componentId: i\n }), n);\n }, Object.defineProperty(C, \"defaultProps\", {\n get: function () {\n return this._foldedDefaultProps;\n },\n set: function (t) {\n this._foldedDefaultProps = o ? Me({}, e.defaultProps, t) : t;\n }\n }), \"production\" !== process.env.NODE_ENV && (Pe(f, g), C.warnTooManyClasses = function (e, t) {\n var n = {},\n r = !1;\n return function (o) {\n if (!r && (n[o] = !0, Object.keys(n).length >= 200)) {\n var i = t ? ' with the id of \"' + t + '\"' : \"\";\n console.warn(\"Over 200 classes were generated for component \" + e + i + \".\\nConsider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n \"), r = !0, n = {};\n }\n };\n }(f, g)), C.toString = function () {\n return \".\" + C.styledComponentId;\n }, s && y(C, e, {\n attrs: !0,\n componentStyle: !0,\n displayName: !0,\n foldedComponentIds: !0,\n shouldForwardProp: !0,\n styledComponentId: !0,\n target: !0,\n withComponent: !0\n }), C;\n}\nvar qe = function (e) {\n return function e(t, r, o) {\n if (void 0 === o && (o = E), !n(r)) return j(1, String(r));\n var i = function () {\n return t(r, o, Ae.apply(void 0, arguments));\n };\n return i.withConfig = function (n) {\n return e(t, r, v({}, o, {}, n));\n }, i.attrs = function (n) {\n return e(t, r, v({}, o, {\n attrs: Array.prototype.concat(o.attrs, n).filter(Boolean)\n }));\n }, i;\n }(Ye, e);\n};\n[\"a\", \"abbr\", \"address\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"base\", \"bdi\", \"bdo\", \"big\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"cite\", \"code\", \"col\", \"colgroup\", \"data\", \"datalist\", \"dd\", \"del\", \"details\", \"dfn\", \"dialog\", \"div\", \"dl\", \"dt\", \"em\", \"embed\", \"fieldset\", \"figcaption\", \"figure\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"iframe\", \"img\", \"input\", \"ins\", \"kbd\", \"keygen\", \"label\", \"legend\", \"li\", \"link\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meta\", \"meter\", \"nav\", \"noscript\", \"object\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"param\", \"picture\", \"pre\", \"progress\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"script\", \"section\", \"select\", \"small\", \"source\", \"span\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"title\", \"tr\", \"track\", \"u\", \"ul\", \"var\", \"video\", \"wbr\", \"circle\", \"clipPath\", \"defs\", \"ellipse\", \"foreignObject\", \"g\", \"image\", \"line\", \"linearGradient\", \"marker\", \"mask\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialGradient\", \"rect\", \"stop\", \"svg\", \"text\", \"textPath\", \"tspan\"].forEach(function (e) {\n qe[e] = qe(e);\n});\nvar He = function () {\n function e(e, t) {\n this.rules = e, this.componentId = t, this.isStatic = re(e), Z.registerId(this.componentId + 1);\n }\n var t = e.prototype;\n return t.createStyles = function (e, t, n, r) {\n var o = r(Ne(this.rules, t, n, r).join(\"\"), \"\"),\n i = this.componentId + e;\n n.insertRules(i, i, o);\n }, t.removeStyles = function (e, t) {\n t.clearRules(this.componentId + e);\n }, t.renderStyles = function (e, t, n, r) {\n e > 2 && Z.registerId(this.componentId + e), this.removeStyles(e, n), this.createStyles(e, t, n, r);\n }, e;\n}();\nfunction $e(e) {\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), o = 1; o < t; o++) n[o - 1] = arguments[o];\n var s = Ae.apply(void 0, [e].concat(n)),\n a = \"sc-global-\" + Te(JSON.stringify(s)),\n u = new He(s, a);\n function l(e) {\n var t = fe(),\n n = me(),\n o = i(ze),\n l = c(t.allocateGSInstance(a)).current;\n return \"production\" !== process.env.NODE_ENV && r.Children.count(e.children) && console.warn(\"The global style component \" + a + \" was given child JSX. createGlobalStyle does not render children.\"), \"production\" !== process.env.NODE_ENV && s.some(function (e) {\n return \"string\" == typeof e && -1 !== e.indexOf(\"@import\");\n }) && console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.\"), d(function () {\n return h(l, e, t, o, n), function () {\n return u.removeStyles(l, t);\n };\n }, [l, e, t, o, n]), null;\n }\n function h(e, t, n, r, o) {\n if (u.isStatic) u.renderStyles(e, O, n, o);else {\n var i = v({}, t, {\n theme: Oe(t, r, l.defaultProps)\n });\n u.renderStyles(e, i, n, o);\n }\n }\n return \"production\" !== process.env.NODE_ENV && Pe(a), r.memo(l);\n}\nfunction We(e) {\n \"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");\n for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];\n var o = Ae.apply(void 0, [e].concat(n)).join(\"\"),\n i = Te(o);\n return new ve(i, o);\n}\nvar Ue = function () {\n function e() {\n var e = this;\n this._emitSheetCSS = function () {\n var t = e.instance.toString(),\n n = q();\n return \"\";\n }, this.getStyleTags = function () {\n return e.sealed ? j(2) : e._emitSheetCSS();\n }, this.getStyleElement = function () {\n var t;\n if (e.sealed) return j(2);\n var n = ((t = {})[A] = \"\", t[\"data-styled-version\"] = \"5.3.0\", t.dangerouslySetInnerHTML = {\n __html: e.instance.toString()\n }, t),\n o = q();\n return o && (n.nonce = o), [r.createElement(\"style\", v({}, n, {\n key: \"sc-0-0\"\n }))];\n }, this.seal = function () {\n e.sealed = !0;\n }, this.instance = new Z({\n isServer: !0\n }), this.sealed = !1;\n }\n var t = e.prototype;\n return t.collectStyles = function (e) {\n return this.sealed ? j(2) : r.createElement(ye, {\n sheet: this.instance\n }, e);\n }, t.interleaveWithNodeStream = function (e) {\n return j(3);\n }, e;\n }(),\n Je = function (e) {\n var t = r.forwardRef(function (t, n) {\n var o = i(ze),\n s = e.defaultProps,\n a = Oe(t, o, s);\n return \"production\" !== process.env.NODE_ENV && void 0 === a && console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"' + _(e) + '\"'), r.createElement(e, v({}, t, {\n theme: a,\n ref: n\n }));\n });\n return y(t, e), t.displayName = \"WithTheme(\" + _(e) + \")\", t;\n },\n Xe = function () {\n return i(ze);\n },\n Ze = {\n StyleSheet: Z,\n masterSheet: he\n };\n\"production\" !== process.env.NODE_ENV && \"undefined\" != typeof navigator && \"ReactNative\" === navigator.product && console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"), \"production\" !== process.env.NODE_ENV && \"test\" !== process.env.NODE_ENV && (window[\"__styled-components-init__\"] = window[\"__styled-components-init__\"] || 0, 1 === window[\"__styled-components-init__\"] && console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"), window[\"__styled-components-init__\"] += 1);\nexport default qe;\nexport { Ue as ServerStyleSheet, le as StyleSheetConsumer, ue as StyleSheetContext, ye as StyleSheetManager, Le as ThemeConsumer, ze as ThemeContext, Ge as ThemeProvider, Ze as __PRIVATE__, $e as createGlobalStyle, Ae as css, N as isStyledComponent, We as keyframes, Xe as useTheme, C as version, Je as withTheme };","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"react\"));else if (typeof define === 'function' && define.amd) define(\"PrismicReactjs\", [\"react\"], factory);else if (typeof exports === 'object') exports[\"PrismicReactjs\"] = factory(require(\"react\"));else root[\"PrismicReactjs\"] = factory(root[\"react\"]);\n})(typeof self !== 'undefined' ? self : this, function (__WEBPACK_EXTERNAL_MODULE_react__) {\n return (/******/function (modules) {\n // webpackBootstrap\n /******/ // The module cache\n /******/\n var installedModules = {};\n /******/\n /******/ // The require function\n /******/\n function __webpack_require__(moduleId) {\n /******/\n /******/ // Check if module is in cache\n /******/if (installedModules[moduleId]) {\n /******/return installedModules[moduleId].exports;\n /******/\n }\n /******/ // Create a new module (and put it into the cache)\n /******/\n var module = installedModules[moduleId] = {\n /******/i: moduleId,\n /******/l: false,\n /******/exports: {}\n /******/\n };\n /******/\n /******/ // Execute the module function\n /******/\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n /******/ // Flag the module as loaded\n /******/\n module.l = true;\n /******/\n /******/ // Return the exports of the module\n /******/\n return module.exports;\n /******/\n }\n /******/\n /******/\n /******/ // expose the modules object (__webpack_modules__)\n /******/\n __webpack_require__.m = modules;\n /******/\n /******/ // expose the module cache\n /******/\n __webpack_require__.c = installedModules;\n /******/\n /******/ // define getter function for harmony exports\n /******/\n __webpack_require__.d = function (exports, name, getter) {\n /******/if (!__webpack_require__.o(exports, name)) {\n /******/Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n };\n /******/\n /******/ // define __esModule on exports\n /******/\n __webpack_require__.r = function (exports) {\n /******/if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n /******/ // create a fake namespace object\n /******/ // mode & 1: value is a module id, require it\n /******/ // mode & 2: merge all properties of value into the ns\n /******/ // mode & 4: return value when already ns object\n /******/ // mode & 8|1: behave like require\n /******/\n __webpack_require__.t = function (value, mode) {\n /******/if (mode & 1) value = __webpack_require__(value);\n /******/\n if (mode & 8) return value;\n /******/\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n var ns = Object.create(null);\n /******/\n __webpack_require__.r(ns);\n /******/\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n return ns;\n /******/\n };\n /******/\n /******/ // getDefaultExport function for compatibility with non-harmony modules\n /******/\n __webpack_require__.n = function (module) {\n /******/var getter = module && module.__esModule ? /******/function getDefault() {\n return module['default'];\n } : /******/function getModuleExports() {\n return module;\n };\n /******/\n __webpack_require__.d(getter, 'a', getter);\n /******/\n return getter;\n /******/\n };\n /******/\n /******/ // Object.prototype.hasOwnProperty.call\n /******/\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n /******/ // __webpack_public_path__\n /******/\n __webpack_require__.p = \"\";\n /******/\n /******/\n /******/ // Load entry module and return exports\n /******/\n return __webpack_require__(__webpack_require__.s = 0);\n /******/\n }\n /************************************************************************/\n /******/({\n /***/\"./node_modules/object-assign/index.js\":\n /*!*********************************************!*\\\n !*** ./node_modules/object-assign/index.js ***!\n \\*********************************************/\n /*! no static exports found */\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n /*\n object-assign\n (c) Sindre Sorhus\n @license MIT\n */\n\n /* eslint-disable no-unused-vars */\n var getOwnPropertySymbols = Object.getOwnPropertySymbols;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var propIsEnumerable = Object.prototype.propertyIsEnumerable;\n function toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n return Object(val);\n }\n function shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n } // Detect buggy property enumeration order in older V8 versions.\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\n test1[5] = 'de';\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n var test2 = {};\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n if (order2.join('') !== '0123456789') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n }\n module.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n return to;\n };\n\n /***/\n },\n\n /***/\"./node_modules/prismic-helpers/dist/prismic-helpers.min.js\":\n /*!******************************************************************!*\\\n !*** ./node_modules/prismic-helpers/dist/prismic-helpers.min.js ***!\n \\******************************************************************/\n /*! no static exports found */\n /***/\n function (module, exports, __webpack_require__) {\n !function (e, t) {\n true ? module.exports = t() : undefined;\n }(\"undefined\" != typeof self ? self : this, function () {\n return function (e) {\n var t = {};\n function n(r) {\n if (t[r]) return t[r].exports;\n var o = t[r] = {\n i: r,\n l: !1,\n exports: {}\n };\n return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports;\n }\n return n.m = e, n.c = t, n.d = function (e, t, r) {\n n.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: r\n });\n }, n.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, n.t = function (e, t) {\n if (1 & t && (e = n(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var r = Object.create(null);\n if (n.r(r), Object.defineProperty(r, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var o in e) n.d(r, o, function (t) {\n return e[t];\n }.bind(null, o));\n return r;\n }, n.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return n.d(t, \"a\", t), t;\n }, n.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, n.p = \"\", n(n.s = 0);\n }([function (e, t, n) {\n e.exports = n(1);\n }, function (e, t, n) {\n var r = n(2),\n o = n(3);\n e.exports = {\n Link: r,\n Date: o\n };\n }, function (e, t, n) {\n e.exports = {\n url: function (e, t) {\n if (e && [e.link_type, e._linkType, e.linkType].some(function (e) {\n return e && [\"Document\", \"Link.Document\", \"Link.document\"].includes(e);\n }) && t && \"function\" == typeof t) {\n var n = t(e);\n if (n) return n;\n }\n return e && e.url ? e.url : \"\";\n }\n };\n }, function (e, t) {\n e.exports = function (e) {\n if (!e) return null;\n var t = 24 == e.length ? \"\".concat(e.substring(0, 22), \":\").concat(e.substring(22, 24)) : e;\n return new Date(t);\n };\n }]);\n });\n\n /***/\n },\n\n /***/\"./node_modules/prismic-richtext/dist/prismic-richtext.min.js\":\n /*!********************************************************************!*\\\n !*** ./node_modules/prismic-richtext/dist/prismic-richtext.min.js ***!\n \\********************************************************************/\n /*! no static exports found */\n /***/\n function (module, exports, __webpack_require__) {\n !function (e, t) {\n true ? module.exports = t() : undefined;\n }(\"undefined\" != typeof self ? self : this, function () {\n return function (e) {\n var t = {};\n function n(r) {\n if (t[r]) return t[r].exports;\n var o = t[r] = {\n i: r,\n l: !1,\n exports: {}\n };\n return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports;\n }\n return n.m = e, n.c = t, n.d = function (e, t, r) {\n n.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: r\n });\n }, n.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, n.t = function (e, t) {\n if (1 & t && (e = n(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var r = Object.create(null);\n if (n.r(r), Object.defineProperty(r, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var o in e) n.d(r, o, function (t) {\n return e[t];\n }.bind(null, o));\n return r;\n }, n.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return n.d(t, \"a\", t), t;\n }, n.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, n.p = \"\", n(n.s = 9);\n }([function (e, t, n) {\n var r = n(3);\n e.exports = function (e) {\n return function t(n) {\n return 0 === arguments.length || r(n) ? t : e.apply(this, arguments);\n };\n };\n }, function (e, t, n) {\n var r = n(0),\n o = n(3);\n e.exports = function (e) {\n return function t(n, i) {\n switch (arguments.length) {\n case 0:\n return t;\n case 1:\n return o(n) ? t : r(function (t) {\n return e(n, t);\n });\n default:\n return o(n) && o(i) ? t : o(n) ? r(function (t) {\n return e(t, i);\n }) : o(i) ? r(function (t) {\n return e(n, t);\n }) : e(n, i);\n }\n };\n };\n }, function (e, t, n) {\n \"use strict\";\n\n var r;\n function o(e, t, n) {\n return t in e ? Object.defineProperty(e, t, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = n, e;\n }\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.PRIORITIES = t.NODE_TYPES = void 0;\n var i = {\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 };\n t.NODE_TYPES = i;\n var u = (o(r = {}, i.heading1, 4), o(r, i.heading2, 4), o(r, i.heading3, 4), o(r, i.heading4, 4), o(r, i.heading5, 4), o(r, i.heading6, 4), o(r, i.paragraph, 3), o(r, i.preformatted, 5), o(r, i.strong, 6), o(r, i.em, 6), o(r, i.oList, 1), o(r, i.list, 1), o(r, i.listItem, 1), o(r, i.oListItem, 1), o(r, i.image, 1), o(r, i.embed, 1), o(r, i.hyperlink, 3), o(r, i.label, 4), o(r, i.span, 7), r);\n t.PRIORITIES = u;\n }, function (e, t) {\n e.exports = function (e) {\n return null != e && \"object\" == typeof e && !0 === e[\"@@functional/placeholder\"];\n };\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var r = d(n(12)),\n o = d(n(15)),\n i = d(n(16)),\n u = d(n(17)),\n c = d(n(21)),\n a = d(n(7)),\n l = n(23),\n f = n(2),\n s = n(8);\n function d(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n function p(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);\n }\n }\n function h(e) {\n return function (e) {\n if (Array.isArray(e)) return e;\n }(e) || function (e) {\n if (Symbol.iterator in Object(e) || \"[object Arguments]\" === Object.prototype.toString.call(e)) return Array.from(e);\n }(e) || function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }();\n }\n function y(e, t) {\n var n = t.others.reduce(function (n, r) {\n var o = n.inner,\n i = n.outer,\n u = function (e, t, n) {\n return n.start < t.start ? {\n inner: s.SpanNode.slice(n, t.start, n.end, e),\n outer: s.SpanNode.slice(n, n.start, t.start, e)\n } : n.end > t.end ? {\n inner: s.SpanNode.slice(n, n.start, t.end, e),\n outer: s.SpanNode.slice(n, t.end, n.end, e)\n } : {\n inner: n\n };\n }(e, t.elected, r);\n return {\n inner: o.concat(u.inner),\n outer: u.outer ? i.concat(u.outer) : i\n };\n }, {\n inner: [],\n outer: []\n }),\n r = n.inner,\n o = n.outer;\n return [t.elected.setChildren(x(e, r, t.elected.boundaries()))].concat(b(e, o));\n }\n function v(e) {\n return function (e, t) {\n return t.reduce(function (t, n) {\n var r = (0, c.default)(t);\n if (r) {\n if (r.some(function (e) {\n return e.isParentOf(n);\n })) return (0, u.default)(t).concat([r.concat(n)]);\n var o = (0, c.default)(r);\n return o && e(o, n) ? (0, u.default)(t).concat([r.concat(n)]) : t.concat([[n]]);\n }\n return [[n]];\n }, []);\n }(function (e, t) {\n return e.end >= t.start;\n }, (0, i.default)([function (e, t) {\n return e.start - t.start;\n }, function (e, t) {\n return e.end - t.end;\n }], e));\n }\n function m(e) {\n if (0 === e.length) throw new Error(\"Unable to elect node on empty list\");\n var t = h(e.sort(function (e, t) {\n if (e.isParentOf(t)) return -1;\n if (t.isParentOf(e)) return 1;\n var n = f.PRIORITIES[e.type] - f.PRIORITIES[t.type];\n return 0 === n ? e.text.length - t.text.length : n;\n }));\n return {\n elected: t[0],\n others: t.slice(1)\n };\n }\n function x(e, t, n) {\n if (t.length > 0) return function (e, t, n) {\n return t.reduce(function (r, o, i) {\n var u = [],\n c = 0 === i && o.start > n.lower,\n a = i === t.length - 1 && n.upper > o.end;\n if (c) {\n var l = new s.TextNode(n.lower, o.start, e.slice(n.lower, o.start));\n u = u.concat(l);\n } else {\n var f = t[i - 1];\n if (f && o.start > f.end) {\n var d = e.slice(f.end, o.start),\n p = new s.TextNode(f.end, o.start, d);\n u = u.concat(p);\n }\n }\n if (u = u.concat(o), a) {\n var h = new s.TextNode(o.end, n.upper, e.slice(o.end, n.upper));\n u = u.concat(h);\n }\n return r.concat(u);\n }, []);\n }(e, b(e, t), n);\n var r = e.slice(n.lower, n.upper);\n return [new s.TextNode(n.lower, n.upper, r)];\n }\n function b(e, t) {\n var n = v((0, o.default)(function (e) {\n return e.start;\n }, t)).map(m),\n i = (0, r.default)(n.map(function (t) {\n return y(e, t);\n }));\n return (0, o.default)(function (e) {\n return e.start;\n }, i);\n }\n var g = function () {\n function e() {\n !function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e);\n }\n var t, n, r;\n return t = e, r = [{\n key: \"fromRichText\",\n value: function (e) {\n return {\n key: (0, a.default)(),\n children: e.reduce(function (e, t, n) {\n if (l.RichTextBlock.isEmbedBlock(t.type) || l.RichTextBlock.isImageBlock(t.type)) return e.concat(new s.BlockNode(t.type, t));\n var r = function (e) {\n var t = e.spans.map(function (t) {\n var n = e.text.slice(t.start, t.end);\n return new s.SpanNode(t.start, t.end, t.type, n, [], t);\n }),\n n = {\n lower: 0,\n upper: e.text.length\n };\n return x(e.text, t, n);\n }(t),\n o = e[e.length - 1];\n if (l.RichTextBlock.isListItem(t.type) && o && o instanceof s.ListBlockNode) {\n var i = new s.ListItemBlockNode(t, r),\n c = o.addChild(i);\n return (0, u.default)(e).concat(c);\n }\n if (l.RichTextBlock.isOrderedListItem(t.type) && o && o instanceof s.OrderedListBlockNode) {\n var a = new s.OrderedListItemBlockNode(t, r),\n f = o.addChild(a);\n return (0, u.default)(e).concat(f);\n }\n if (l.RichTextBlock.isListItem(t.type)) {\n var d = new s.ListItemBlockNode(t, r),\n p = new s.ListBlockNode(l.RichTextBlock.emptyList(), [d]);\n return e.concat(p);\n }\n if (l.RichTextBlock.isOrderedListItem(t.type)) {\n var h = new s.OrderedListItemBlockNode(t, r),\n y = new s.OrderedListBlockNode(l.RichTextBlock.emptyOrderedList(), [h]);\n return e.concat(y);\n }\n return e.concat(new s.BlockNode(t.type, t, r));\n }, [])\n };\n }\n }], (n = null) && p(t.prototype, n), r && p(t, r), e;\n }();\n t.default = g;\n }, function (e, t) {\n e.exports = Array.isArray || function (e) {\n return null != e && e.length >= 0 && \"[object Array]\" === Object.prototype.toString.call(e);\n };\n }, function (e, t) {\n e.exports = function (e) {\n return \"[object String]\" === Object.prototype.toString.call(e);\n };\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = function () {\n var e = new Date().getTime();\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (t) {\n var n = (e + 16 * Math.random()) % 16 | 0;\n return e = Math.floor(e / 16), (\"x\" == t ? n : 3 & n | 8).toString(16);\n });\n };\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.ListBlockNode = t.OrderedListBlockNode = t.OrderedListItemBlockNode = t.ListItemBlockNode = t.BlockNode = t.TextNode = t.SpanNode = t.Node = void 0;\n var r,\n o = (r = n(7)) && r.__esModule ? r : {\n default: r\n },\n i = n(2);\n function u(e) {\n return (u = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n return typeof e;\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n })(e);\n }\n function c(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);\n }\n }\n function a(e, t, n) {\n return t && c(e.prototype, t), n && c(e, n), e;\n }\n function l(e, t) {\n return !t || \"object\" !== u(t) && \"function\" != typeof t ? function (e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n }(e) : t;\n }\n function f(e) {\n return (f = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {\n return e.__proto__ || Object.getPrototypeOf(e);\n })(e);\n }\n function s(e, t) {\n if (\"function\" != typeof t && null !== t) throw new TypeError(\"Super expression must either be null or a function\");\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: !0,\n configurable: !0\n }\n }), t && d(e, t);\n }\n function d(e, t) {\n return (d = Object.setPrototypeOf || function (e, t) {\n return e.__proto__ = t, e;\n })(e, t);\n }\n function p(e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }\n var h = function e(t, n, r) {\n p(this, e), this.key = (0, o.default)(), this.type = t, this.element = n, this.children = r;\n };\n t.Node = h;\n var y = function (e) {\n function t(e, n, r, o, i, u) {\n var c;\n return p(this, t), (c = l(this, f(t).call(this, r, u, i))).start = e, c.end = n, c.text = o, c.children = i, c;\n }\n return s(t, h), a(t, [{\n key: \"boundaries\",\n value: function () {\n return {\n lower: this.start,\n upper: this.end\n };\n }\n }, {\n key: \"isParentOf\",\n value: function (e) {\n return this.start <= e.start && this.end >= e.end;\n }\n }, {\n key: \"setChildren\",\n value: function (e) {\n return new t(this.start, this.end, this.type, this.text, e, this.element);\n }\n }], [{\n key: \"slice\",\n value: function (e, n, r, o) {\n return new t(n, r, e.type, o.slice(n, r), e.children, e.element);\n }\n }]), t;\n }();\n t.SpanNode = y;\n var v = function (e) {\n function t(e, n, r) {\n p(this, t);\n var o = {\n type: i.NODE_TYPES.span,\n start: e,\n end: n,\n text: r\n };\n return l(this, f(t).call(this, e, n, i.NODE_TYPES.span, r, [], o));\n }\n return s(t, y), t;\n }();\n t.TextNode = v;\n var m = function (e) {\n function t(e, n) {\n var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [];\n return p(this, t), l(this, f(t).call(this, e, n, r));\n }\n return s(t, h), t;\n }();\n t.BlockNode = m;\n var x = function (e) {\n function t(e, n) {\n return p(this, t), l(this, f(t).call(this, i.NODE_TYPES.listItem, e, n));\n }\n return s(t, m), t;\n }();\n t.ListItemBlockNode = x;\n var b = function (e) {\n function t(e, n) {\n return p(this, t), l(this, f(t).call(this, i.NODE_TYPES.oListItem, e, n));\n }\n return s(t, m), t;\n }();\n t.OrderedListItemBlockNode = b;\n var g = function (e) {\n function t(e, n) {\n return p(this, t), l(this, f(t).call(this, i.NODE_TYPES.oList, e, n));\n }\n return s(t, m), a(t, [{\n key: \"addChild\",\n value: function (e) {\n var n = this.children.concat(e);\n return new t(this.element, n);\n }\n }]), t;\n }();\n t.OrderedListBlockNode = g;\n var O = function (e) {\n function t(e, n) {\n return p(this, t), l(this, f(t).call(this, i.NODE_TYPES.list, e, n));\n }\n return s(t, m), a(t, [{\n key: \"addChild\",\n value: function (e) {\n var n = this.children.concat(e);\n return new t(this.element, n);\n }\n }]), t;\n }();\n t.ListBlockNode = O;\n }, function (e, t, n) {\n e.exports = n(10);\n }, function (e, t, n) {\n \"use strict\";\n\n var r = c(n(11)),\n o = c(n(4)),\n i = c(n(24)),\n u = n(2);\n function c(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n e.exports = {\n asText: r.default,\n asTree: o.default.fromRichText,\n serialize: i.default,\n Elements: u.NODE_TYPES\n };\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var r = function (e, t) {\n var n = \"string\" == typeof t ? t : \" \";\n return e.map(function (e) {\n return e.text;\n }).join(n);\n };\n t.default = r;\n }, function (e, t, n) {\n var r = n(0)(n(13)(!0));\n e.exports = r;\n }, function (e, t, n) {\n var r = n(14);\n e.exports = function (e) {\n return function t(n) {\n for (var o, i, u, c = [], a = 0, l = n.length; a < l;) {\n if (r(n[a])) for (u = 0, i = (o = e ? t(n[a]) : n[a]).length; u < i;) c[c.length] = o[u], u += 1;else c[c.length] = n[a];\n a += 1;\n }\n return c;\n };\n };\n }, function (e, t, n) {\n var r = n(0),\n o = n(5),\n i = n(6),\n u = r(function (e) {\n return !!o(e) || !!e && \"object\" == typeof e && !i(e) && (1 === e.nodeType ? !!e.length : 0 === e.length || e.length > 0 && e.hasOwnProperty(0) && e.hasOwnProperty(e.length - 1));\n });\n e.exports = u;\n }, function (e, t, n) {\n var r = n(1)(function (e, t) {\n return Array.prototype.slice.call(t, 0).sort(function (t, n) {\n var r = e(t),\n o = e(n);\n return r < o ? -1 : r > o ? 1 : 0;\n });\n });\n e.exports = r;\n }, function (e, t, n) {\n var r = n(1)(function (e, t) {\n return Array.prototype.slice.call(t, 0).sort(function (t, n) {\n for (var r = 0, o = 0; 0 === r && o < e.length;) r = e[o](t, n), o += 1;\n return r;\n });\n });\n e.exports = r;\n }, function (e, t, n) {\n var r = n(18)(0, -1);\n e.exports = r;\n }, function (e, t, n) {\n var r = n(19),\n o = n(20)(r(\"slice\", function (e, t, n) {\n return Array.prototype.slice.call(n, e, t);\n }));\n e.exports = o;\n }, function (e, t, n) {\n var r = n(5);\n e.exports = function (e, t) {\n return function () {\n var n = arguments.length;\n if (0 === n) return t();\n var o = arguments[n - 1];\n return r(o) || \"function\" != typeof o[e] ? t.apply(this, arguments) : o[e].apply(o, Array.prototype.slice.call(arguments, 0, n - 1));\n };\n };\n }, function (e, t, n) {\n var r = n(0),\n o = n(1),\n i = n(3);\n e.exports = function (e) {\n return function t(n, u, c) {\n switch (arguments.length) {\n case 0:\n return t;\n case 1:\n return i(n) ? t : o(function (t, r) {\n return e(n, t, r);\n });\n case 2:\n return i(n) && i(u) ? t : i(n) ? o(function (t, n) {\n return e(t, u, n);\n }) : i(u) ? o(function (t, r) {\n return e(n, t, r);\n }) : r(function (t) {\n return e(n, u, t);\n });\n default:\n return i(n) && i(u) && i(c) ? t : i(n) && i(u) ? o(function (t, n) {\n return e(t, n, c);\n }) : i(n) && i(c) ? o(function (t, n) {\n return e(t, u, n);\n }) : i(u) && i(c) ? o(function (t, r) {\n return e(n, t, r);\n }) : i(n) ? r(function (t) {\n return e(t, u, c);\n }) : i(u) ? r(function (t) {\n return e(n, t, c);\n }) : i(c) ? r(function (t) {\n return e(n, u, t);\n }) : e(n, u, c);\n }\n };\n };\n }, function (e, t, n) {\n var r = n(22)(-1);\n e.exports = r;\n }, function (e, t, n) {\n var r = n(1),\n o = n(6),\n i = r(function (e, t) {\n var n = e < 0 ? t.length + e : e;\n return o(t) ? t.charAt(n) : t[n];\n });\n e.exports = i;\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.RichTextBlock = void 0;\n var r = n(2);\n function o(e, t) {\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);\n }\n }\n var i = function () {\n function e(t, n, r) {\n !function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.type = t, this.text = n, this.spans = r;\n }\n var t, n, i;\n return t = e, i = [{\n key: \"isEmbedBlock\",\n value: function (e) {\n return e === r.NODE_TYPES.embed;\n }\n }, {\n key: \"isImageBlock\",\n value: function (e) {\n return e === r.NODE_TYPES.image;\n }\n }, {\n key: \"isList\",\n value: function (e) {\n return e === r.NODE_TYPES.list;\n }\n }, {\n key: \"isOrderedList\",\n value: function (e) {\n return e === r.NODE_TYPES.oList;\n }\n }, {\n key: \"isListItem\",\n value: function (e) {\n return e === r.NODE_TYPES.listItem;\n }\n }, {\n key: \"isOrderedListItem\",\n value: function (e) {\n return e === r.NODE_TYPES.oListItem;\n }\n }, {\n key: \"emptyList\",\n value: function () {\n return {\n type: r.NODE_TYPES.list,\n spans: [],\n text: \"\"\n };\n }\n }, {\n key: \"emptyOrderedList\",\n value: function () {\n return {\n type: r.NODE_TYPES.oList,\n spans: [],\n text: \"\"\n };\n }\n }], (n = null) && o(t.prototype, n), i && o(t, i), e;\n }();\n t.RichTextBlock = i;\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var r,\n o = (r = n(4)) && r.__esModule ? r : {\n default: r\n },\n i = n(8);\n var u = function (e, t, n) {\n return o.default.fromRichText(e).children.map(function (e, r) {\n return function (e, t, n, r) {\n return function e(n, o) {\n var u = n instanceof i.SpanNode ? n.text : null,\n c = n.children.reduce(function (t, n, r) {\n return t.concat([e(n, r)]);\n }, []),\n a = r && r(n.type, n.element, u, c, o);\n return a || t(n.type, n.element, u, c, o);\n }(e, n);\n }(e, t, r, n);\n });\n };\n t.default = u;\n }]);\n });\n\n /***/\n },\n\n /***/\"./node_modules/prop-types/checkPropTypes.js\":\n /*!***************************************************!*\\\n !*** ./node_modules/prop-types/checkPropTypes.js ***!\n \\***************************************************/\n /*! no static exports found */\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n var printWarning = function () {};\n if (true) {\n var ReactPropTypesSecret = __webpack_require__( /*! ./lib/ReactPropTypesSecret */\"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n printWarning = function (text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n }\n /**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\n\n function checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (true) {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning((componentName || 'React class') + ': type specification of ' + location + ' `' + typeSpecName + '` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).');\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n var stack = getStack ? getStack() : '';\n printWarning('Failed ' + location + ' type: ' + error.message + (stack != null ? stack : ''));\n }\n }\n }\n }\n }\n /**\n * Resets warning cache when testing.\n *\n * @private\n */\n\n checkPropTypes.resetWarningCache = function () {\n if (true) {\n loggedTypeFailures = {};\n }\n };\n module.exports = checkPropTypes;\n\n /***/\n },\n\n /***/\"./node_modules/prop-types/factoryWithTypeCheckers.js\":\n /*!************************************************************!*\\\n !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***!\n \\************************************************************/\n /*! no static exports found */\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n var ReactIs = __webpack_require__( /*! react-is */\"./node_modules/react-is/index.js\");\n var assign = __webpack_require__( /*! object-assign */\"./node_modules/object-assign/index.js\");\n var ReactPropTypesSecret = __webpack_require__( /*! ./lib/ReactPropTypesSecret */\"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n var checkPropTypes = __webpack_require__( /*! ./checkPropTypes */\"./node_modules/prop-types/checkPropTypes.js\");\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n var printWarning = function () {};\n if (true) {\n printWarning = function (text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n }\n function emptyFunctionThatReturnsNull() {\n return null;\n }\n module.exports = function (isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>'; // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker\n };\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n\n /*eslint-disable no-self-compare*/\n\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n } // Make `instanceof Error` still work for returned errors.\n\n PropTypeError.prototype = Error.prototype;\n function createChainableTypeChecker(validate) {\n if (true) {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use `PropTypes.checkPropTypes()` to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n } else if (true && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (!manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3) {\n printWarning('You are manually calling a React.PropTypes validation ' + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + 'and will throw in the standalone `prop-types` package. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.');\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n }\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (true) {\n if (arguments.length > 1) {\n printWarning('Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).');\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : undefined;\n return emptyFunctionThatReturnsNull;\n }\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning('Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.');\n return emptyFunctionThatReturnsNull;\n }\n }\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n } // We need to check all keys in case some are required but missing from\n // props.\n\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') + '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' '));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n return true;\n default:\n return false;\n }\n }\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n } // falsy value can't be a Symbol\n\n if (!propValue) {\n return false;\n } // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n } // Fallback for non-spec compliant Symbols which are polyfilled.\n\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n return false;\n } // Equivalent of `typeof` but with special handling for array and regexp.\n\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n } // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n } // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n } // Returns class name of the object, if any.\n\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n\n /***/\n },\n\n /***/\"./node_modules/prop-types/index.js\":\n /*!******************************************!*\\\n !*** ./node_modules/prop-types/index.js ***!\n \\******************************************/\n /*! no static exports found */\n /***/\n function (module, exports, __webpack_require__) {\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n if (true) {\n var ReactIs = __webpack_require__( /*! react-is */\"./node_modules/react-is/index.js\"); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__( /*! ./factoryWithTypeCheckers */\"./node_modules/prop-types/factoryWithTypeCheckers.js\")(ReactIs.isElement, throwOnDirectAccess);\n } else {}\n\n /***/\n },\n\n /***/\"./node_modules/prop-types/lib/ReactPropTypesSecret.js\":\n /*!*************************************************************!*\\\n !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***!\n \\*************************************************************/\n /*! no static exports found */\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n module.exports = ReactPropTypesSecret;\n\n /***/\n },\n\n /***/\"./node_modules/react-is/cjs/react-is.development.js\":\n /*!***********************************************************!*\\\n !*** ./node_modules/react-is/cjs/react-is.development.js ***!\n \\***********************************************************/\n /*! no static exports found */\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n /** @license React v16.9.0\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n if (true) {\n (function () {\n 'use strict';\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n }); // The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n // nor polyfill, then a plain number is used for performance.\n\n var hasSymbol = typeof Symbol === 'function' && Symbol.for;\n var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\n var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\n var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\n var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\n var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\n var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\n var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n // (unstable) APIs that have been removed. Can we remove the symbols?\n\n var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\n var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\n var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\n var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\n var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\n var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\n var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\n var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n function isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE);\n }\n /**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\n var lowPriorityWarning = function () {};\n {\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n }\n var lowPriorityWarning$1 = lowPriorityWarning;\n function typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n return undefined;\n } // AsyncMode is deprecated along with isAsyncMode\n\n var AsyncMode = REACT_ASYNC_MODE_TYPE;\n var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\n var ContextConsumer = REACT_CONTEXT_TYPE;\n var ContextProvider = REACT_PROVIDER_TYPE;\n var Element = REACT_ELEMENT_TYPE;\n var ForwardRef = REACT_FORWARD_REF_TYPE;\n var Fragment = REACT_FRAGMENT_TYPE;\n var Lazy = REACT_LAZY_TYPE;\n var Memo = REACT_MEMO_TYPE;\n var Portal = REACT_PORTAL_TYPE;\n var Profiler = REACT_PROFILER_TYPE;\n var StrictMode = REACT_STRICT_MODE_TYPE;\n var Suspense = REACT_SUSPENSE_TYPE;\n var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\n function isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n }\n function isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n }\n function isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n }\n function isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n }\n function isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n function isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n }\n function isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n }\n function isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n }\n function isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n }\n function isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n }\n function isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n }\n function isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n }\n function isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n }\n exports.typeOf = typeOf;\n exports.AsyncMode = AsyncMode;\n exports.ConcurrentMode = ConcurrentMode;\n exports.ContextConsumer = ContextConsumer;\n exports.ContextProvider = ContextProvider;\n exports.Element = Element;\n exports.ForwardRef = ForwardRef;\n exports.Fragment = Fragment;\n exports.Lazy = Lazy;\n exports.Memo = Memo;\n exports.Portal = Portal;\n exports.Profiler = Profiler;\n exports.StrictMode = StrictMode;\n exports.Suspense = Suspense;\n exports.isValidElementType = isValidElementType;\n exports.isAsyncMode = isAsyncMode;\n exports.isConcurrentMode = isConcurrentMode;\n exports.isContextConsumer = isContextConsumer;\n exports.isContextProvider = isContextProvider;\n exports.isElement = isElement;\n exports.isForwardRef = isForwardRef;\n exports.isFragment = isFragment;\n exports.isLazy = isLazy;\n exports.isMemo = isMemo;\n exports.isPortal = isPortal;\n exports.isProfiler = isProfiler;\n exports.isStrictMode = isStrictMode;\n exports.isSuspense = isSuspense;\n })();\n }\n\n /***/\n },\n\n /***/\"./node_modules/react-is/index.js\":\n /*!****************************************!*\\\n !*** ./node_modules/react-is/index.js ***!\n \\****************************************/\n /*! no static exports found */\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n if (false) {} else {\n module.exports = __webpack_require__( /*! ./cjs/react-is.development.js */\"./node_modules/react-is/cjs/react-is.development.js\");\n }\n\n /***/\n },\n\n /***/\"./src/Component.js\":\n /*!**************************!*\\\n !*** ./src/Component.js ***!\n \\**************************/\n /*! exports provided: default */\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( /*! react */\"react\");\n /* harmony import */\n var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( /*! prop-types */\"./node_modules/prop-types/index.js\");\n /* harmony import */\n var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n var prismic_richtext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( /*! prismic-richtext */\"./node_modules/prismic-richtext/dist/prismic-richtext.min.js\");\n /* harmony import */\n var prismic_richtext__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prismic_richtext__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */\n var _richtext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( /*! ./richtext */\"./src/richtext.js\");\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n }\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n }\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n var createHtmlSerializer = function createHtmlSerializer() {\n var bucket = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var serializers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var processors = serializers.reduce(function (acc, _ref) {\n var type = _ref.type,\n fn = _ref.fn;\n return Object.assign({}, acc, _defineProperty({}, type, fn));\n }, {});\n return function (type) {\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 return processors[type] ? processors[type].apply(processors, [type].concat(args)) : null;\n };\n };\n var RichText = function RichText(_ref2) {\n var Component = _ref2.Component,\n elements = _ref2.elements,\n htmlSerializer = _ref2.htmlSerializer,\n linkResolver = _ref2.linkResolver,\n render = _ref2.render,\n renderAsText = _ref2.renderAsText,\n serializeHyperlink = _ref2.serializeHyperlink,\n rest = _objectWithoutProperties(_ref2, [\"Component\", \"elements\", \"htmlSerializer\", \"linkResolver\", \"render\", \"renderAsText\", \"serializeHyperlink\"]);\n var maybeSerializer = htmlSerializer || serializeHyperlink && createHtmlSerializer({}, [{\n type: prismic_richtext__WEBPACK_IMPORTED_MODULE_2__[\"Elements\"].hyperlink,\n fn: serializeHyperlink\n }]);\n return render ? Object(_richtext__WEBPACK_IMPORTED_MODULE_3__[\"renderRichText\"])(render, linkResolver, maybeSerializer, Component, elements, rest) : null;\n };\n RichText.propTypes = {\n Component: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"elementType\"],\n linkResolver: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n htmlSerializer: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"func\"],\n elements: prop_types__WEBPACK_IMPORTED_MODULE_1__[\"object\"],\n serializeHyperlink: function serializeHyperlink(props, _, componentName) {\n if (props.serializeHyperlink && props.htmlSerializer) {\n return new Error(\"You cannot specify both 'htmlSerializer' and 'serializeHyperlink'. The latter will be ignored by '\".concat(componentName, \"'.\"));\n }\n },\n render: function render(props, _, componentName) {\n if (!props.render) {\n return new Error(\"Prop 'render' was not specified in '\".concat(componentName, \"'.\"));\n }\n }\n };\n RichText.asText = _richtext__WEBPACK_IMPORTED_MODULE_3__[\"asText\"];\n RichText.render = _richtext__WEBPACK_IMPORTED_MODULE_3__[\"renderRichText\"];\n RichText.displayName = 'RichText';\n /* harmony default export */\n __webpack_exports__[\"default\"] = RichText;\n\n /***/\n },\n\n /***/\"./src/embeds.js\":\n /*!***********************!*\\\n !*** ./src/embeds.js ***!\n \\***********************/\n /*! exports provided: createScript, embeds */\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"createScript\", function () {\n return createScript;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"embeds\", function () {\n return embeds;\n });\n function createScript(_ref) {\n var property = _ref.property,\n src = _ref.src,\n id = _ref.id;\n if (!window) {\n return;\n }\n (function (src, id) {\n var js,\n fjs = document.getElementsByTagName('script')[0],\n t = window[property] || {};\n if (document.getElementById(id)) {\n return t;\n }\n js = document.createElement('script');\n js.id = id;\n js.src = src;\n fjs.parentNode.insertBefore(js, fjs);\n t._e = [];\n t.ready = function (f) {\n t._e.push(f);\n };\n return t;\n })(src, id);\n }\n var embeds = {\n Twitter: {\n property: 'twttr',\n src: 'https://platform.twitter.com/widgets.js',\n id: 'twitter-wjs',\n load: function load() {\n if (window && window.twttr && window.twttr.widgets) {\n window.twttr.widgets.load();\n }\n }\n },\n Facebook: {\n property: 'FB',\n src: 'https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.3',\n id: 'fb-wjs',\n load: function load(ref) {\n if (window && window.FB) {\n window.FB.XFBML.parse(ref);\n }\n }\n },\n Instagram: {\n property: 'instgrm',\n src: 'https://www.instagram.com/embed.js',\n id: 'insta-wjs',\n load: function load() {\n if (window && window.instgrm) {\n window.instgrm.Embeds.process();\n }\n }\n }\n };\n\n /***/\n },\n\n /***/\"./src/index.js\":\n /*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/\n /*! no static exports found */\n /***/\n function (module, exports, __webpack_require__) {\n var PrismicHelpers = __webpack_require__( /*! prismic-helpers */\"./node_modules/prismic-helpers/dist/prismic-helpers.min.js\");\n var PrismicRichText = __webpack_require__( /*! prismic-richtext */\"./node_modules/prismic-richtext/dist/prismic-richtext.min.js\");\n var Component = __webpack_require__( /*! ./Component */\"./src/Component.js\");\n module.exports = {\n Date: PrismicHelpers.Date,\n Elements: PrismicRichText.Elements,\n Link: PrismicHelpers.Link,\n RichText: Component[\"default\"]\n };\n\n /***/\n },\n\n /***/\"./src/richtext.js\":\n /*!*************************!*\\\n !*** ./src/richtext.js ***!\n \\*************************/\n /*! exports provided: asText, renderRichText */\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"asText\", function () {\n return asText;\n });\n /* harmony export (binding) */\n __webpack_require__.d(__webpack_exports__, \"renderRichText\", function () {\n return renderRichText;\n });\n /* harmony import */\n var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( /*! react */\"react\");\n /* harmony import */\n var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n var prismic_richtext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( /*! prismic-richtext */\"./node_modules/prismic-richtext/dist/prismic-richtext.min.js\");\n /* harmony import */\n var prismic_richtext__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prismic_richtext__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n var prismic_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( /*! prismic-helpers */\"./node_modules/prismic-helpers/dist/prismic-helpers.min.js\");\n /* harmony import */\n var prismic_helpers__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prismic_helpers__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */\n var _embeds__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( /*! ./embeds */\"./src/embeds.js\");\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n }\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\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 return target;\n }\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n var createScript = typeof window !== \"undefined\" ? __webpack_require__( /*! ./embeds */\"./src/embeds.js\").createScript : function () {};\n function serialize(linkResolver, elements, type, element, content, children, index) {\n if (elements[type]) {\n return serializeElement(elements[type], type, element, content, children, index);\n }\n switch (type) {\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading1:\n return serializeStandardTag('h1', element, children, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading2:\n return serializeStandardTag('h2', element, children, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading3:\n return serializeStandardTag('h3', element, children, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading4:\n return serializeStandardTag('h4', element, children, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading5:\n return serializeStandardTag('h5', element, children, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].heading6:\n return serializeStandardTag('h6', element, children, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].paragraph:\n return serializeStandardTag('p', element, children, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].preformatted:\n return serializeStandardTag('pre', element, children, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].strong:\n return serializeStandardTag('strong', element, children, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].em:\n return serializeStandardTag('em', element, children, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].listItem:\n return serializeStandardTag('li', element, children, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].oListItem:\n return serializeStandardTag('li', element, children, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].list:\n return serializeStandardTag('ul', element, children, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].oList:\n return serializeStandardTag('ol', element, children, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].image:\n return serializeImage(linkResolver, element, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].embed:\n return serializeEmbed(element, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].hyperlink:\n return serializeHyperlink(linkResolver, element, children, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].label:\n return serializeLabel(element, children, index);\n case prismic_richtext__WEBPACK_IMPORTED_MODULE_1__[\"Elements\"].span:\n return serializeSpan(content);\n default:\n return null;\n }\n }\n function propsWithUniqueKey() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var key = arguments.length > 1 ? arguments[1] : undefined;\n return Object.assign(props, {\n key: key\n });\n }\n function serializeElement(Element, type, props, content, children, index) {\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(Element, _objectSpread({\n key: \"element-\".concat(type, \"-\").concat(index + 1)\n }, props, {\n children: children && children.length ? children : undefined\n }, type === 'image' ? {\n src: props.url,\n url: undefined\n } : null));\n }\n function serializeStandardTag(tag, element, children, key) {\n var props = element.label ? Object.assign({}, {\n className: element.label\n }) : {};\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(tag, propsWithUniqueKey(props, key), children);\n }\n function serializeHyperlink(linkResolver, element, children, key) {\n var targetAttr = element.data.target ? {\n target: element.data.target\n } : {};\n var relAttr = element.data.target ? {\n rel: 'noopener'\n } : {};\n var props = Object.assign({\n href: prismic_helpers__WEBPACK_IMPORTED_MODULE_2__[\"Link\"].url(element.data, linkResolver)\n }, targetAttr, relAttr);\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('a', propsWithUniqueKey(props, key), children);\n }\n function serializeLabel(element, children, key) {\n var props = element.data ? Object.assign({}, {\n className: element.data.label\n }) : {};\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('span', propsWithUniqueKey(props, key), children);\n }\n function serializeSpan(content) {\n if (content) {\n return content.split(\"\\n\").reduce(function (acc, p) {\n if (acc.length === 0) {\n return [p];\n } else {\n var brIndex = (acc.length + 1) / 2 - 1;\n var br = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('br', propsWithUniqueKey({}, brIndex));\n return acc.concat([br, p]);\n }\n }, []);\n } else {\n return null;\n }\n }\n function serializeImage(linkResolver, element, key) {\n var linkUrl = element.linkTo ? prismic_helpers__WEBPACK_IMPORTED_MODULE_2__[\"Link\"].url(element.linkTo, linkResolver) : null;\n var linkTarget = element.linkTo && element.linkTo.target ? {\n target: element.linkTo.target\n } : {};\n var relAttr = linkTarget.target ? {\n rel: 'noopener'\n } : {};\n var img = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('img', {\n src: element.url,\n alt: element.alt || ''\n });\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('p', propsWithUniqueKey({\n className: [element.label || '', 'block-img'].join(' ')\n }, key), linkUrl ? Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('a', Object.assign({\n href: linkUrl\n }, linkTarget, relAttr), img) : img);\n }\n function serializeEmbed(element, key) {\n if (_embeds__WEBPACK_IMPORTED_MODULE_3__[\"embeds\"][element.oembed.provider_name]) {\n createScript(_embeds__WEBPACK_IMPORTED_MODULE_3__[\"embeds\"][element.oembed.provider_name]);\n }\n var className = \"embed embed-\".concat(element.oembed.provider_name.toLowerCase());\n var props = Object.assign({\n \"data-oembed\": element.oembed.embed_url,\n \"data-oembed-type\": element.oembed.type,\n \"data-oembed-provider\": element.oembed.provider_name,\n ref: function ref(_ref) {\n if (_embeds__WEBPACK_IMPORTED_MODULE_3__[\"embeds\"][element.oembed.provider_name]) {\n _embeds__WEBPACK_IMPORTED_MODULE_3__[\"embeds\"][element.oembed.provider_name].load(_ref);\n }\n }\n }, element.label ? {\n className: \"\".concat(className, \" \").concat(element.label)\n } : {\n className: className\n });\n var embedHtml = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('div', {\n dangerouslySetInnerHTML: {\n __html: element.oembed.html\n }\n });\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])('div', propsWithUniqueKey(props, key), embedHtml);\n }\n var asText = function asText(structuredText) {\n if (Object.prototype.toString.call(structuredText) !== '[object Array]') {\n console.warn(\"Rich text argument should be an Array. Received \".concat(_typeof(structuredText)));\n return null;\n }\n return prismic_richtext__WEBPACK_IMPORTED_MODULE_1___default.a.asText(structuredText);\n };\n var renderRichText = function renderRichText(richText, linkResolver, htmlSerializer) {\n var Component = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : react__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"];\n var elements = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n var args = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n if (Object.prototype.toString.call(richText) !== '[object Array]') {\n console.warn(\"Rich text argument should be an Array. Received \".concat(_typeof(richText)));\n return null;\n }\n var serializedChildren = prismic_richtext__WEBPACK_IMPORTED_MODULE_1___default.a.serialize(richText, serialize.bind(null, linkResolver, elements), htmlSerializer);\n return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(Component, args, serializedChildren);\n };\n\n /***/\n },\n\n /***/0:\n /*!****************************!*\\\n !*** multi ./src/index.js ***!\n \\****************************/\n /*! no static exports found */\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__( /*! D:\\Libraries\\Desktop\\prismic\\sdk\\reactjs/src/index.js */\"./src/index.js\");\n\n /***/\n },\n\n /***/\"react\":\n /*!************************!*\\\n !*** external \"react\" ***!\n \\************************/\n /*! no static exports found */\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_react__;\n\n /***/\n }\n\n /******/\n })\n );\n});","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04Ljk5NTkyIDJDOS43NDgyIDEuMzYyOTcgMTAuODM5MSAxIDEyIDFDMTMuMTYwOSAxIDE0LjI1MTggMS4zNjI5NyAxNS4wMDQxIDJIMTZDMTcuMTA0NiAyIDE4IDIuODk1NDMgMTggNEgxOUMyMC4xMDQ2IDQgMjEgNC44OTU0MyAyMSA2VjIxQzIxIDIyLjEwNDYgMjAuMTA0NiAyMyAxOSAyM0g1QzMuODk1NDMgMjMgMyAyMi4xMDQ2IDMgMjFWNkMzIDQuODk1NDMgMy44OTU0MyA0IDUgNEg2QzYgMi44OTU0MyA2Ljg5NTQzIDIgOCAySDguOTk1OTJaTTE2IDdDMTYuNzQwMyA3IDE3LjM4NjYgNi41OTc4IDE3LjczMjQgNkgxOVYyMUg1VjZINi4yNjc1NkM2LjYxMzM3IDYuNTk3OCA3LjI1OTcyIDcgOCA3SDE2Wk04IDE2VjE0SDE0VjE2SDhaTTggMTBWMTJIMTZWMTBIOFpNOS44NTc2MiA0TDEwLjE1NjYgMy42NTUzOEMxMC40ODUyIDMuMjc2NzQgMTEuMTg5NCAzIDEyIDNDMTIuODEwNiAzIDEzLjUxNDggMy4yNzY3NCAxMy44NDM0IDMuNjU1MzhMMTQuMTQyNCA0SDE2VjVIOFY0SDkuNDAxMzVIOS44NTc2MloiIGZpbGw9IiMwMDg1RkYiLz4KPC9zdmc+Cg==\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2MCIgaGVpZ2h0PSIyMTAiIHZpZXdCb3g9IjAgMCAyNTYwIDIxMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPG1hc2sgaWQ9Im1hc2swIiBtYXNrLXR5cGU9ImFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMjU2MCIgaGVpZ2h0PSIyMTAiPgo8cGF0aCBkPSJNMCAwSDI1NjBWMjEwSDBWMFoiIGZpbGw9IiNDNEM0QzQiLz4KPC9tYXNrPgo8ZyBtYXNrPSJ1cmwoI21hc2swKSI+CjxjaXJjbGUgY3g9IjEyODAiIGN5PSIzOTk5IiByPSIzOTk5IiBmaWxsPSIjMTExRDI2Ii8+CjwvZz4KPC9zdmc+Cg==\"","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.tailRec = void 0;\n/**\n * @since 2.0.0\n */\nvar tailRec = function (startWith, f) {\n var ab = f(startWith);\n while (ab._tag === 'Left') {\n ab = f(ab.left);\n }\n return ab.right;\n};\nexports.tailRec = tailRec;","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNiAwQzcuMTYzNDQgMCAwIDcuMTYzNDQgMCAxNkMwIDI0LjgzNjYgNy4xNjM0NCAzMiAxNiAzMkMyNC44MzY2IDMyIDMyIDI0LjgzNjYgMzIgMTZDMzIgNy4xNjM0NCAyNC44MzY2IDAgMTYgMFpNMTUuNTU0NCAxMy41NTg2TDE1LjUyMDggMTMuMDA1QzE1LjQyMDEgMTEuNTcwMSAxNi4zMDQyIDEwLjI1OTQgMTcuNzAzMiA5Ljc1MDk3QzE4LjIxOCA5LjU3MDE5IDE5LjA5MDkgOS41NDc1OSAxOS42NjE3IDkuNzA1NzdDMTkuODg1NiA5Ljc3MzU3IDIwLjMxMDggOS45OTk1NCAyMC42MTMgMTAuMjAyOUwyMS4xNjE0IDEwLjU3NThMMjEuNzY1OCAxMC4zODM3QzIyLjEwMTUgMTAuMjgyIDIyLjU0OTIgMTAuMTEyNSAyMi43NTA2IDkuOTk5NTRDMjIuOTQwOSA5Ljg5Nzg1IDIzLjEwODggOS44NDEzNiAyMy4xMDg4IDkuODc1MjVDMjMuMTA4OCAxMC4wNjczIDIyLjY5NDcgMTAuNzIyNyAyMi4zNDc3IDExLjA4NDJDMjEuODc3NyAxMS41OTI3IDIyLjAxMiAxMS42Mzc4IDIyLjk2MzMgMTEuMjk4OUMyMy41MzQgMTEuMTA2OCAyMy41NDUyIDExLjEwNjggMjMuNDMzMyAxMS4zMjE1QzIzLjM2NjIgMTEuNDM0NSAyMy4wMTkyIDExLjgyOTkgMjIuNjQ5OSAxMi4xOTE1QzIyLjAyMzIgMTIuODEyOSAyMS45ODk2IDEyLjg4MDcgMjEuOTg5NiAxMy40MDA0QzIxLjk4OTYgMTQuMjAyNyAyMS42MDkxIDE1Ljg3NDkgMjEuMjI4NSAxNi43OTAxQzIwLjUyMzUgMTguNTA3NSAxOS4wMTI2IDIwLjI4MTQgMTcuNTAxNyAyMS4xNzM5QzE1LjM3NTMgMjIuNDI4MSAxMi41NDM4IDIyLjc0NDUgMTAuMTYgMjIuMDEwMUM5LjM2NTM4IDIxLjc2MTUgOCAyMS4xMjg4IDggMjEuMDE1OEM4IDIwLjk4MTkgOC40MTQwOSAyMC45MzY3IDguOTE3NzIgMjAuOTI1NEM5Ljk2OTczIDIwLjkwMjggMTEuMDIxOCAyMC42MDkgMTEuOTE3MSAyMC4wODkzTDEyLjUyMTQgMTkuNzI3N0wxMS44Mjc1IDE5LjQ5MDRDMTAuODQyNyAxOS4xNTE1IDkuOTU4NTQgMTguMzcxOSA5LjczNDcxIDE3LjYzNzVDOS42Njc1NiAxNy40MDAyIDkuNjg5OTQgMTcuMzg4OSAxMC4zMTY3IDE3LjM4ODlMMTAuOTY1OCAxNy4zNzc2TDEwLjQxNzQgMTcuMTE3N0M5Ljc2ODI4IDE2Ljc5MDEgOS4xNzUxMyAxNi4yMzY0IDguODg0MTQgMTUuNjcxNUM4LjY3MTUgMTUuMjY0NyA4LjQwMjkgMTQuMjM2NSA4LjQ4MTI0IDE0LjE1NzVDOC41MDM2MiAxNC4xMjM2IDguNzM4NjUgMTQuMTkxNCA5LjAwNzI1IDE0LjI4MTdDOS43Nzk0OCAxNC41NjQyIDkuODgwMiAxNC40OTY0IDkuNDMyNTMgMTQuMDIxOUM4LjU5MzE2IDEzLjE2MzIgOC4zMzU3NSAxMS44ODY0IDguNzM4NjUgMTAuNjc3NUw4LjkyODkxIDEwLjEzNTFMOS42Njc1NiAxMC44Njk1QzExLjE3ODQgMTIuMzQ5NyAxMi45NTc5IDEzLjIzMSAxNC45OTQ4IDEzLjQ5MDhMMTUuNTU0NCAxMy41NTg2WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyNCAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xOCAxLjMyODEySDZDNC44OTU0MyAxLjMyODEyIDQgMi4yMjM1NiA0IDMuMzI4MTJWMjEuMzI4MUM0IDIyLjQzMjcgNC44OTU0MyAyMy4zMjgxIDYgMjMuMzI4MUgxOEMxOS4xMDQ2IDIzLjMyODEgMjAgMjIuNDMyNyAyMCAyMS4zMjgxVjMuMzI4MTJDMjAgMi4yMjM1NiAxOS4xMDQ2IDEuMzI4MTIgMTggMS4zMjgxMlpNNiA3LjMyODEyVjMuMzI4MTJIMThWNy4zMjgxMkg2Wk02IDkuMzI4MTJWMjEuMzI4MUgxOFY5LjMyODEySDZaTTEwIDE5LjMyODFIOFYxNy4zMjgxSDEwVjE5LjMyODFaTTExIDE5LjMyODFIMTNWMTcuMzI4MUgxMVYxOS4zMjgxWk0xNiAxOS4zMjgxSDE0VjE2LjMyODFWMTUuMzI4MVYxNC4zMjgxSDE2VjE1LjMyODFWMTYuMzI4MVYxOS4zMjgxWk04IDE2LjMyODFIMTBWMTQuMzI4MUg4VjE2LjMyODFaTTEzIDE2LjMyODFIMTFWMTQuMzI4MUgxM1YxNi4zMjgxWk0xMCAxMy4zMjgxSDhWMTEuMzI4MUgxMFYxMy4zMjgxWk0xMSAxMy4zMjgxSDEzVjExLjMyODFIMTFWMTMuMzI4MVpNMTYgMTMuMzI4MUgxNFYxMS4zMjgxSDE2VjEzLjMyODFaIiBmaWxsPSIjMDA4NUZGIi8+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS40MTQyIDFINUMzLjg5NTQzIDEgMyAxLjg5NTQzIDMgM1YyMUMzIDIyLjEwNDYgMy44OTU0MyAyMyA1IDIzSDE5QzIwLjEwNDYgMjMgMjEgMjIuMTA0NiAyMSAyMVY2LjU4NTc5TDE1LjQxNDIgMVpNNSAzSDEzVjdDMTMgOC4xMDQ1NyAxMy44OTU0IDkgMTUgOUgxOVYyMUg1VjNaTTE1IDdWMy40MTQyMUwxOC41ODU4IDdIMTVaTTExIDEwVjE0LjU4NThMOS43MDcxMSAxMy4yOTI5TDguMjkyODkgMTQuNzA3MUwxMiAxOC40MTQyTDE1LjcwNzEgMTQuNzA3MUwxNC4yOTI5IDEzLjI5MjlMMTMgMTQuNTg1OFYxMEgxMVoiIGZpbGw9IiMwMDg1RkYiLz4KPC9zdmc+Cg==\""],"sourceRoot":""}