{"version":3,"file":"static/chunks/942-62485e7b5f57420e.js","mappings":"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GAA4C,kBAAXC,GAAsB,CAC/D,MAAMC,EAAyC,kBAAdF,EAAyBA,EAAY,CAAEI,QAASJ,GAC3EG,EAAmC,kBAAXF,EAAsBA,EAAS,CAAEG,QAASH,GACxE,OAAO,EAAIX,EAAezkG,SAASqlG,EAAmBC,MAe9D3mG,EAAQ6kG,0CAJ2CZ,IAC/C,MAAM4C,GAAuB,EAAId,EAAmB1kG,SAAS,MAAO4iG,EAAO38F,KAAIoB,GAAKA,EAAEs7F,SAASuC,GAC/F,OAAOD,EAAyDO,K,gCClIpE/mG,OAAOC,eAAeC,EAAS,aAAc,CACzCC,OAAO,IAEXH,OAAOC,eAAeC,EAAS,UAAW,CACtCI,YAAY,EACZ+C,IAAK,IAAIod,IAEb,MAAMA,EAAW,CACb,YACA,YACA,gBACA,gBACA,aACA,WACA,QACA,YACA,SACA,QACA,aACA,kBACA,gBACA,UACA,eACA,aACA,QACA,QACA,SACA,YACA,UACA,cACA,SACA,YACA,YACA,QACA,WACA,WACA,OACA,aACA,WACA,YACA,cACA,iBACA,gBACA,kBACA,YACA,SACA,OACA,QACA,YACA,YACA,SACA,cACA,aACA,SACA,iBACA,kBACA,iBACA,eACA,gBACA,oBACA,gBACA,aACA,UACA,cACA,cACA,aACA,kBACA,eACA,eACA,sBACA,mBACA,gBACA,WACA,eACA,aACA,eACA,aACA,iBACA,eACA,MACA,QACA,cACA,cACA,cACA,gBACA,YACA,YACA,cACA,WACA,qBACA,iBACA,eACA,aACA,YACA,eACA,cACA,cACA,cACA,gBACA,kBACA,oBACA,kBACA,qBACA,qBACA,iBACA,uBACA,iBACA,qBACA,mBACA,mBACA,OACA,SACA,cACA,YACA,iBACA,UACA,YACA,aACA,gBACA,aACA,WACA,aACA,gBACA,YACA,qBACA,aACA,gBACA,YACA,cACA,iBACA,sBACA,sBACA,0BACA,sBACA,gBACA,mBACA,qBACA,aACA,cACA,UACA,sBACA,eACA,YACA,iBACA,eACA,eACA,gBACA,eACA,YACA,YACA,cACA,kBACA,kBACA,OACA,aACA,WACA,aAC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","sources":["webpack://_N_E/./node_modules/@swc/helpers/lib/_define_property.js","webpack://_N_E/./node_modules/@swc/helpers/lib/_object_spread.js","webpack://_N_E/./node_modules/@swc/helpers/lib/_object_spread_props.js","webpack://_N_E/./node_modules/class-names/index.js","webpack://_N_E/./node_modules/classnames/index.js","webpack://_N_E/./node_modules/color-name/index.js","webpack://_N_E/./node_modules/color-string/index.js","webpack://_N_E/./node_modules/color/index.js","webpack://_N_E/./node_modules/color/node_modules/color-convert/conversions.js","webpack://_N_E/./node_modules/color/node_modules/color-convert/index.js","webpack://_N_E/./node_modules/color/node_modules/color-convert/route.js","webpack://_N_E/./node_modules/color/node_modules/color-name/index.js","webpack://_N_E/./node_modules/cssesc/cssesc.js","webpack://_N_E/./node_modules/just-unique/index.js","webpack://_N_E/./node_modules/lodash.merge/index.js","webpack://_N_E/./node_modules/lodash.mergewith/index.js","webpack://_N_E/./node_modules/next/config.js","webpack://_N_E/./node_modules/next/dist/client/get-domain-locale.js","webpack://_N_E/./node_modules/next/dist/client/link.js","webpack://_N_E/./node_modules/next/dist/client/normalize-locale-path.js","webpack://_N_E/./node_modules/next/dist/client/use-intersection.js","webpack://_N_E/./node_modules/next/dist/shared/lib/app-router-context.js","webpack://_N_E/./node_modules/next/dist/shared/lib/dynamic.js","webpack://_N_E/./node_modules/next/dist/shared/lib/loadable-context.js","webpack://_N_E/./node_modules/next/dist/shared/lib/loadable.js","webpack://_N_E/./node_modules/next/dynamic.js","webpack://_N_E/./node_modules/next/link.js","webpack://_N_E/./node_modules/picocolors/picocolors.browser.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/index.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/parser.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/processor.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/attribute.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/className.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/combinator.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/comment.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/constructors.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/container.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/guards.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/id.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/index.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/namespace.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/nesting.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/node.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/pseudo.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/root.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/selector.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/string.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/tag.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/types.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/selectors/universal.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/sortAscending.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/tokenTypes.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/tokenize.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/util/ensureObject.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/util/getProp.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/util/index.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/util/stripComments.js","webpack://_N_E/./node_modules/postcss-selector-parser/dist/util/unesc.js","webpack://_N_E/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://_N_E/./node_modules/prop-types/index.js","webpack://_N_E/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://_N_E/./node_modules/react-paginate/dist/react-paginate.js","webpack://_N_E/./node_modules/react-share/es/EmailIcon.js","webpack://_N_E/./node_modules/react-share/es/EmailShareButton.js","webpack://_N_E/./node_modules/react-share/es/FacebookIcon.js","webpack://_N_E/./node_modules/react-share/es/FacebookShareButton.js","webpack://_N_E/./node_modules/react-share/es/WhatsappIcon.js","webpack://_N_E/./node_modules/react-share/es/WhatsappShareButton.js","webpack://_N_E/./node_modules/react-share/es/hocs/createIcon.js","webpack://_N_E/./node_modules/react-share/es/ShareButton.js","webpack://_N_E/./node_modules/react-share/es/hocs/createShareButton.js","webpack://_N_E/./node_modules/react-share/es/utils/assert.js","webpack://_N_E/./node_modules/react-share/es/utils/objectToGetParams.js","webpack://_N_E/./node_modules/@reach/utils/dist/reach-utils.esm.js","webpack://_N_E/./node_modules/@reach/portal/dist/reach-portal.esm.js","webpack://_N_E/./node_modules/xstate/es/_virtual/_tslib.js","webpack://_N_E/./node_modules/xstate/es/constants.js","webpack://_N_E/./node_modules/xstate/es/utils.js","webpack://_N_E/./node_modules/xstate/es/stateUtils.js","webpack://_N_E/./node_modules/xstate/es/types.js","webpack://_N_E/./node_modules/xstate/es/actionTypes.js","webpack://_N_E/./node_modules/xstate/es/actions.js","webpack://_N_E/./node_modules/xstate/es/State.js","webpack://_N_E/./node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","webpack://_N_E/./node_modules/xstate/es/scheduler.js","webpack://_N_E/./node_modules/xstate/es/serviceScope.js","webpack://_N_E/./node_modules/xstate/es/Actor.js","webpack://_N_E/./node_modules/xstate/es/registry.js","webpack://_N_E/./node_modules/xstate/es/devTools.js","webpack://_N_E/./node_modules/xstate/es/behaviors.js","webpack://_N_E/./node_modules/xstate/es/interpreter.js","webpack://_N_E/./node_modules/@xstate/react/es/types.js","webpack://_N_E/./node_modules/@xstate/react/es/useConstant.js","webpack://_N_E/./node_modules/@xstate/react/es/utils.js","webpack://_N_E/./node_modules/@xstate/react/es/useReactEffectActions.js","webpack://_N_E/./node_modules/@xstate/react/es/useInterpret.js","webpack://_N_E/./node_modules/@xstate/react/es/useMachine.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://_N_E/./node_modules/react-spring-bottom-sheet/node_modules/react-spring/web.js","webpack://_N_E/./node_modules/react-use-gesture/dist/react-use-gesture.esm.js","webpack://_N_E/./node_modules/tabbable/dist/index.esm.js","webpack://_N_E/./node_modules/focus-trap/dist/focus-trap.esm.js","webpack://_N_E/./node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/utils/freeze.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/utils/element.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/utils/global.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/utils/process.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/utils/scheduler.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/ResizeObservation.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","webpack://_N_E/./node_modules/@juggle/resize-observer/lib/ResizeObserver.js","webpack://_N_E/./node_modules/xstate/es/invokeUtils.js","webpack://_N_E/./node_modules/xstate/es/StateNode.js","webpack://_N_E/./node_modules/xstate/es/index.js","webpack://_N_E/./node_modules/react-spring-bottom-sheet/dist/index.es.js","webpack://_N_E/./node_modules/xstate/es/Machine.js","webpack://_N_E/./node_modules/simple-swizzle/index.js","webpack://_N_E/./node_modules/simple-swizzle/node_modules/is-arrayish/index.js","webpack://_N_E/./node_modules/tailwindcss-themer/lib/index.js","webpack://_N_E/./node_modules/tailwindcss-themer/lib/utils/colorUtils.js","webpack://_N_E/./node_modules/tailwindcss-themer/lib/utils/customPropUtils.js","webpack://_N_E/./node_modules/tailwindcss-themer/lib/utils/optionsUtils.js","webpack://_N_E/./node_modules/tailwindcss-themer/lib/utils/themeUtils.js","webpack://_N_E/./node_modules/tailwindcss/lib/corePluginList.js","webpack://_N_E/./node_modules/tailwindcss/lib/featureFlags.js","webpack://_N_E/./node_modules/tailwindcss/lib/lib/regex.js","webpack://_N_E/./node_modules/tailwindcss/lib/public/colors.js","webpack://_N_E/./node_modules/tailwindcss/lib/public/create-plugin.js","webpack://_N_E/./node_modules/tailwindcss/lib/public/resolve-config.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/cloneDeep.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/color.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/configurePlugins.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/createPlugin.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/dataTypes.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/defaults.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/escapeCommas.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/getAllConfigs.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/isPlainObject.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/log.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/negateValue.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/normalizeConfig.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/parseBoxShadowValue.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/pluginUtils.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/resolveConfig.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/splitAtTopLevelOnly.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/toColorValue.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/toPath.js","webpack://_N_E/./node_modules/tailwindcss/lib/util/withAlphaVariable.js","webpack://_N_E/./node_modules/tailwindcss/node_modules/color-name/index.js","webpack://_N_E/./node_modules/tailwindcss/plugin.js","webpack://_N_E/./node_modules/tailwindcss/stubs/defaultConfig.stub.js","webpack://_N_E/./node_modules/tslib/tslib.es6.js","webpack://_N_E/./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","webpack://_N_E/./node_modules/use-sync-external-store/shim/index.js","webpack://_N_E/./node_modules/util-deprecate/browser.js","webpack://_N_E/./node_modules/warning/warning.js","webpack://_N_E/./node_modules/@swc/helpers/src/_object_without_properties.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_object_without_properties_loose.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_to_consumable_array.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_array_without_holes.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_non_iterable_spread.mjs","webpack://_N_E/./node_modules/swiper/components-shared/utils.js","webpack://_N_E/./node_modules/swiper/components-shared/params-list.js","webpack://_N_E/./node_modules/swiper/react/loop.js","webpack://_N_E/./node_modules/swiper/react/get-children.js","webpack://_N_E/./node_modules/swiper/components-shared/update-swiper.js","webpack://_N_E/./node_modules/swiper/react/use-isomorphic-layout-effect.js","webpack://_N_E/./node_modules/swiper/react/context.js","webpack://_N_E/./node_modules/swiper/react/swiper.js","webpack://_N_E/./node_modules/swiper/components-shared/get-params.js","webpack://_N_E/./node_modules/swiper/components-shared/mount-swiper.js","webpack://_N_E/./node_modules/swiper/components-shared/get-changed-params.js","webpack://_N_E/./node_modules/swiper/components-shared/update-on-virtual-data.js","webpack://_N_E/./node_modules/swiper/react/virtual.js","webpack://_N_E/./node_modules/swiper/react/swiper-slide.js","webpack://_N_E/./node_modules/ssr-window/ssr-window.esm.js","webpack://_N_E/./node_modules/dom7/dom7.esm.js","webpack://_N_E/./node_modules/swiper/shared/dom.js","webpack://_N_E/./node_modules/swiper/shared/utils.js","webpack://_N_E/./node_modules/swiper/shared/get-support.js","webpack://_N_E/./node_modules/swiper/shared/get-device.js","webpack://_N_E/./node_modules/swiper/shared/get-browser.js","webpack://_N_E/./node_modules/swiper/core/events-emitter.js","webpack://_N_E/./node_modules/swiper/core/update/index.js","webpack://_N_E/./node_modules/swiper/core/update/updateSize.js","webpack://_N_E/./node_modules/swiper/core/update/updateSlides.js","webpack://_N_E/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://_N_E/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://_N_E/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://_N_E/./node_modules/swiper/core/update/updateProgress.js","webpack://_N_E/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://_N_E/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://_N_E/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://_N_E/./node_modules/swiper/core/translate/index.js","webpack://_N_E/./node_modules/swiper/core/translate/getTranslate.js","webpack://_N_E/./node_modules/swiper/core/translate/setTranslate.js","webpack://_N_E/./node_modules/swiper/core/translate/minTranslate.js","webpack://_N_E/./node_modules/swiper/core/translate/maxTranslate.js","webpack://_N_E/./node_modules/swiper/core/translate/translateTo.js","webpack://_N_E/./node_modules/swiper/core/transition/transitionEmit.js","webpack://_N_E/./node_modules/swiper/core/slide/index.js","webpack://_N_E/./node_modules/swiper/core/slide/slideTo.js","webpack://_N_E/./node_modules/swiper/core/slide/slideToLoop.js","webpack://_N_E/./node_modules/swiper/core/slide/slideNext.js","webpack://_N_E/./node_modules/swiper/core/slide/slidePrev.js","webpack://_N_E/./node_modules/swiper/core/slide/slideReset.js","webpack://_N_E/./node_modules/swiper/core/slide/slideToClosest.js","webpack://_N_E/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://_N_E/./node_modules/swiper/core/loop/index.js","webpack://_N_E/./node_modules/swiper/core/loop/loopCreate.js","webpack://_N_E/./node_modules/swiper/core/loop/loopFix.js","webpack://_N_E/./node_modules/swiper/core/loop/loopDestroy.js","webpack://_N_E/./node_modules/swiper/core/events/onTouchStart.js","webpack://_N_E/./node_modules/swiper/core/events/onTouchMove.js","webpack://_N_E/./node_modules/swiper/core/events/onTouchEnd.js","webpack://_N_E/./node_modules/swiper/core/events/onResize.js","webpack://_N_E/./node_modules/swiper/core/events/onClick.js","webpack://_N_E/./node_modules/swiper/core/events/onScroll.js","webpack://_N_E/./node_modules/swiper/core/events/index.js","webpack://_N_E/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://_N_E/./node_modules/swiper/core/breakpoints/index.js","webpack://_N_E/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://_N_E/./node_modules/swiper/core/classes/index.js","webpack://_N_E/./node_modules/swiper/core/classes/addClasses.js","webpack://_N_E/./node_modules/swiper/core/classes/removeClasses.js","webpack://_N_E/./node_modules/swiper/core/check-overflow/index.js","webpack://_N_E/./node_modules/swiper/core/defaults.js","webpack://_N_E/./node_modules/swiper/core/moduleExtendParams.js","webpack://_N_E/./node_modules/swiper/core/core.js","webpack://_N_E/./node_modules/swiper/core/transition/index.js","webpack://_N_E/./node_modules/swiper/core/transition/setTransition.js","webpack://_N_E/./node_modules/swiper/core/transition/transitionStart.js","webpack://_N_E/./node_modules/swiper/core/transition/transitionEnd.js","webpack://_N_E/./node_modules/swiper/core/grab-cursor/index.js","webpack://_N_E/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://_N_E/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://_N_E/./node_modules/swiper/core/images/index.js","webpack://_N_E/./node_modules/swiper/core/images/loadImage.js","webpack://_N_E/./node_modules/swiper/core/images/preloadImages.js","webpack://_N_E/./node_modules/swiper/core/modules/resize/resize.js","webpack://_N_E/./node_modules/swiper/core/modules/observer/observer.js","webpack://_N_E/./node_modules/swiper/modules/mousewheel/mousewheel.js","webpack://_N_E/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://_N_E/./node_modules/swiper/modules/navigation/navigation.js","webpack://_N_E/./node_modules/swiper/shared/classes-to-selector.js","webpack://_N_E/./node_modules/swiper/modules/pagination/pagination.js","webpack://_N_E/./node_modules/swiper/modules/controller/controller.js","webpack://_N_E/./node_modules/swiper/modules/a11y/a11y.js","webpack://_N_E/./node_modules/swiper/modules/autoplay/autoplay.js","webpack://_N_E/./node_modules/swiper/shared/effect-target.js","webpack://_N_E/./node_modules/swiper/modules/effect-fade/effect-fade.js","webpack://_N_E/./node_modules/swiper/shared/effect-init.js","webpack://_N_E/./node_modules/swiper/shared/effect-virtual-transition-end.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _defineProperty;\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}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _objectSpread;\nvar _definePropertyMjs = _interopRequireDefault(require(\"./_define_property.js\"));\nfunction _objectSpread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n (0, _definePropertyMjs).default(target, key, source[key]);\n });\n }\n return target;\n}\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _objectSpreadProps;\nfunction _objectSpreadProps(target, source) {\n source = source != null ? source : {};\n 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 return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\n","module.exports = require('classnames');\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","const colorString = require('color-string');\nconst convert = require('color-convert');\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...args) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (args.length > 0) {\n\t\t\treturn new Color(args, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...args) {\n\t\tlet color = args[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(args, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nmodule.exports = Color;\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/*! https://mths.be/cssesc v3.0.0 by @mathias */\n'use strict';\n\nvar object = {};\nvar hasOwnProperty = object.hasOwnProperty;\nvar merge = function merge(options, defaults) {\n\tif (!options) {\n\t\treturn defaults;\n\t}\n\tvar result = {};\n\tfor (var key in defaults) {\n\t\t// `if (defaults.hasOwnProperty(key) { … }` is not needed here, since\n\t\t// only recognized option names are used.\n\t\tresult[key] = hasOwnProperty.call(options, key) ? options[key] : defaults[key];\n\t}\n\treturn result;\n};\n\nvar regexAnySingleEscape = /[ -,\\.\\/:-@\\[-\\^`\\{-~]/;\nvar regexSingleEscape = /[ -,\\.\\/:-@\\[\\]\\^`\\{-~]/;\nvar regexAlwaysEscape = /['\"\\\\]/;\nvar regexExcessiveSpaces = /(^|\\\\+)?(\\\\[A-F0-9]{1,6})\\x20(?![a-fA-F0-9\\x20])/g;\n\n// https://mathiasbynens.be/notes/css-escapes#css\nvar cssesc = function cssesc(string, options) {\n\toptions = merge(options, cssesc.options);\n\tif (options.quotes != 'single' && options.quotes != 'double') {\n\t\toptions.quotes = 'single';\n\t}\n\tvar quote = options.quotes == 'double' ? '\"' : '\\'';\n\tvar isIdentifier = options.isIdentifier;\n\n\tvar firstChar = string.charAt(0);\n\tvar output = '';\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar character = string.charAt(counter++);\n\t\tvar codePoint = character.charCodeAt();\n\t\tvar value = void 0;\n\t\t// If it’s not a printable ASCII character…\n\t\tif (codePoint < 0x20 || codePoint > 0x7E) {\n\t\t\tif (codePoint >= 0xD800 && codePoint <= 0xDBFF && counter < length) {\n\t\t\t\t// It’s a high surrogate, and there is a next character.\n\t\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t\t// next character is low surrogate\n\t\t\t\t\tcodePoint = ((codePoint & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000;\n\t\t\t\t} else {\n\t\t\t\t\t// It’s an unmatched surrogate; only append this code unit, in case\n\t\t\t\t\t// the next code unit is the high surrogate of a surrogate pair.\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t} else {\n\t\t\tif (options.escapeEverything) {\n\t\t\t\tif (regexAnySingleEscape.test(character)) {\n\t\t\t\t\tvalue = '\\\\' + character;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t\t}\n\t\t\t} else if (/[\\t\\n\\f\\r\\x0B]/.test(character)) {\n\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t} else if (character == '\\\\' || !isIdentifier && (character == '\"' && quote == character || character == '\\'' && quote == character) || isIdentifier && regexSingleEscape.test(character)) {\n\t\t\t\tvalue = '\\\\' + character;\n\t\t\t} else {\n\t\t\t\tvalue = character;\n\t\t\t}\n\t\t}\n\t\toutput += value;\n\t}\n\n\tif (isIdentifier) {\n\t\tif (/^-[-\\d]/.test(output)) {\n\t\t\toutput = '\\\\-' + output.slice(1);\n\t\t} else if (/\\d/.test(firstChar)) {\n\t\t\toutput = '\\\\3' + firstChar + ' ' + output.slice(1);\n\t\t}\n\t}\n\n\t// Remove spaces after `\\HEX` escapes that are not followed by a hex digit,\n\t// since they’re redundant. Note that this is only possible if the escape\n\t// sequence isn’t preceded by an odd number of backslashes.\n\toutput = output.replace(regexExcessiveSpaces, function ($0, $1, $2) {\n\t\tif ($1 && $1.length % 2) {\n\t\t\t// It’s not safe to remove the space, so don’t.\n\t\t\treturn $0;\n\t\t}\n\t\t// Strip the space.\n\t\treturn ($1 || '') + $2;\n\t});\n\n\tif (!isIdentifier && options.wrap) {\n\t\treturn quote + output + quote;\n\t}\n\treturn output;\n};\n\n// Expose default options (so they can be overridden globally).\ncssesc.options = {\n\t'escapeEverything': false,\n\t'isIdentifier': false,\n\t'quotes': 'single',\n\t'wrap': false\n};\n\ncssesc.version = '3.0.0';\n\nmodule.exports = cssesc;\n","module.exports = unique;\n\n/*\n unique([1, 2, 3, 2, 3, 4, 3, 2, 1, 3]); // [1, 2, 3, 4]\n var a = {a: 3};\n var b = {b: 4};\n var c = {c: 5};\n unique([a, a, b, c, b]); // [a, b, c]\n unique([1, '1', 2, '2', 3, 2]); // [1, '1', 2, '2', 3]\n // declaring sorted array for performance\n unique([1, 1, '1', 2, 2, 5, '5', '5'], true); // [1, '1', 2, 5, '6']\n // declaring strings array for performance\n unique(['a', 'c', 'b', 'c', 'a'], false, true); // ['a', 'b', 'c']\n*/\n\nfunction unique(arr, sorted, strings) {\n if (!Array.isArray(arr)) {\n throw new Error('expected an array for the first argument');\n }\n if (sorted != null && typeof sorted != 'boolean') {\n throw new Error('expected a boolean, null or undefined for the second argument');\n }\n if (strings != null && typeof strings != 'boolean') {\n throw new Error('expected a boolean, null or undefined for the third argument');\n }\n if (!sorted && strings && arr[0] !== Object(arr[0])) {\n return stringUnique(arr);\n }\n var result = [],\n duplicate,\n seenNaN,\n lastAdded;\n var len = arr.length;\n for (var i = 0; i < len; i++) {\n var elem = arr[i];\n if (typeof elem == 'number' && isNaN(elem)) {\n duplicate = seenNaN;\n seenNaN = true;\n }\n duplicate = duplicate || (lastAdded && lastAdded === elem);\n if (!duplicate && !sorted) {\n duplicate = result.indexOf(elem) > -1;\n }\n if (!duplicate) {\n result.push(elem);\n lastAdded = elem;\n } else {\n duplicate = false;\n }\n }\n return result;\n}\n\nfunction stringUnique(arr) {\n var lookup = {};\n var len = arr.length;\n for (var i = 0; i < len; i++) {\n lookup[arr[i]] = true;\n }\n return Object.keys(lookup);\n}\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = mergeWith;\n","module.exports = require('./dist/shared/lib/runtime-config')\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getDomainLocale = getDomainLocale;\nconst basePath = process.env.__NEXT_ROUTER_BASEPATH || '';\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (process.env.__NEXT_I18N_SUPPORT) {\n const normalizeLocalePath = require('./normalize-locale-path').normalizeLocalePath;\n const detectDomainLocale = require('./detect-domain-locale').detectDomainLocale;\n const target = locale || normalizeLocalePath(path, locales).detectedLocale;\n const domain = detectDomainLocale(domainLocales, undefined, target);\n if (domain) {\n const proto = `http${domain.http ? '' : 's'}://`;\n const finalLocale = target === domain.defaultLocale ? '' : `/${target}`;\n return `${proto}${domain.domain}${basePath}${finalLocale}${path}`;\n }\n return false;\n } else {\n return false;\n }\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=get-domain-locale.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _interop_require_default = require(\"@swc/helpers/lib/_interop_require_default.js\").default;\nvar _object_without_properties_loose = require(\"@swc/helpers/lib/_object_without_properties_loose.js\").default;\nvar _react = _interop_require_default(require(\"react\"));\nvar _router = require(\"../shared/lib/router/router\");\nvar _addLocale = require(\"./add-locale\");\nvar _routerContext = require(\"../shared/lib/router-context\");\nvar _appRouterContext = require(\"../shared/lib/app-router-context\");\nvar _useIntersection = require(\"./use-intersection\");\nvar _getDomainLocale = require(\"./get-domain-locale\");\nvar _addBasePath = require(\"./add-base-path\");\n// @ts-ignore useTransition exist\nconst hasUseTransition = typeof _react.default.useTransition !== 'undefined';\nconst prefetched = {};\nfunction prefetch(router, href, as, options) {\n if (typeof window === 'undefined' || !router) return;\n if (!(0, _router).isLocalURL(href)) return;\n // Prefetch the JSON page if asked (only in the client)\n // We need to handle a prefetch error here since we may be\n // loading with priority which can reject but we don't\n // want to force navigation since this is only a prefetch\n router.prefetch(href, as, options).catch((err)=>{\n if (process.env.NODE_ENV !== 'production') {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n const curLocale = options && typeof options.locale !== 'undefined' ? options.locale : router && router.locale;\n // Join on an invalid URI character\n prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')] = true;\n}\nfunction isModifiedEvent(event) {\n const { target } = event.currentTarget;\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.nativeEvent && event.nativeEvent.which === 2;\n}\nfunction linkClicked(e, router, href, as, replace, soft, shallow, scroll, locale, startTransition) {\n const { nodeName } = e.currentTarget;\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === 'A';\n if (isAnchorNodeName && (isModifiedEvent(e) || !(0, _router).isLocalURL(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n e.preventDefault();\n const navigate = ()=>{\n // If the router is an AppRouterInstance, then it'll have `softPush` and\n // `softReplace`.\n if ('softPush' in router && 'softReplace' in router) {\n // If we're doing a soft navigation, use the soft variants of\n // replace/push.\n const method = soft ? replace ? 'softReplace' : 'softPush' : replace ? 'replace' : 'push';\n router[method](href);\n } else {\n router[replace ? 'replace' : 'push'](href, as, {\n shallow,\n locale,\n scroll\n });\n }\n };\n if (startTransition) {\n startTransition(navigate);\n } else {\n navigate();\n }\n}\nconst Link = /*#__PURE__*/ _react.default.forwardRef(function LinkComponent(props, forwardedRef) {\n if (process.env.NODE_ENV !== 'production') {\n function createPropError(args) {\n return new Error(`Failed prop type: The prop \\`${args.key}\\` expects a ${args.expected} in \\`\\`, but got \\`${args.actual}\\` instead.` + (typeof window !== 'undefined' ? \"\\nOpen your browser's console to view the Component stack trace.\" : ''));\n }\n // TypeScript trick for type-guarding:\n const requiredPropsGuard = {\n href: true\n };\n const requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach((key)=>{\n if (key === 'href') {\n if (props[key] == null || typeof props[key] !== 'string' && typeof props[key] !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: props[key] === null ? 'null' : typeof props[key]\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // TypeScript trick for type-guarding:\n const optionalPropsGuard = {\n as: true,\n replace: true,\n soft: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true\n };\n const optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach((key)=>{\n const valType = typeof props[key];\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: valType\n });\n }\n } else if (key === 'locale') {\n if (props[key] && valType !== 'string') {\n throw createPropError({\n key,\n expected: '`string`',\n actual: valType\n });\n }\n } else if (key === 'onClick' || key === 'onMouseEnter' || key === 'onTouchStart') {\n if (props[key] && valType !== 'function') {\n throw createPropError({\n key,\n expected: '`function`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'soft' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'prefetch' || key === 'legacyBehavior') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // This hook is in a conditional but that is ok because `process.env.NODE_ENV` never changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const hasWarned = _react.default.useRef(false);\n if (props.prefetch && !hasWarned.current) {\n hasWarned.current = true;\n console.warn('Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated');\n }\n }\n let children;\n const { href: hrefProp , as: asProp , children: childrenProp , prefetch: prefetchProp , passHref , replace , soft , shallow , scroll , locale , onClick , onMouseEnter , onTouchStart , legacyBehavior =Boolean(process.env.__NEXT_NEW_LINK_BEHAVIOR) !== true } = props, restProps = _object_without_properties_loose(props, [\n \"href\",\n \"as\",\n \"children\",\n \"prefetch\",\n \"passHref\",\n \"replace\",\n \"soft\",\n \"shallow\",\n \"scroll\",\n \"locale\",\n \"onClick\",\n \"onMouseEnter\",\n \"onTouchStart\",\n \"legacyBehavior\"\n ]);\n children = childrenProp;\n if (legacyBehavior && (typeof children === 'string' || typeof children === 'number')) {\n children = /*#__PURE__*/ _react.default.createElement(\"a\", null, children);\n }\n const p = prefetchProp !== false;\n const [, /* isPending */ startTransition] = hasUseTransition ? // There is no difference between renders in this case, only between using React 18 vs 17.\n // @ts-ignore useTransition exists\n // eslint-disable-next-line react-hooks/rules-of-hooks\n _react.default.useTransition() : [];\n let router = _react.default.useContext(_routerContext.RouterContext);\n // TODO-APP: type error. Remove `as any`\n const appRouter = _react.default.useContext(_appRouterContext.AppRouterContext);\n if (appRouter) {\n router = appRouter;\n }\n const { href , as } = _react.default.useMemo(()=>{\n const [resolvedHref, resolvedAs] = (0, _router).resolveHref(router, hrefProp, true);\n return {\n href: resolvedHref,\n as: asProp ? (0, _router).resolveHref(router, asProp) : resolvedAs || resolvedHref\n };\n }, [\n router,\n hrefProp,\n asProp\n ]);\n const previousHref = _react.default.useRef(href);\n const previousAs = _react.default.useRef(as);\n // This will return the first child, if multiple are provided it will throw an error\n let child;\n if (legacyBehavior) {\n if (process.env.NODE_ENV === 'development') {\n if (onClick) {\n console.warn(`\"onClick\" was passed to with \\`href\\` of \\`${hrefProp}\\` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link`);\n }\n if (onMouseEnter) {\n console.warn(`\"onMouseEnter\" was passed to with \\`href\\` of \\`${hrefProp}\\` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link`);\n }\n try {\n child = _react.default.Children.only(children);\n } catch (err) {\n if (!children) {\n throw new Error(`No children were passed to with \\`href\\` of \\`${hrefProp}\\` but one child is required https://nextjs.org/docs/messages/link-no-children`);\n }\n throw new Error(`Multiple children were passed to with \\`href\\` of \\`${hrefProp}\\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children` + (typeof window !== 'undefined' ? \" \\nOpen your browser's console to view the Component stack trace.\" : ''));\n }\n } else {\n child = _react.default.Children.only(children);\n }\n }\n const childRef = legacyBehavior ? child && typeof child === 'object' && child.ref : forwardedRef;\n const [setIntersectionRef, isVisible, resetVisible] = (0, _useIntersection).useIntersection({\n rootMargin: '200px'\n });\n const setRef = _react.default.useCallback((el)=>{\n // Before the link getting observed, check if visible state need to be reset\n if (previousAs.current !== as || previousHref.current !== href) {\n resetVisible();\n previousAs.current = as;\n previousHref.current = href;\n }\n setIntersectionRef(el);\n if (childRef) {\n if (typeof childRef === 'function') childRef(el);\n else if (typeof childRef === 'object') {\n childRef.current = el;\n }\n }\n }, [\n as,\n childRef,\n href,\n resetVisible,\n setIntersectionRef\n ]);\n _react.default.useEffect(()=>{\n const shouldPrefetch = isVisible && p && (0, _router).isLocalURL(href);\n const curLocale = typeof locale !== 'undefined' ? locale : router && router.locale;\n const isPrefetched = prefetched[href + '%' + as + (curLocale ? '%' + curLocale : '')];\n if (shouldPrefetch && !isPrefetched) {\n prefetch(router, href, as, {\n locale: curLocale\n });\n }\n }, [\n as,\n href,\n isVisible,\n locale,\n p,\n router\n ]);\n const childProps = {\n ref: setRef,\n onClick: (e)=>{\n if (process.env.NODE_ENV !== 'production') {\n if (!e) {\n throw new Error(`Component rendered inside next/link has to pass click event to \"onClick\" prop.`);\n }\n }\n if (!legacyBehavior && typeof onClick === 'function') {\n onClick(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n if (!e.defaultPrevented) {\n linkClicked(e, router, href, as, replace, soft, shallow, scroll, locale, appRouter ? startTransition : undefined);\n }\n },\n onMouseEnter: (e)=>{\n if (!legacyBehavior && typeof onMouseEnter === 'function') {\n onMouseEnter(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n if ((0, _router).isLocalURL(href)) {\n prefetch(router, href, as, {\n priority: true\n });\n }\n },\n onTouchStart: (e)=>{\n if (!legacyBehavior && typeof onTouchStart === 'function') {\n onTouchStart(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onTouchStart === 'function') {\n child.props.onTouchStart(e);\n }\n if ((0, _router).isLocalURL(href)) {\n prefetch(router, href, as, {\n priority: true\n });\n }\n }\n };\n // If child is an tag and doesn't have a href attribute, or if the 'passHref' property is\n // defined, we specify the current 'href', so that repetition is not needed by the user\n if (!legacyBehavior || passHref || child.type === 'a' && !('href' in child.props)) {\n const curLocale = typeof locale !== 'undefined' ? locale : router && router.locale;\n // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n const localeDomain = router && router.isLocaleDomain && (0, _getDomainLocale).getDomainLocale(as, curLocale, router.locales, router.domainLocales);\n childProps.href = localeDomain || (0, _addBasePath).addBasePath((0, _addLocale).addLocale(as, curLocale, router && router.defaultLocale));\n }\n return legacyBehavior ? /*#__PURE__*/ _react.default.cloneElement(child, childProps) : /*#__PURE__*/ _react.default.createElement(\"a\", Object.assign({}, restProps, childProps), children);\n});\nvar _default = Link;\nexports.default = _default;\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=link.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.normalizeLocalePath = void 0;\nconst normalizeLocalePath = (pathname, locales)=>{\n if (process.env.__NEXT_I18N_SUPPORT) {\n return require('../shared/lib/i18n/normalize-locale-path').normalizeLocalePath(pathname, locales);\n }\n return {\n pathname,\n detectedLocale: undefined\n };\n};\nexports.normalizeLocalePath = normalizeLocalePath;\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=normalize-locale-path.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useIntersection = useIntersection;\nvar _react = require(\"react\");\nvar _requestIdleCallback = require(\"./request-idle-callback\");\nconst hasIntersectionObserver = typeof IntersectionObserver === 'function';\nfunction useIntersection({ rootRef , rootMargin , disabled }) {\n const isDisabled = disabled || !hasIntersectionObserver;\n const unobserve = (0, _react).useRef();\n const [visible, setVisible] = (0, _react).useState(false);\n const [element, setElement] = (0, _react).useState(null);\n (0, _react).useEffect(()=>{\n if (hasIntersectionObserver) {\n if (unobserve.current) {\n unobserve.current();\n unobserve.current = undefined;\n }\n if (isDisabled || visible) return;\n if (element && element.tagName) {\n unobserve.current = observe(element, (isVisible)=>isVisible && setVisible(isVisible), {\n root: rootRef == null ? void 0 : rootRef.current,\n rootMargin\n });\n }\n return ()=>{\n unobserve.current == null ? void 0 : unobserve.current();\n unobserve.current = undefined;\n };\n } else {\n if (!visible) {\n const idleCallback = (0, _requestIdleCallback).requestIdleCallback(()=>setVisible(true));\n return ()=>(0, _requestIdleCallback).cancelIdleCallback(idleCallback);\n }\n }\n }, [\n element,\n isDisabled,\n rootMargin,\n rootRef,\n visible\n ]);\n const resetVisible = (0, _react).useCallback(()=>{\n setVisible(false);\n }, []);\n return [\n setElement,\n visible,\n resetVisible\n ];\n}\nfunction observe(element, callback, options) {\n const { id , observer , elements } = createObserver(options);\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements.delete(element);\n observer.unobserve(element);\n // Destroy observer when there's nothing left to watch:\n if (elements.size === 0) {\n observer.disconnect();\n observers.delete(id);\n const index = idList.findIndex((obj)=>obj.root === id.root && obj.margin === id.margin);\n if (index > -1) {\n idList.splice(index, 1);\n }\n }\n };\n}\nconst observers = new Map();\nconst idList = [];\nfunction createObserver(options) {\n const id = {\n root: options.root || null,\n margin: options.rootMargin || ''\n };\n const existing = idList.find((obj)=>obj.root === id.root && obj.margin === id.margin);\n let instance;\n if (existing) {\n instance = observers.get(existing);\n if (instance) {\n return instance;\n }\n }\n const elements = new Map();\n const observer = new IntersectionObserver((entries)=>{\n entries.forEach((entry)=>{\n const callback = elements.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n instance = {\n id,\n observer,\n elements\n };\n idList.push(id);\n observers.set(id, instance);\n return instance;\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=use-intersection.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.GlobalLayoutRouterContext = exports.LayoutRouterContext = exports.AppRouterContext = void 0;\nvar _interop_require_default = require(\"@swc/helpers/lib/_interop_require_default.js\").default;\nvar _react = _interop_require_default(require(\"react\"));\nconst AppRouterContext = _react.default.createContext(null);\nexports.AppRouterContext = AppRouterContext;\nconst LayoutRouterContext = _react.default.createContext(null);\nexports.LayoutRouterContext = LayoutRouterContext;\nconst GlobalLayoutRouterContext = _react.default.createContext(null);\nexports.GlobalLayoutRouterContext = GlobalLayoutRouterContext;\nif (process.env.NODE_ENV !== 'production') {\n AppRouterContext.displayName = 'AppRouterContext';\n LayoutRouterContext.displayName = 'LayoutRouterContext';\n GlobalLayoutRouterContext.displayName = 'GlobalLayoutRouterContext';\n}\n\n//# sourceMappingURL=app-router-context.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = dynamic;\nexports.noSSR = noSSR;\nvar _extends = require(\"@swc/helpers/lib/_extends.js\").default;\nvar _interop_require_default = require(\"@swc/helpers/lib/_interop_require_default.js\").default;\nvar _react = _interop_require_default(require(\"react\"));\nvar _loadable = _interop_require_default(require(\"./loadable\"));\nfunction dynamic(dynamicOptions, options) {\n let loadableFn = _loadable.default;\n let loadableOptions = {\n // A loading component is not required, so we default it\n loading: ({ error , isLoading , pastDelay })=>{\n if (!pastDelay) return null;\n if (process.env.NODE_ENV === 'development') {\n if (isLoading) {\n return null;\n }\n if (error) {\n return /*#__PURE__*/ _react.default.createElement(\"p\", null, error.message, /*#__PURE__*/ _react.default.createElement(\"br\", null), error.stack);\n }\n }\n return null;\n }\n };\n // Support for direct import(), eg: dynamic(import('../hello-world'))\n // Note that this is only kept for the edge case where someone is passing in a promise as first argument\n // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))\n // To make sure we don't execute the import without rendering first\n if (dynamicOptions instanceof Promise) {\n loadableOptions.loader = ()=>dynamicOptions;\n // Support for having import as a function, eg: dynamic(() => import('../hello-world'))\n } else if (typeof dynamicOptions === 'function') {\n loadableOptions.loader = dynamicOptions;\n // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})\n } else if (typeof dynamicOptions === 'object') {\n loadableOptions = _extends({}, loadableOptions, dynamicOptions);\n }\n // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () =>

Loading something

})\n loadableOptions = _extends({}, loadableOptions, options);\n // Error if Fizz rendering is not enabled and `suspense` option is set to true\n if (!process.env.__NEXT_REACT_ROOT && loadableOptions.suspense) {\n throw new Error(`Invalid suspense option usage in next/dynamic. Read more: https://nextjs.org/docs/messages/invalid-dynamic-suspense`);\n }\n // coming from build/babel/plugins/react-loadable-plugin.js\n if (loadableOptions.loadableGenerated) {\n loadableOptions = _extends({}, loadableOptions, loadableOptions.loadableGenerated);\n delete loadableOptions.loadableGenerated;\n }\n // support for disabling server side rendering, eg: dynamic(import('../hello-world'), {ssr: false}).\n // skip `ssr` for suspense mode and opt-in React.lazy directly\n if (typeof loadableOptions.ssr === 'boolean' && !loadableOptions.suspense) {\n if (!loadableOptions.ssr) {\n delete loadableOptions.ssr;\n return noSSR(loadableFn, loadableOptions);\n }\n delete loadableOptions.ssr;\n }\n return loadableFn(loadableOptions);\n}\nconst isServerSide = typeof window === 'undefined';\nfunction noSSR(LoadableInitializer, loadableOptions) {\n // Removing webpack and modules means react-loadable won't try preloading\n delete loadableOptions.webpack;\n delete loadableOptions.modules;\n // This check is necessary to prevent react-loadable from initializing on the server\n if (!isServerSide) {\n return LoadableInitializer(loadableOptions);\n }\n const Loading = loadableOptions.loading;\n // This will only be rendered on the server side\n return ()=>/*#__PURE__*/ _react.default.createElement(Loading, {\n error: null,\n isLoading: true,\n pastDelay: false,\n timedOut: false\n });\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=dynamic.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LoadableContext = void 0;\nvar _interop_require_default = require(\"@swc/helpers/lib/_interop_require_default.js\").default;\nvar _react = _interop_require_default(require(\"react\"));\nconst LoadableContext = _react.default.createContext(null);\nexports.LoadableContext = LoadableContext;\nif (process.env.NODE_ENV !== 'production') {\n LoadableContext.displayName = 'LoadableContext';\n}\n\n//# sourceMappingURL=loadable-context.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _extends = require(\"@swc/helpers/lib/_extends.js\").default;\nvar _interop_require_default = require(\"@swc/helpers/lib/_interop_require_default.js\").default;\nvar _react = _interop_require_default(require(\"react\"));\nvar _loadableContext = require(\"./loadable-context\");\nconst { useSyncExternalStore } = process.env.__NEXT_REACT_ROOT ? require('react') : require('use-sync-external-store/shim');\nconst ALL_INITIALIZERS = [];\nconst READY_INITIALIZERS = [];\nlet initialized = false;\nfunction load(loader) {\n let promise = loader();\n let state = {\n loading: true,\n loaded: null,\n error: null\n };\n state.promise = promise.then((loaded)=>{\n state.loading = false;\n state.loaded = loaded;\n return loaded;\n }).catch((err)=>{\n state.loading = false;\n state.error = err;\n throw err;\n });\n return state;\n}\nfunction resolve(obj) {\n return obj && obj.__esModule ? obj.default : obj;\n}\nfunction createLoadableComponent(loadFn, options) {\n let opts = Object.assign({\n loader: null,\n loading: null,\n delay: 200,\n timeout: null,\n webpack: null,\n modules: null,\n suspense: false\n }, options);\n if (opts.suspense) {\n opts.lazy = _react.default.lazy(opts.loader);\n }\n /** @type LoadableSubscription */ let subscription = null;\n function init() {\n if (!subscription) {\n const sub = new LoadableSubscription(loadFn, opts);\n subscription = {\n getCurrentValue: sub.getCurrentValue.bind(sub),\n subscribe: sub.subscribe.bind(sub),\n retry: sub.retry.bind(sub),\n promise: sub.promise.bind(sub)\n };\n }\n return subscription.promise();\n }\n // Server only\n if (typeof window === 'undefined') {\n ALL_INITIALIZERS.push(init);\n }\n // Client only\n if (!initialized && typeof window !== 'undefined') {\n // require.resolveWeak check is needed for environments that don't have it available like Jest\n const moduleIds = opts.webpack && typeof require.resolveWeak === 'function' ? opts.webpack() : opts.modules;\n if (moduleIds) {\n READY_INITIALIZERS.push((ids)=>{\n for (const moduleId of moduleIds){\n if (ids.indexOf(moduleId) !== -1) {\n return init();\n }\n }\n });\n }\n }\n function useLoadableModule() {\n init();\n const context = _react.default.useContext(_loadableContext.LoadableContext);\n if (context && Array.isArray(opts.modules)) {\n opts.modules.forEach((moduleName)=>{\n context(moduleName);\n });\n }\n }\n function LoadableImpl(props, ref) {\n useLoadableModule();\n const state = useSyncExternalStore(subscription.subscribe, subscription.getCurrentValue, subscription.getCurrentValue);\n _react.default.useImperativeHandle(ref, ()=>({\n retry: subscription.retry\n }), []);\n return _react.default.useMemo(()=>{\n if (state.loading || state.error) {\n return _react.default.createElement(opts.loading, {\n isLoading: state.loading,\n pastDelay: state.pastDelay,\n timedOut: state.timedOut,\n error: state.error,\n retry: subscription.retry\n });\n } else if (state.loaded) {\n return _react.default.createElement(resolve(state.loaded), props);\n } else {\n return null;\n }\n }, [\n props,\n state\n ]);\n }\n function LazyImpl(props, ref) {\n useLoadableModule();\n return _react.default.createElement(opts.lazy, _extends({}, props, {\n ref\n }));\n }\n const LoadableComponent = opts.suspense ? LazyImpl : LoadableImpl;\n LoadableComponent.preload = ()=>init();\n LoadableComponent.displayName = 'LoadableComponent';\n return _react.default.forwardRef(LoadableComponent);\n}\nclass LoadableSubscription {\n promise() {\n return this._res.promise;\n }\n retry() {\n this._clearTimeouts();\n this._res = this._loadFn(this._opts.loader);\n this._state = {\n pastDelay: false,\n timedOut: false\n };\n const { _res: res , _opts: opts } = this;\n if (res.loading) {\n if (typeof opts.delay === 'number') {\n if (opts.delay === 0) {\n this._state.pastDelay = true;\n } else {\n this._delay = setTimeout(()=>{\n this._update({\n pastDelay: true\n });\n }, opts.delay);\n }\n }\n if (typeof opts.timeout === 'number') {\n this._timeout = setTimeout(()=>{\n this._update({\n timedOut: true\n });\n }, opts.timeout);\n }\n }\n this._res.promise.then(()=>{\n this._update({});\n this._clearTimeouts();\n }).catch((_err)=>{\n this._update({});\n this._clearTimeouts();\n });\n this._update({});\n }\n _update(partial) {\n this._state = _extends({}, this._state, {\n error: this._res.error,\n loaded: this._res.loaded,\n loading: this._res.loading\n }, partial);\n this._callbacks.forEach((callback)=>callback());\n }\n _clearTimeouts() {\n clearTimeout(this._delay);\n clearTimeout(this._timeout);\n }\n getCurrentValue() {\n return this._state;\n }\n subscribe(callback) {\n this._callbacks.add(callback);\n return ()=>{\n this._callbacks.delete(callback);\n };\n }\n constructor(loadFn, opts){\n this._loadFn = loadFn;\n this._opts = opts;\n this._callbacks = new Set();\n this._delay = null;\n this._timeout = null;\n this.retry();\n }\n}\nfunction Loadable(opts) {\n return createLoadableComponent(load, opts);\n}\nfunction flushInitializers(initializers, ids) {\n let promises = [];\n while(initializers.length){\n let init = initializers.pop();\n promises.push(init(ids));\n }\n return Promise.all(promises).then(()=>{\n if (initializers.length) {\n return flushInitializers(initializers, ids);\n }\n });\n}\nLoadable.preloadAll = ()=>{\n return new Promise((resolveInitializers, reject)=>{\n flushInitializers(ALL_INITIALIZERS).then(resolveInitializers, reject);\n });\n};\nLoadable.preloadReady = (ids = [])=>{\n return new Promise((resolvePreload)=>{\n const res = ()=>{\n initialized = true;\n return resolvePreload();\n };\n // We always will resolve, errors should be handled within loading UIs.\n flushInitializers(READY_INITIALIZERS, ids).then(res, res);\n });\n};\nif (typeof window !== 'undefined') {\n window.__NEXT_PRELOADREADY = Loadable.preloadReady;\n}\nvar _default = Loadable;\nexports.default = _default;\n\n//# sourceMappingURL=loadable.js.map","module.exports = require('./dist/shared/lib/dynamic')\n","module.exports = require('./dist/client/link')\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _processor = _interopRequireDefault(require(\"./processor\"));\n\nvar selectors = _interopRequireWildcard(require(\"./selectors\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar parser = function parser(processor) {\n return new _processor[\"default\"](processor);\n};\n\nObject.assign(parser, selectors);\ndelete parser.__esModule;\nvar _default = parser;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _root = _interopRequireDefault(require(\"./selectors/root\"));\n\nvar _selector = _interopRequireDefault(require(\"./selectors/selector\"));\n\nvar _className = _interopRequireDefault(require(\"./selectors/className\"));\n\nvar _comment = _interopRequireDefault(require(\"./selectors/comment\"));\n\nvar _id = _interopRequireDefault(require(\"./selectors/id\"));\n\nvar _tag = _interopRequireDefault(require(\"./selectors/tag\"));\n\nvar _string = _interopRequireDefault(require(\"./selectors/string\"));\n\nvar _pseudo = _interopRequireDefault(require(\"./selectors/pseudo\"));\n\nvar _attribute = _interopRequireWildcard(require(\"./selectors/attribute\"));\n\nvar _universal = _interopRequireDefault(require(\"./selectors/universal\"));\n\nvar _combinator = _interopRequireDefault(require(\"./selectors/combinator\"));\n\nvar _nesting = _interopRequireDefault(require(\"./selectors/nesting\"));\n\nvar _sortAscending = _interopRequireDefault(require(\"./sortAscending\"));\n\nvar _tokenize = _interopRequireWildcard(require(\"./tokenize\"));\n\nvar tokens = _interopRequireWildcard(require(\"./tokenTypes\"));\n\nvar types = _interopRequireWildcard(require(\"./selectors/types\"));\n\nvar _util = require(\"./util\");\n\nvar _WHITESPACE_TOKENS, _Object$assign;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar WHITESPACE_TOKENS = (_WHITESPACE_TOKENS = {}, _WHITESPACE_TOKENS[tokens.space] = true, _WHITESPACE_TOKENS[tokens.cr] = true, _WHITESPACE_TOKENS[tokens.feed] = true, _WHITESPACE_TOKENS[tokens.newline] = true, _WHITESPACE_TOKENS[tokens.tab] = true, _WHITESPACE_TOKENS);\nvar WHITESPACE_EQUIV_TOKENS = Object.assign({}, WHITESPACE_TOKENS, (_Object$assign = {}, _Object$assign[tokens.comment] = true, _Object$assign));\n\nfunction tokenStart(token) {\n return {\n line: token[_tokenize.FIELDS.START_LINE],\n column: token[_tokenize.FIELDS.START_COL]\n };\n}\n\nfunction tokenEnd(token) {\n return {\n line: token[_tokenize.FIELDS.END_LINE],\n column: token[_tokenize.FIELDS.END_COL]\n };\n}\n\nfunction getSource(startLine, startColumn, endLine, endColumn) {\n return {\n start: {\n line: startLine,\n column: startColumn\n },\n end: {\n line: endLine,\n column: endColumn\n }\n };\n}\n\nfunction getTokenSource(token) {\n return getSource(token[_tokenize.FIELDS.START_LINE], token[_tokenize.FIELDS.START_COL], token[_tokenize.FIELDS.END_LINE], token[_tokenize.FIELDS.END_COL]);\n}\n\nfunction getTokenSourceSpan(startToken, endToken) {\n if (!startToken) {\n return undefined;\n }\n\n return getSource(startToken[_tokenize.FIELDS.START_LINE], startToken[_tokenize.FIELDS.START_COL], endToken[_tokenize.FIELDS.END_LINE], endToken[_tokenize.FIELDS.END_COL]);\n}\n\nfunction unescapeProp(node, prop) {\n var value = node[prop];\n\n if (typeof value !== \"string\") {\n return;\n }\n\n if (value.indexOf(\"\\\\\") !== -1) {\n (0, _util.ensureObject)(node, 'raws');\n node[prop] = (0, _util.unesc)(value);\n\n if (node.raws[prop] === undefined) {\n node.raws[prop] = value;\n }\n }\n\n return node;\n}\n\nfunction indexesOf(array, item) {\n var i = -1;\n var indexes = [];\n\n while ((i = array.indexOf(item, i + 1)) !== -1) {\n indexes.push(i);\n }\n\n return indexes;\n}\n\nfunction uniqs() {\n var list = Array.prototype.concat.apply([], arguments);\n return list.filter(function (item, i) {\n return i === list.indexOf(item);\n });\n}\n\nvar Parser = /*#__PURE__*/function () {\n function Parser(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.rule = rule;\n this.options = Object.assign({\n lossy: false,\n safe: false\n }, options);\n this.position = 0;\n this.css = typeof this.rule === 'string' ? this.rule : this.rule.selector;\n this.tokens = (0, _tokenize[\"default\"])({\n css: this.css,\n error: this._errorGenerator(),\n safe: this.options.safe\n });\n var rootSource = getTokenSourceSpan(this.tokens[0], this.tokens[this.tokens.length - 1]);\n this.root = new _root[\"default\"]({\n source: rootSource\n });\n this.root.errorGenerator = this._errorGenerator();\n var selector = new _selector[\"default\"]({\n source: {\n start: {\n line: 1,\n column: 1\n }\n }\n });\n this.root.append(selector);\n this.current = selector;\n this.loop();\n }\n\n var _proto = Parser.prototype;\n\n _proto._errorGenerator = function _errorGenerator() {\n var _this = this;\n\n return function (message, errorOptions) {\n if (typeof _this.rule === 'string') {\n return new Error(message);\n }\n\n return _this.rule.error(message, errorOptions);\n };\n };\n\n _proto.attribute = function attribute() {\n var attr = [];\n var startingToken = this.currToken;\n this.position++;\n\n while (this.position < this.tokens.length && this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n attr.push(this.currToken);\n this.position++;\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n return this.expected('closing square bracket', this.currToken[_tokenize.FIELDS.START_POS]);\n }\n\n var len = attr.length;\n var node = {\n source: getSource(startingToken[1], startingToken[2], this.currToken[3], this.currToken[4]),\n sourceIndex: startingToken[_tokenize.FIELDS.START_POS]\n };\n\n if (len === 1 && !~[tokens.word].indexOf(attr[0][_tokenize.FIELDS.TYPE])) {\n return this.expected('attribute', attr[0][_tokenize.FIELDS.START_POS]);\n }\n\n var pos = 0;\n var spaceBefore = '';\n var commentBefore = '';\n var lastAdded = null;\n var spaceAfterMeaningfulToken = false;\n\n while (pos < len) {\n var token = attr[pos];\n var content = this.content(token);\n var next = attr[pos + 1];\n\n switch (token[_tokenize.FIELDS.TYPE]) {\n case tokens.space:\n // if (\n // len === 1 ||\n // pos === 0 && this.content(next) === '|'\n // ) {\n // return this.expected('attribute', token[TOKEN.START_POS], content);\n // }\n spaceAfterMeaningfulToken = true;\n\n if (this.options.lossy) {\n break;\n }\n\n if (lastAdded) {\n (0, _util.ensureObject)(node, 'spaces', lastAdded);\n var prevContent = node.spaces[lastAdded].after || '';\n node.spaces[lastAdded].after = prevContent + content;\n var existingComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || null;\n\n if (existingComment) {\n node.raws.spaces[lastAdded].after = existingComment + content;\n }\n } else {\n spaceBefore = spaceBefore + content;\n commentBefore = commentBefore + content;\n }\n\n break;\n\n case tokens.asterisk:\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n } else if ((!node.namespace || lastAdded === \"namespace\" && !spaceAfterMeaningfulToken) && next) {\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'attribute');\n node.spaces.attribute.before = spaceBefore;\n spaceBefore = '';\n }\n\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute');\n node.raws.spaces.attribute.before = spaceBefore;\n commentBefore = '';\n }\n\n node.namespace = (node.namespace || \"\") + content;\n var rawValue = (0, _util.getProp)(node, 'raws', 'namespace') || null;\n\n if (rawValue) {\n node.raws.namespace += content;\n }\n\n lastAdded = 'namespace';\n }\n\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.dollar:\n if (lastAdded === \"value\") {\n var oldRawValue = (0, _util.getProp)(node, 'raws', 'value');\n node.value += \"$\";\n\n if (oldRawValue) {\n node.raws.value = oldRawValue + \"$\";\n }\n\n break;\n }\n\n // Falls through\n\n case tokens.caret:\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n }\n\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.combinator:\n if (content === '~' && next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n }\n\n if (content !== '|') {\n spaceAfterMeaningfulToken = false;\n break;\n }\n\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n } else if (!node.namespace && !node.attribute) {\n node.namespace = true;\n }\n\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.word:\n if (next && this.content(next) === '|' && attr[pos + 2] && attr[pos + 2][_tokenize.FIELDS.TYPE] !== tokens.equals && // this look-ahead probably fails with comment nodes involved.\n !node.operator && !node.namespace) {\n node.namespace = content;\n lastAdded = 'namespace';\n } else if (!node.attribute || lastAdded === \"attribute\" && !spaceAfterMeaningfulToken) {\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'attribute');\n node.spaces.attribute.before = spaceBefore;\n spaceBefore = '';\n }\n\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute');\n node.raws.spaces.attribute.before = commentBefore;\n commentBefore = '';\n }\n\n node.attribute = (node.attribute || \"\") + content;\n\n var _rawValue = (0, _util.getProp)(node, 'raws', 'attribute') || null;\n\n if (_rawValue) {\n node.raws.attribute += content;\n }\n\n lastAdded = 'attribute';\n } else if (!node.value && node.value !== \"\" || lastAdded === \"value\" && !spaceAfterMeaningfulToken) {\n var _unescaped = (0, _util.unesc)(content);\n\n var _oldRawValue = (0, _util.getProp)(node, 'raws', 'value') || '';\n\n var oldValue = node.value || '';\n node.value = oldValue + _unescaped;\n node.quoteMark = null;\n\n if (_unescaped !== content || _oldRawValue) {\n (0, _util.ensureObject)(node, 'raws');\n node.raws.value = (_oldRawValue || oldValue) + content;\n }\n\n lastAdded = 'value';\n } else {\n var insensitive = content === 'i' || content === \"I\";\n\n if ((node.value || node.value === '') && (node.quoteMark || spaceAfterMeaningfulToken)) {\n node.insensitive = insensitive;\n\n if (!insensitive || content === \"I\") {\n (0, _util.ensureObject)(node, 'raws');\n node.raws.insensitiveFlag = content;\n }\n\n lastAdded = 'insensitive';\n\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'insensitive');\n node.spaces.insensitive.before = spaceBefore;\n spaceBefore = '';\n }\n\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'insensitive');\n node.raws.spaces.insensitive.before = commentBefore;\n commentBefore = '';\n }\n } else if (node.value || node.value === '') {\n lastAdded = 'value';\n node.value += content;\n\n if (node.raws.value) {\n node.raws.value += content;\n }\n }\n }\n\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.str:\n if (!node.attribute || !node.operator) {\n return this.error(\"Expected an attribute followed by an operator preceding the string.\", {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n\n var _unescapeValue = (0, _attribute.unescapeValue)(content),\n unescaped = _unescapeValue.unescaped,\n quoteMark = _unescapeValue.quoteMark;\n\n node.value = unescaped;\n node.quoteMark = quoteMark;\n lastAdded = 'value';\n (0, _util.ensureObject)(node, 'raws');\n node.raws.value = content;\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.equals:\n if (!node.attribute) {\n return this.expected('attribute', token[_tokenize.FIELDS.START_POS], content);\n }\n\n if (node.value) {\n return this.error('Unexpected \"=\" found; an operator was already defined.', {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n\n node.operator = node.operator ? node.operator + content : content;\n lastAdded = 'operator';\n spaceAfterMeaningfulToken = false;\n break;\n\n case tokens.comment:\n if (lastAdded) {\n if (spaceAfterMeaningfulToken || next && next[_tokenize.FIELDS.TYPE] === tokens.space || lastAdded === 'insensitive') {\n var lastComment = (0, _util.getProp)(node, 'spaces', lastAdded, 'after') || '';\n var rawLastComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || lastComment;\n (0, _util.ensureObject)(node, 'raws', 'spaces', lastAdded);\n node.raws.spaces[lastAdded].after = rawLastComment + content;\n } else {\n var lastValue = node[lastAdded] || '';\n var rawLastValue = (0, _util.getProp)(node, 'raws', lastAdded) || lastValue;\n (0, _util.ensureObject)(node, 'raws');\n node.raws[lastAdded] = rawLastValue + content;\n }\n } else {\n commentBefore = commentBefore + content;\n }\n\n break;\n\n default:\n return this.error(\"Unexpected \\\"\" + content + \"\\\" found.\", {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n\n pos++;\n }\n\n unescapeProp(node, \"attribute\");\n unescapeProp(node, \"namespace\");\n this.newNode(new _attribute[\"default\"](node));\n this.position++;\n }\n /**\n * return a node containing meaningless garbage up to (but not including) the specified token position.\n * if the token position is negative, all remaining tokens are consumed.\n *\n * This returns an array containing a single string node if all whitespace,\n * otherwise an array of comment nodes with space before and after.\n *\n * These tokens are not added to the current selector, the caller can add them or use them to amend\n * a previous node's space metadata.\n *\n * In lossy mode, this returns only comments.\n */\n ;\n\n _proto.parseWhitespaceEquivalentTokens = function parseWhitespaceEquivalentTokens(stopPosition) {\n if (stopPosition < 0) {\n stopPosition = this.tokens.length;\n }\n\n var startPosition = this.position;\n var nodes = [];\n var space = \"\";\n var lastComment = undefined;\n\n do {\n if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) {\n if (!this.options.lossy) {\n space += this.content();\n }\n } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.comment) {\n var spaces = {};\n\n if (space) {\n spaces.before = space;\n space = \"\";\n }\n\n lastComment = new _comment[\"default\"]({\n value: this.content(),\n source: getTokenSource(this.currToken),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS],\n spaces: spaces\n });\n nodes.push(lastComment);\n }\n } while (++this.position < stopPosition);\n\n if (space) {\n if (lastComment) {\n lastComment.spaces.after = space;\n } else if (!this.options.lossy) {\n var firstToken = this.tokens[startPosition];\n var lastToken = this.tokens[this.position - 1];\n nodes.push(new _string[\"default\"]({\n value: '',\n source: getSource(firstToken[_tokenize.FIELDS.START_LINE], firstToken[_tokenize.FIELDS.START_COL], lastToken[_tokenize.FIELDS.END_LINE], lastToken[_tokenize.FIELDS.END_COL]),\n sourceIndex: firstToken[_tokenize.FIELDS.START_POS],\n spaces: {\n before: space,\n after: ''\n }\n }));\n }\n }\n\n return nodes;\n }\n /**\n * \n * @param {*} nodes \n */\n ;\n\n _proto.convertWhitespaceNodesToSpace = function convertWhitespaceNodesToSpace(nodes, requiredSpace) {\n var _this2 = this;\n\n if (requiredSpace === void 0) {\n requiredSpace = false;\n }\n\n var space = \"\";\n var rawSpace = \"\";\n nodes.forEach(function (n) {\n var spaceBefore = _this2.lossySpace(n.spaces.before, requiredSpace);\n\n var rawSpaceBefore = _this2.lossySpace(n.rawSpaceBefore, requiredSpace);\n\n space += spaceBefore + _this2.lossySpace(n.spaces.after, requiredSpace && spaceBefore.length === 0);\n rawSpace += spaceBefore + n.value + _this2.lossySpace(n.rawSpaceAfter, requiredSpace && rawSpaceBefore.length === 0);\n });\n\n if (rawSpace === space) {\n rawSpace = undefined;\n }\n\n var result = {\n space: space,\n rawSpace: rawSpace\n };\n return result;\n };\n\n _proto.isNamedCombinator = function isNamedCombinator(position) {\n if (position === void 0) {\n position = this.position;\n }\n\n return this.tokens[position + 0] && this.tokens[position + 0][_tokenize.FIELDS.TYPE] === tokens.slash && this.tokens[position + 1] && this.tokens[position + 1][_tokenize.FIELDS.TYPE] === tokens.word && this.tokens[position + 2] && this.tokens[position + 2][_tokenize.FIELDS.TYPE] === tokens.slash;\n };\n\n _proto.namedCombinator = function namedCombinator() {\n if (this.isNamedCombinator()) {\n var nameRaw = this.content(this.tokens[this.position + 1]);\n var name = (0, _util.unesc)(nameRaw).toLowerCase();\n var raws = {};\n\n if (name !== nameRaw) {\n raws.value = \"/\" + nameRaw + \"/\";\n }\n\n var node = new _combinator[\"default\"]({\n value: \"/\" + name + \"/\",\n source: getSource(this.currToken[_tokenize.FIELDS.START_LINE], this.currToken[_tokenize.FIELDS.START_COL], this.tokens[this.position + 2][_tokenize.FIELDS.END_LINE], this.tokens[this.position + 2][_tokenize.FIELDS.END_COL]),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS],\n raws: raws\n });\n this.position = this.position + 3;\n return node;\n } else {\n this.unexpected();\n }\n };\n\n _proto.combinator = function combinator() {\n var _this3 = this;\n\n if (this.content() === '|') {\n return this.namespace();\n } // We need to decide between a space that's a descendant combinator and meaningless whitespace at the end of a selector.\n\n\n var nextSigTokenPos = this.locateNextMeaningfulToken(this.position);\n\n if (nextSigTokenPos < 0 || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.comma) {\n var nodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos);\n\n if (nodes.length > 0) {\n var last = this.current.last;\n\n if (last) {\n var _this$convertWhitespa = this.convertWhitespaceNodesToSpace(nodes),\n space = _this$convertWhitespa.space,\n rawSpace = _this$convertWhitespa.rawSpace;\n\n if (rawSpace !== undefined) {\n last.rawSpaceAfter += rawSpace;\n }\n\n last.spaces.after += space;\n } else {\n nodes.forEach(function (n) {\n return _this3.newNode(n);\n });\n }\n }\n\n return;\n }\n\n var firstToken = this.currToken;\n var spaceOrDescendantSelectorNodes = undefined;\n\n if (nextSigTokenPos > this.position) {\n spaceOrDescendantSelectorNodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos);\n }\n\n var node;\n\n if (this.isNamedCombinator()) {\n node = this.namedCombinator();\n } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.combinator) {\n node = new _combinator[\"default\"]({\n value: this.content(),\n source: getTokenSource(this.currToken),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS]\n });\n this.position++;\n } else if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) {// pass\n } else if (!spaceOrDescendantSelectorNodes) {\n this.unexpected();\n }\n\n if (node) {\n if (spaceOrDescendantSelectorNodes) {\n var _this$convertWhitespa2 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes),\n _space = _this$convertWhitespa2.space,\n _rawSpace = _this$convertWhitespa2.rawSpace;\n\n node.spaces.before = _space;\n node.rawSpaceBefore = _rawSpace;\n }\n } else {\n // descendant combinator\n var _this$convertWhitespa3 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes, true),\n _space2 = _this$convertWhitespa3.space,\n _rawSpace2 = _this$convertWhitespa3.rawSpace;\n\n if (!_rawSpace2) {\n _rawSpace2 = _space2;\n }\n\n var spaces = {};\n var raws = {\n spaces: {}\n };\n\n if (_space2.endsWith(' ') && _rawSpace2.endsWith(' ')) {\n spaces.before = _space2.slice(0, _space2.length - 1);\n raws.spaces.before = _rawSpace2.slice(0, _rawSpace2.length - 1);\n } else if (_space2.startsWith(' ') && _rawSpace2.startsWith(' ')) {\n spaces.after = _space2.slice(1);\n raws.spaces.after = _rawSpace2.slice(1);\n } else {\n raws.value = _rawSpace2;\n }\n\n node = new _combinator[\"default\"]({\n value: ' ',\n source: getTokenSourceSpan(firstToken, this.tokens[this.position - 1]),\n sourceIndex: firstToken[_tokenize.FIELDS.START_POS],\n spaces: spaces,\n raws: raws\n });\n }\n\n if (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.space) {\n node.spaces.after = this.optionalSpace(this.content());\n this.position++;\n }\n\n return this.newNode(node);\n };\n\n _proto.comma = function comma() {\n if (this.position === this.tokens.length - 1) {\n this.root.trailingComma = true;\n this.position++;\n return;\n }\n\n this.current._inferEndPosition();\n\n var selector = new _selector[\"default\"]({\n source: {\n start: tokenStart(this.tokens[this.position + 1])\n }\n });\n this.current.parent.append(selector);\n this.current = selector;\n this.position++;\n };\n\n _proto.comment = function comment() {\n var current = this.currToken;\n this.newNode(new _comment[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n\n _proto.error = function error(message, opts) {\n throw this.root.error(message, opts);\n };\n\n _proto.missingBackslash = function missingBackslash() {\n return this.error('Expected a backslash preceding the semicolon.', {\n index: this.currToken[_tokenize.FIELDS.START_POS]\n });\n };\n\n _proto.missingParenthesis = function missingParenthesis() {\n return this.expected('opening parenthesis', this.currToken[_tokenize.FIELDS.START_POS]);\n };\n\n _proto.missingSquareBracket = function missingSquareBracket() {\n return this.expected('opening square bracket', this.currToken[_tokenize.FIELDS.START_POS]);\n };\n\n _proto.unexpected = function unexpected() {\n return this.error(\"Unexpected '\" + this.content() + \"'. Escaping special characters with \\\\ may help.\", this.currToken[_tokenize.FIELDS.START_POS]);\n };\n\n _proto.namespace = function namespace() {\n var before = this.prevToken && this.content(this.prevToken) || true;\n\n if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.word) {\n this.position++;\n return this.word(before);\n } else if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.asterisk) {\n this.position++;\n return this.universal(before);\n }\n };\n\n _proto.nesting = function nesting() {\n if (this.nextToken) {\n var nextContent = this.content(this.nextToken);\n\n if (nextContent === \"|\") {\n this.position++;\n return;\n }\n }\n\n var current = this.currToken;\n this.newNode(new _nesting[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n\n _proto.parentheses = function parentheses() {\n var last = this.current.last;\n var unbalanced = 1;\n this.position++;\n\n if (last && last.type === types.PSEUDO) {\n var selector = new _selector[\"default\"]({\n source: {\n start: tokenStart(this.tokens[this.position - 1])\n }\n });\n var cache = this.current;\n last.append(selector);\n this.current = selector;\n\n while (this.position < this.tokens.length && unbalanced) {\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n unbalanced++;\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n unbalanced--;\n }\n\n if (unbalanced) {\n this.parse();\n } else {\n this.current.source.end = tokenEnd(this.currToken);\n this.current.parent.source.end = tokenEnd(this.currToken);\n this.position++;\n }\n }\n\n this.current = cache;\n } else {\n // I think this case should be an error. It's used to implement a basic parse of media queries\n // but I don't think it's a good idea.\n var parenStart = this.currToken;\n var parenValue = \"(\";\n var parenEnd;\n\n while (this.position < this.tokens.length && unbalanced) {\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n unbalanced++;\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n unbalanced--;\n }\n\n parenEnd = this.currToken;\n parenValue += this.parseParenthesisToken(this.currToken);\n this.position++;\n }\n\n if (last) {\n last.appendToPropertyAndEscape(\"value\", parenValue, parenValue);\n } else {\n this.newNode(new _string[\"default\"]({\n value: parenValue,\n source: getSource(parenStart[_tokenize.FIELDS.START_LINE], parenStart[_tokenize.FIELDS.START_COL], parenEnd[_tokenize.FIELDS.END_LINE], parenEnd[_tokenize.FIELDS.END_COL]),\n sourceIndex: parenStart[_tokenize.FIELDS.START_POS]\n }));\n }\n }\n\n if (unbalanced) {\n return this.expected('closing parenthesis', this.currToken[_tokenize.FIELDS.START_POS]);\n }\n };\n\n _proto.pseudo = function pseudo() {\n var _this4 = this;\n\n var pseudoStr = '';\n var startingToken = this.currToken;\n\n while (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.colon) {\n pseudoStr += this.content();\n this.position++;\n }\n\n if (!this.currToken) {\n return this.expected(['pseudo-class', 'pseudo-element'], this.position - 1);\n }\n\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.word) {\n this.splitWord(false, function (first, length) {\n pseudoStr += first;\n\n _this4.newNode(new _pseudo[\"default\"]({\n value: pseudoStr,\n source: getTokenSourceSpan(startingToken, _this4.currToken),\n sourceIndex: startingToken[_tokenize.FIELDS.START_POS]\n }));\n\n if (length > 1 && _this4.nextToken && _this4.nextToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n _this4.error('Misplaced parenthesis.', {\n index: _this4.nextToken[_tokenize.FIELDS.START_POS]\n });\n }\n });\n } else {\n return this.expected(['pseudo-class', 'pseudo-element'], this.currToken[_tokenize.FIELDS.START_POS]);\n }\n };\n\n _proto.space = function space() {\n var content = this.content(); // Handle space before and after the selector\n\n if (this.position === 0 || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis || this.current.nodes.every(function (node) {\n return node.type === 'comment';\n })) {\n this.spaces = this.optionalSpace(content);\n this.position++;\n } else if (this.position === this.tokens.length - 1 || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n this.current.last.spaces.after = this.optionalSpace(content);\n this.position++;\n } else {\n this.combinator();\n }\n };\n\n _proto.string = function string() {\n var current = this.currToken;\n this.newNode(new _string[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n\n _proto.universal = function universal(namespace) {\n var nextToken = this.nextToken;\n\n if (nextToken && this.content(nextToken) === '|') {\n this.position++;\n return this.namespace();\n }\n\n var current = this.currToken;\n this.newNode(new _universal[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }), namespace);\n this.position++;\n };\n\n _proto.splitWord = function splitWord(namespace, firstCallback) {\n var _this5 = this;\n\n var nextToken = this.nextToken;\n var word = this.content();\n\n while (nextToken && ~[tokens.dollar, tokens.caret, tokens.equals, tokens.word].indexOf(nextToken[_tokenize.FIELDS.TYPE])) {\n this.position++;\n var current = this.content();\n word += current;\n\n if (current.lastIndexOf('\\\\') === current.length - 1) {\n var next = this.nextToken;\n\n if (next && next[_tokenize.FIELDS.TYPE] === tokens.space) {\n word += this.requiredSpace(this.content(next));\n this.position++;\n }\n }\n\n nextToken = this.nextToken;\n }\n\n var hasClass = indexesOf(word, '.').filter(function (i) {\n // Allow escaped dot within class name\n var escapedDot = word[i - 1] === '\\\\'; // Allow decimal numbers percent in @keyframes\n\n var isKeyframesPercent = /^\\d+\\.\\d+%$/.test(word);\n return !escapedDot && !isKeyframesPercent;\n });\n var hasId = indexesOf(word, '#').filter(function (i) {\n return word[i - 1] !== '\\\\';\n }); // Eliminate Sass interpolations from the list of id indexes\n\n var interpolations = indexesOf(word, '#{');\n\n if (interpolations.length) {\n hasId = hasId.filter(function (hashIndex) {\n return !~interpolations.indexOf(hashIndex);\n });\n }\n\n var indices = (0, _sortAscending[\"default\"])(uniqs([0].concat(hasClass, hasId)));\n indices.forEach(function (ind, i) {\n var index = indices[i + 1] || word.length;\n var value = word.slice(ind, index);\n\n if (i === 0 && firstCallback) {\n return firstCallback.call(_this5, value, indices.length);\n }\n\n var node;\n var current = _this5.currToken;\n var sourceIndex = current[_tokenize.FIELDS.START_POS] + indices[i];\n var source = getSource(current[1], current[2] + ind, current[3], current[2] + (index - 1));\n\n if (~hasClass.indexOf(ind)) {\n var classNameOpts = {\n value: value.slice(1),\n source: source,\n sourceIndex: sourceIndex\n };\n node = new _className[\"default\"](unescapeProp(classNameOpts, \"value\"));\n } else if (~hasId.indexOf(ind)) {\n var idOpts = {\n value: value.slice(1),\n source: source,\n sourceIndex: sourceIndex\n };\n node = new _id[\"default\"](unescapeProp(idOpts, \"value\"));\n } else {\n var tagOpts = {\n value: value,\n source: source,\n sourceIndex: sourceIndex\n };\n unescapeProp(tagOpts, \"value\");\n node = new _tag[\"default\"](tagOpts);\n }\n\n _this5.newNode(node, namespace); // Ensure that the namespace is used only once\n\n\n namespace = null;\n });\n this.position++;\n };\n\n _proto.word = function word(namespace) {\n var nextToken = this.nextToken;\n\n if (nextToken && this.content(nextToken) === '|') {\n this.position++;\n return this.namespace();\n }\n\n return this.splitWord(namespace);\n };\n\n _proto.loop = function loop() {\n while (this.position < this.tokens.length) {\n this.parse(true);\n }\n\n this.current._inferEndPosition();\n\n return this.root;\n };\n\n _proto.parse = function parse(throwOnParenthesis) {\n switch (this.currToken[_tokenize.FIELDS.TYPE]) {\n case tokens.space:\n this.space();\n break;\n\n case tokens.comment:\n this.comment();\n break;\n\n case tokens.openParenthesis:\n this.parentheses();\n break;\n\n case tokens.closeParenthesis:\n if (throwOnParenthesis) {\n this.missingParenthesis();\n }\n\n break;\n\n case tokens.openSquare:\n this.attribute();\n break;\n\n case tokens.dollar:\n case tokens.caret:\n case tokens.equals:\n case tokens.word:\n this.word();\n break;\n\n case tokens.colon:\n this.pseudo();\n break;\n\n case tokens.comma:\n this.comma();\n break;\n\n case tokens.asterisk:\n this.universal();\n break;\n\n case tokens.ampersand:\n this.nesting();\n break;\n\n case tokens.slash:\n case tokens.combinator:\n this.combinator();\n break;\n\n case tokens.str:\n this.string();\n break;\n // These cases throw; no break needed.\n\n case tokens.closeSquare:\n this.missingSquareBracket();\n\n case tokens.semicolon:\n this.missingBackslash();\n\n default:\n this.unexpected();\n }\n }\n /**\n * Helpers\n */\n ;\n\n _proto.expected = function expected(description, index, found) {\n if (Array.isArray(description)) {\n var last = description.pop();\n description = description.join(', ') + \" or \" + last;\n }\n\n var an = /^[aeiou]/.test(description[0]) ? 'an' : 'a';\n\n if (!found) {\n return this.error(\"Expected \" + an + \" \" + description + \".\", {\n index: index\n });\n }\n\n return this.error(\"Expected \" + an + \" \" + description + \", found \\\"\" + found + \"\\\" instead.\", {\n index: index\n });\n };\n\n _proto.requiredSpace = function requiredSpace(space) {\n return this.options.lossy ? ' ' : space;\n };\n\n _proto.optionalSpace = function optionalSpace(space) {\n return this.options.lossy ? '' : space;\n };\n\n _proto.lossySpace = function lossySpace(space, required) {\n if (this.options.lossy) {\n return required ? ' ' : '';\n } else {\n return space;\n }\n };\n\n _proto.parseParenthesisToken = function parseParenthesisToken(token) {\n var content = this.content(token);\n\n if (token[_tokenize.FIELDS.TYPE] === tokens.space) {\n return this.requiredSpace(content);\n } else {\n return content;\n }\n };\n\n _proto.newNode = function newNode(node, namespace) {\n if (namespace) {\n if (/^ +$/.test(namespace)) {\n if (!this.options.lossy) {\n this.spaces = (this.spaces || '') + namespace;\n }\n\n namespace = true;\n }\n\n node.namespace = namespace;\n unescapeProp(node, \"namespace\");\n }\n\n if (this.spaces) {\n node.spaces.before = this.spaces;\n this.spaces = '';\n }\n\n return this.current.append(node);\n };\n\n _proto.content = function content(token) {\n if (token === void 0) {\n token = this.currToken;\n }\n\n return this.css.slice(token[_tokenize.FIELDS.START_POS], token[_tokenize.FIELDS.END_POS]);\n };\n\n /**\n * returns the index of the next non-whitespace, non-comment token.\n * returns -1 if no meaningful token is found.\n */\n _proto.locateNextMeaningfulToken = function locateNextMeaningfulToken(startPosition) {\n if (startPosition === void 0) {\n startPosition = this.position + 1;\n }\n\n var searchPosition = startPosition;\n\n while (searchPosition < this.tokens.length) {\n if (WHITESPACE_EQUIV_TOKENS[this.tokens[searchPosition][_tokenize.FIELDS.TYPE]]) {\n searchPosition++;\n continue;\n } else {\n return searchPosition;\n }\n }\n\n return -1;\n };\n\n _createClass(Parser, [{\n key: \"currToken\",\n get: function get() {\n return this.tokens[this.position];\n }\n }, {\n key: \"nextToken\",\n get: function get() {\n return this.tokens[this.position + 1];\n }\n }, {\n key: \"prevToken\",\n get: function get() {\n return this.tokens[this.position - 1];\n }\n }]);\n\n return Parser;\n}();\n\nexports[\"default\"] = Parser;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _parser = _interopRequireDefault(require(\"./parser\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar Processor = /*#__PURE__*/function () {\n function Processor(func, options) {\n this.func = func || function noop() {};\n\n this.funcRes = null;\n this.options = options;\n }\n\n var _proto = Processor.prototype;\n\n _proto._shouldUpdateSelector = function _shouldUpdateSelector(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n var merged = Object.assign({}, this.options, options);\n\n if (merged.updateSelector === false) {\n return false;\n } else {\n return typeof rule !== \"string\";\n }\n };\n\n _proto._isLossy = function _isLossy(options) {\n if (options === void 0) {\n options = {};\n }\n\n var merged = Object.assign({}, this.options, options);\n\n if (merged.lossless === false) {\n return true;\n } else {\n return false;\n }\n };\n\n _proto._root = function _root(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n var parser = new _parser[\"default\"](rule, this._parseOptions(options));\n return parser.root;\n };\n\n _proto._parseOptions = function _parseOptions(options) {\n return {\n lossy: this._isLossy(options)\n };\n };\n\n _proto._run = function _run(rule, options) {\n var _this = this;\n\n if (options === void 0) {\n options = {};\n }\n\n return new Promise(function (resolve, reject) {\n try {\n var root = _this._root(rule, options);\n\n Promise.resolve(_this.func(root)).then(function (transform) {\n var string = undefined;\n\n if (_this._shouldUpdateSelector(rule, options)) {\n string = root.toString();\n rule.selector = string;\n }\n\n return {\n transform: transform,\n root: root,\n string: string\n };\n }).then(resolve, reject);\n } catch (e) {\n reject(e);\n return;\n }\n });\n };\n\n _proto._runSync = function _runSync(rule, options) {\n if (options === void 0) {\n options = {};\n }\n\n var root = this._root(rule, options);\n\n var transform = this.func(root);\n\n if (transform && typeof transform.then === \"function\") {\n throw new Error(\"Selector processor returned a promise to a synchronous call.\");\n }\n\n var string = undefined;\n\n if (options.updateSelector && typeof rule !== \"string\") {\n string = root.toString();\n rule.selector = string;\n }\n\n return {\n transform: transform,\n root: root,\n string: string\n };\n }\n /**\n * Process rule into a selector AST.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {Promise} The AST of the selector after processing it.\n */\n ;\n\n _proto.ast = function ast(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.root;\n });\n }\n /**\n * Process rule into a selector AST synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {parser.Root} The AST of the selector after processing it.\n */\n ;\n\n _proto.astSync = function astSync(rule, options) {\n return this._runSync(rule, options).root;\n }\n /**\n * Process a selector into a transformed value asynchronously\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {Promise} The value returned by the processor.\n */\n ;\n\n _proto.transform = function transform(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.transform;\n });\n }\n /**\n * Process a selector into a transformed value synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {any} The value returned by the processor.\n */\n ;\n\n _proto.transformSync = function transformSync(rule, options) {\n return this._runSync(rule, options).transform;\n }\n /**\n * Process a selector into a new selector string asynchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {string} the selector after processing.\n */\n ;\n\n _proto.process = function process(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.string || result.root.toString();\n });\n }\n /**\n * Process a selector into a new selector string synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {string} the selector after processing.\n */\n ;\n\n _proto.processSync = function processSync(rule, options) {\n var result = this._runSync(rule, options);\n\n return result.string || result.root.toString();\n };\n\n return Processor;\n}();\n\nexports[\"default\"] = Processor;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.unescapeValue = unescapeValue;\nexports[\"default\"] = void 0;\n\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\n\nvar _unesc = _interopRequireDefault(require(\"../util/unesc\"));\n\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\n\nvar _types = require(\"./types\");\n\nvar _CSSESC_QUOTE_OPTIONS;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar deprecate = require(\"util-deprecate\");\n\nvar WRAPPED_IN_QUOTES = /^('|\")([^]*)\\1$/;\nvar warnOfDeprecatedValueAssignment = deprecate(function () {}, \"Assigning an attribute a value containing characters that might need to be escaped is deprecated. \" + \"Call attribute.setValue() instead.\");\nvar warnOfDeprecatedQuotedAssignment = deprecate(function () {}, \"Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead.\");\nvar warnOfDeprecatedConstructor = deprecate(function () {}, \"Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now.\");\n\nfunction unescapeValue(value) {\n var deprecatedUsage = false;\n var quoteMark = null;\n var unescaped = value;\n var m = unescaped.match(WRAPPED_IN_QUOTES);\n\n if (m) {\n quoteMark = m[1];\n unescaped = m[2];\n }\n\n unescaped = (0, _unesc[\"default\"])(unescaped);\n\n if (unescaped !== value) {\n deprecatedUsage = true;\n }\n\n return {\n deprecatedUsage: deprecatedUsage,\n unescaped: unescaped,\n quoteMark: quoteMark\n };\n}\n\nfunction handleDeprecatedContructorOpts(opts) {\n if (opts.quoteMark !== undefined) {\n return opts;\n }\n\n if (opts.value === undefined) {\n return opts;\n }\n\n warnOfDeprecatedConstructor();\n\n var _unescapeValue = unescapeValue(opts.value),\n quoteMark = _unescapeValue.quoteMark,\n unescaped = _unescapeValue.unescaped;\n\n if (!opts.raws) {\n opts.raws = {};\n }\n\n if (opts.raws.value === undefined) {\n opts.raws.value = opts.value;\n }\n\n opts.value = unescaped;\n opts.quoteMark = quoteMark;\n return opts;\n}\n\nvar Attribute = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Attribute, _Namespace);\n\n function Attribute(opts) {\n var _this;\n\n if (opts === void 0) {\n opts = {};\n }\n\n _this = _Namespace.call(this, handleDeprecatedContructorOpts(opts)) || this;\n _this.type = _types.ATTRIBUTE;\n _this.raws = _this.raws || {};\n Object.defineProperty(_this.raws, 'unquoted', {\n get: deprecate(function () {\n return _this.value;\n }, \"attr.raws.unquoted is deprecated. Call attr.value instead.\"),\n set: deprecate(function () {\n return _this.value;\n }, \"Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.\")\n });\n _this._constructed = true;\n return _this;\n }\n /**\n * Returns the Attribute's value quoted such that it would be legal to use\n * in the value of a css file. The original value's quotation setting\n * used for stringification is left unchanged. See `setValue(value, options)`\n * if you want to control the quote settings of a new value for the attribute.\n *\n * You can also change the quotation used for the current value by setting quoteMark.\n *\n * Options:\n * * quoteMark {'\"' | \"'\" | null} - Use this value to quote the value. If this\n * option is not set, the original value for quoteMark will be used. If\n * indeterminate, a double quote is used. The legal values are:\n * * `null` - the value will be unquoted and characters will be escaped as necessary.\n * * `'` - the value will be quoted with a single quote and single quotes are escaped.\n * * `\"` - the value will be quoted with a double quote and double quotes are escaped.\n * * preferCurrentQuoteMark {boolean} - if true, prefer the source quote mark\n * over the quoteMark option value.\n * * smart {boolean} - if true, will select a quote mark based on the value\n * and the other options specified here. See the `smartQuoteMark()`\n * method.\n **/\n\n\n var _proto = Attribute.prototype;\n\n _proto.getQuotedValue = function getQuotedValue(options) {\n if (options === void 0) {\n options = {};\n }\n\n var quoteMark = this._determineQuoteMark(options);\n\n var cssescopts = CSSESC_QUOTE_OPTIONS[quoteMark];\n var escaped = (0, _cssesc[\"default\"])(this._value, cssescopts);\n return escaped;\n };\n\n _proto._determineQuoteMark = function _determineQuoteMark(options) {\n return options.smart ? this.smartQuoteMark(options) : this.preferredQuoteMark(options);\n }\n /**\n * Set the unescaped value with the specified quotation options. The value\n * provided must not include any wrapping quote marks -- those quotes will\n * be interpreted as part of the value and escaped accordingly.\n */\n ;\n\n _proto.setValue = function setValue(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n this._value = value;\n this._quoteMark = this._determineQuoteMark(options);\n\n this._syncRawValue();\n }\n /**\n * Intelligently select a quoteMark value based on the value's contents. If\n * the value is a legal CSS ident, it will not be quoted. Otherwise a quote\n * mark will be picked that minimizes the number of escapes.\n *\n * If there's no clear winner, the quote mark from these options is used,\n * then the source quote mark (this is inverted if `preferCurrentQuoteMark` is\n * true). If the quoteMark is unspecified, a double quote is used.\n *\n * @param options This takes the quoteMark and preferCurrentQuoteMark options\n * from the quoteValue method.\n */\n ;\n\n _proto.smartQuoteMark = function smartQuoteMark(options) {\n var v = this.value;\n var numSingleQuotes = v.replace(/[^']/g, '').length;\n var numDoubleQuotes = v.replace(/[^\"]/g, '').length;\n\n if (numSingleQuotes + numDoubleQuotes === 0) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n\n if (escaped === v) {\n return Attribute.NO_QUOTE;\n } else {\n var pref = this.preferredQuoteMark(options);\n\n if (pref === Attribute.NO_QUOTE) {\n // pick a quote mark that isn't none and see if it's smaller\n var quote = this.quoteMark || options.quoteMark || Attribute.DOUBLE_QUOTE;\n var opts = CSSESC_QUOTE_OPTIONS[quote];\n var quoteValue = (0, _cssesc[\"default\"])(v, opts);\n\n if (quoteValue.length < escaped.length) {\n return quote;\n }\n }\n\n return pref;\n }\n } else if (numDoubleQuotes === numSingleQuotes) {\n return this.preferredQuoteMark(options);\n } else if (numDoubleQuotes < numSingleQuotes) {\n return Attribute.DOUBLE_QUOTE;\n } else {\n return Attribute.SINGLE_QUOTE;\n }\n }\n /**\n * Selects the preferred quote mark based on the options and the current quote mark value.\n * If you want the quote mark to depend on the attribute value, call `smartQuoteMark(opts)`\n * instead.\n */\n ;\n\n _proto.preferredQuoteMark = function preferredQuoteMark(options) {\n var quoteMark = options.preferCurrentQuoteMark ? this.quoteMark : options.quoteMark;\n\n if (quoteMark === undefined) {\n quoteMark = options.preferCurrentQuoteMark ? options.quoteMark : this.quoteMark;\n }\n\n if (quoteMark === undefined) {\n quoteMark = Attribute.DOUBLE_QUOTE;\n }\n\n return quoteMark;\n };\n\n _proto._syncRawValue = function _syncRawValue() {\n var rawValue = (0, _cssesc[\"default\"])(this._value, CSSESC_QUOTE_OPTIONS[this.quoteMark]);\n\n if (rawValue === this._value) {\n if (this.raws) {\n delete this.raws.value;\n }\n } else {\n this.raws.value = rawValue;\n }\n };\n\n _proto._handleEscapes = function _handleEscapes(prop, value) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(value, {\n isIdentifier: true\n });\n\n if (escaped !== value) {\n this.raws[prop] = escaped;\n } else {\n delete this.raws[prop];\n }\n }\n };\n\n _proto._spacesFor = function _spacesFor(name) {\n var attrSpaces = {\n before: '',\n after: ''\n };\n var spaces = this.spaces[name] || {};\n var rawSpaces = this.raws.spaces && this.raws.spaces[name] || {};\n return Object.assign(attrSpaces, spaces, rawSpaces);\n };\n\n _proto._stringFor = function _stringFor(name, spaceName, concat) {\n if (spaceName === void 0) {\n spaceName = name;\n }\n\n if (concat === void 0) {\n concat = defaultAttrConcat;\n }\n\n var attrSpaces = this._spacesFor(spaceName);\n\n return concat(this.stringifyProperty(name), attrSpaces);\n }\n /**\n * returns the offset of the attribute part specified relative to the\n * start of the node of the output string.\n *\n * * \"ns\" - alias for \"namespace\"\n * * \"namespace\" - the namespace if it exists.\n * * \"attribute\" - the attribute name\n * * \"attributeNS\" - the start of the attribute or its namespace\n * * \"operator\" - the match operator of the attribute\n * * \"value\" - The value (string or identifier)\n * * \"insensitive\" - the case insensitivity flag;\n * @param part One of the possible values inside an attribute.\n * @returns -1 if the name is invalid or the value doesn't exist in this attribute.\n */\n ;\n\n _proto.offsetOf = function offsetOf(name) {\n var count = 1;\n\n var attributeSpaces = this._spacesFor(\"attribute\");\n\n count += attributeSpaces.before.length;\n\n if (name === \"namespace\" || name === \"ns\") {\n return this.namespace ? count : -1;\n }\n\n if (name === \"attributeNS\") {\n return count;\n }\n\n count += this.namespaceString.length;\n\n if (this.namespace) {\n count += 1;\n }\n\n if (name === \"attribute\") {\n return count;\n }\n\n count += this.stringifyProperty(\"attribute\").length;\n count += attributeSpaces.after.length;\n\n var operatorSpaces = this._spacesFor(\"operator\");\n\n count += operatorSpaces.before.length;\n var operator = this.stringifyProperty(\"operator\");\n\n if (name === \"operator\") {\n return operator ? count : -1;\n }\n\n count += operator.length;\n count += operatorSpaces.after.length;\n\n var valueSpaces = this._spacesFor(\"value\");\n\n count += valueSpaces.before.length;\n var value = this.stringifyProperty(\"value\");\n\n if (name === \"value\") {\n return value ? count : -1;\n }\n\n count += value.length;\n count += valueSpaces.after.length;\n\n var insensitiveSpaces = this._spacesFor(\"insensitive\");\n\n count += insensitiveSpaces.before.length;\n\n if (name === \"insensitive\") {\n return this.insensitive ? count : -1;\n }\n\n return -1;\n };\n\n _proto.toString = function toString() {\n var _this2 = this;\n\n var selector = [this.rawSpaceBefore, '['];\n selector.push(this._stringFor('qualifiedAttribute', 'attribute'));\n\n if (this.operator && (this.value || this.value === '')) {\n selector.push(this._stringFor('operator'));\n selector.push(this._stringFor('value'));\n selector.push(this._stringFor('insensitiveFlag', 'insensitive', function (attrValue, attrSpaces) {\n if (attrValue.length > 0 && !_this2.quoted && attrSpaces.before.length === 0 && !(_this2.spaces.value && _this2.spaces.value.after)) {\n attrSpaces.before = \" \";\n }\n\n return defaultAttrConcat(attrValue, attrSpaces);\n }));\n }\n\n selector.push(']');\n selector.push(this.rawSpaceAfter);\n return selector.join('');\n };\n\n _createClass(Attribute, [{\n key: \"quoted\",\n get: function get() {\n var qm = this.quoteMark;\n return qm === \"'\" || qm === '\"';\n },\n set: function set(value) {\n warnOfDeprecatedQuotedAssignment();\n }\n /**\n * returns a single (`'`) or double (`\"`) quote character if the value is quoted.\n * returns `null` if the value is not quoted.\n * returns `undefined` if the quotation state is unknown (this can happen when\n * the attribute is constructed without specifying a quote mark.)\n */\n\n }, {\n key: \"quoteMark\",\n get: function get() {\n return this._quoteMark;\n }\n /**\n * Set the quote mark to be used by this attribute's value.\n * If the quote mark changes, the raw (escaped) value at `attr.raws.value` of the attribute\n * value is updated accordingly.\n *\n * @param {\"'\" | '\"' | null} quoteMark The quote mark or `null` if the value should be unquoted.\n */\n ,\n set: function set(quoteMark) {\n if (!this._constructed) {\n this._quoteMark = quoteMark;\n return;\n }\n\n if (this._quoteMark !== quoteMark) {\n this._quoteMark = quoteMark;\n\n this._syncRawValue();\n }\n }\n }, {\n key: \"qualifiedAttribute\",\n get: function get() {\n return this.qualifiedName(this.raws.attribute || this.attribute);\n }\n }, {\n key: \"insensitiveFlag\",\n get: function get() {\n return this.insensitive ? 'i' : '';\n }\n }, {\n key: \"value\",\n get: function get() {\n return this._value;\n }\n /**\n * Before 3.0, the value had to be set to an escaped value including any wrapped\n * quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value\n * is unescaped during parsing and any quote marks are removed.\n *\n * Because the ambiguity of this semantic change, if you set `attr.value = newValue`,\n * a deprecation warning is raised when the new value contains any characters that would\n * require escaping (including if it contains wrapped quotes).\n *\n * Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe\n * how the new value is quoted.\n */\n ,\n set: function set(v) {\n if (this._constructed) {\n var _unescapeValue2 = unescapeValue(v),\n deprecatedUsage = _unescapeValue2.deprecatedUsage,\n unescaped = _unescapeValue2.unescaped,\n quoteMark = _unescapeValue2.quoteMark;\n\n if (deprecatedUsage) {\n warnOfDeprecatedValueAssignment();\n }\n\n if (unescaped === this._value && quoteMark === this._quoteMark) {\n return;\n }\n\n this._value = unescaped;\n this._quoteMark = quoteMark;\n\n this._syncRawValue();\n } else {\n this._value = v;\n }\n }\n }, {\n key: \"attribute\",\n get: function get() {\n return this._attribute;\n },\n set: function set(name) {\n this._handleEscapes(\"attribute\", name);\n\n this._attribute = name;\n }\n }]);\n\n return Attribute;\n}(_namespace[\"default\"]);\n\nexports[\"default\"] = Attribute;\nAttribute.NO_QUOTE = null;\nAttribute.SINGLE_QUOTE = \"'\";\nAttribute.DOUBLE_QUOTE = '\"';\nvar CSSESC_QUOTE_OPTIONS = (_CSSESC_QUOTE_OPTIONS = {\n \"'\": {\n quotes: 'single',\n wrap: true\n },\n '\"': {\n quotes: 'double',\n wrap: true\n }\n}, _CSSESC_QUOTE_OPTIONS[null] = {\n isIdentifier: true\n}, _CSSESC_QUOTE_OPTIONS);\n\nfunction defaultAttrConcat(attrValue, attrSpaces) {\n return \"\" + attrSpaces.before + attrValue + attrSpaces.after;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\n\nvar _util = require(\"../util\");\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar ClassName = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ClassName, _Node);\n\n function ClassName(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.CLASS;\n _this._constructed = true;\n return _this;\n }\n\n var _proto = ClassName.prototype;\n\n _proto.valueToString = function valueToString() {\n return '.' + _Node.prototype.valueToString.call(this);\n };\n\n _createClass(ClassName, [{\n key: \"value\",\n get: function get() {\n return this._value;\n },\n set: function set(v) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n\n if (escaped !== v) {\n (0, _util.ensureObject)(this, \"raws\");\n this.raws.value = escaped;\n } else if (this.raws) {\n delete this.raws.value;\n }\n }\n\n this._value = v;\n }\n }]);\n\n return ClassName;\n}(_node[\"default\"]);\n\nexports[\"default\"] = ClassName;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Combinator = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Combinator, _Node);\n\n function Combinator(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMBINATOR;\n return _this;\n }\n\n return Combinator;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Combinator;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Comment = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Comment, _Node);\n\n function Comment(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMMENT;\n return _this;\n }\n\n return Comment;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Comment;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.universal = exports.tag = exports.string = exports.selector = exports.root = exports.pseudo = exports.nesting = exports.id = exports.comment = exports.combinator = exports.className = exports.attribute = void 0;\n\nvar _attribute = _interopRequireDefault(require(\"./attribute\"));\n\nvar _className = _interopRequireDefault(require(\"./className\"));\n\nvar _combinator = _interopRequireDefault(require(\"./combinator\"));\n\nvar _comment = _interopRequireDefault(require(\"./comment\"));\n\nvar _id = _interopRequireDefault(require(\"./id\"));\n\nvar _nesting = _interopRequireDefault(require(\"./nesting\"));\n\nvar _pseudo = _interopRequireDefault(require(\"./pseudo\"));\n\nvar _root = _interopRequireDefault(require(\"./root\"));\n\nvar _selector = _interopRequireDefault(require(\"./selector\"));\n\nvar _string = _interopRequireDefault(require(\"./string\"));\n\nvar _tag = _interopRequireDefault(require(\"./tag\"));\n\nvar _universal = _interopRequireDefault(require(\"./universal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar attribute = function attribute(opts) {\n return new _attribute[\"default\"](opts);\n};\n\nexports.attribute = attribute;\n\nvar className = function className(opts) {\n return new _className[\"default\"](opts);\n};\n\nexports.className = className;\n\nvar combinator = function combinator(opts) {\n return new _combinator[\"default\"](opts);\n};\n\nexports.combinator = combinator;\n\nvar comment = function comment(opts) {\n return new _comment[\"default\"](opts);\n};\n\nexports.comment = comment;\n\nvar id = function id(opts) {\n return new _id[\"default\"](opts);\n};\n\nexports.id = id;\n\nvar nesting = function nesting(opts) {\n return new _nesting[\"default\"](opts);\n};\n\nexports.nesting = nesting;\n\nvar pseudo = function pseudo(opts) {\n return new _pseudo[\"default\"](opts);\n};\n\nexports.pseudo = pseudo;\n\nvar root = function root(opts) {\n return new _root[\"default\"](opts);\n};\n\nexports.root = root;\n\nvar selector = function selector(opts) {\n return new _selector[\"default\"](opts);\n};\n\nexports.selector = selector;\n\nvar string = function string(opts) {\n return new _string[\"default\"](opts);\n};\n\nexports.string = string;\n\nvar tag = function tag(opts) {\n return new _tag[\"default\"](opts);\n};\n\nexports.tag = tag;\n\nvar universal = function universal(opts) {\n return new _universal[\"default\"](opts);\n};\n\nexports.universal = universal;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar types = _interopRequireWildcard(require(\"./types\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Container = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Container, _Node);\n\n function Container(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n\n if (!_this.nodes) {\n _this.nodes = [];\n }\n\n return _this;\n }\n\n var _proto = Container.prototype;\n\n _proto.append = function append(selector) {\n selector.parent = this;\n this.nodes.push(selector);\n return this;\n };\n\n _proto.prepend = function prepend(selector) {\n selector.parent = this;\n this.nodes.unshift(selector);\n return this;\n };\n\n _proto.at = function at(index) {\n return this.nodes[index];\n };\n\n _proto.index = function index(child) {\n if (typeof child === 'number') {\n return child;\n }\n\n return this.nodes.indexOf(child);\n };\n\n _proto.removeChild = function removeChild(child) {\n child = this.index(child);\n this.at(child).parent = undefined;\n this.nodes.splice(child, 1);\n var index;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (index >= child) {\n this.indexes[id] = index - 1;\n }\n }\n\n return this;\n };\n\n _proto.removeAll = function removeAll() {\n for (var _iterator = _createForOfIteratorHelperLoose(this.nodes), _step; !(_step = _iterator()).done;) {\n var node = _step.value;\n node.parent = undefined;\n }\n\n this.nodes = [];\n return this;\n };\n\n _proto.empty = function empty() {\n return this.removeAll();\n };\n\n _proto.insertAfter = function insertAfter(oldNode, newNode) {\n newNode.parent = this;\n var oldIndex = this.index(oldNode);\n this.nodes.splice(oldIndex + 1, 0, newNode);\n newNode.parent = this;\n var index;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (oldIndex <= index) {\n this.indexes[id] = index + 1;\n }\n }\n\n return this;\n };\n\n _proto.insertBefore = function insertBefore(oldNode, newNode) {\n newNode.parent = this;\n var oldIndex = this.index(oldNode);\n this.nodes.splice(oldIndex, 0, newNode);\n newNode.parent = this;\n var index;\n\n for (var id in this.indexes) {\n index = this.indexes[id];\n\n if (index <= oldIndex) {\n this.indexes[id] = index + 1;\n }\n }\n\n return this;\n };\n\n _proto._findChildAtPosition = function _findChildAtPosition(line, col) {\n var found = undefined;\n this.each(function (node) {\n if (node.atPosition) {\n var foundChild = node.atPosition(line, col);\n\n if (foundChild) {\n found = foundChild;\n return false;\n }\n } else if (node.isAtPosition(line, col)) {\n found = node;\n return false;\n }\n });\n return found;\n }\n /**\n * Return the most specific node at the line and column number given.\n * The source location is based on the original parsed location, locations aren't\n * updated as selector nodes are mutated.\n * \n * Note that this location is relative to the location of the first character\n * of the selector, and not the location of the selector in the overall document\n * when used in conjunction with postcss.\n *\n * If not found, returns undefined.\n * @param {number} line The line number of the node to find. (1-based index)\n * @param {number} col The column number of the node to find. (1-based index)\n */\n ;\n\n _proto.atPosition = function atPosition(line, col) {\n if (this.isAtPosition(line, col)) {\n return this._findChildAtPosition(line, col) || this;\n } else {\n return undefined;\n }\n };\n\n _proto._inferEndPosition = function _inferEndPosition() {\n if (this.last && this.last.source && this.last.source.end) {\n this.source = this.source || {};\n this.source.end = this.source.end || {};\n Object.assign(this.source.end, this.last.source.end);\n }\n };\n\n _proto.each = function each(callback) {\n if (!this.lastEach) {\n this.lastEach = 0;\n }\n\n if (!this.indexes) {\n this.indexes = {};\n }\n\n this.lastEach++;\n var id = this.lastEach;\n this.indexes[id] = 0;\n\n if (!this.length) {\n return undefined;\n }\n\n var index, result;\n\n while (this.indexes[id] < this.length) {\n index = this.indexes[id];\n result = callback(this.at(index), index);\n\n if (result === false) {\n break;\n }\n\n this.indexes[id] += 1;\n }\n\n delete this.indexes[id];\n\n if (result === false) {\n return false;\n }\n };\n\n _proto.walk = function walk(callback) {\n return this.each(function (node, i) {\n var result = callback(node, i);\n\n if (result !== false && node.length) {\n result = node.walk(callback);\n }\n\n if (result === false) {\n return false;\n }\n });\n };\n\n _proto.walkAttributes = function walkAttributes(callback) {\n var _this2 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.ATTRIBUTE) {\n return callback.call(_this2, selector);\n }\n });\n };\n\n _proto.walkClasses = function walkClasses(callback) {\n var _this3 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.CLASS) {\n return callback.call(_this3, selector);\n }\n });\n };\n\n _proto.walkCombinators = function walkCombinators(callback) {\n var _this4 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.COMBINATOR) {\n return callback.call(_this4, selector);\n }\n });\n };\n\n _proto.walkComments = function walkComments(callback) {\n var _this5 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.COMMENT) {\n return callback.call(_this5, selector);\n }\n });\n };\n\n _proto.walkIds = function walkIds(callback) {\n var _this6 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.ID) {\n return callback.call(_this6, selector);\n }\n });\n };\n\n _proto.walkNesting = function walkNesting(callback) {\n var _this7 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.NESTING) {\n return callback.call(_this7, selector);\n }\n });\n };\n\n _proto.walkPseudos = function walkPseudos(callback) {\n var _this8 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.PSEUDO) {\n return callback.call(_this8, selector);\n }\n });\n };\n\n _proto.walkTags = function walkTags(callback) {\n var _this9 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.TAG) {\n return callback.call(_this9, selector);\n }\n });\n };\n\n _proto.walkUniversals = function walkUniversals(callback) {\n var _this10 = this;\n\n return this.walk(function (selector) {\n if (selector.type === types.UNIVERSAL) {\n return callback.call(_this10, selector);\n }\n });\n };\n\n _proto.split = function split(callback) {\n var _this11 = this;\n\n var current = [];\n return this.reduce(function (memo, node, index) {\n var split = callback.call(_this11, node);\n current.push(node);\n\n if (split) {\n memo.push(current);\n current = [];\n } else if (index === _this11.length - 1) {\n memo.push(current);\n }\n\n return memo;\n }, []);\n };\n\n _proto.map = function map(callback) {\n return this.nodes.map(callback);\n };\n\n _proto.reduce = function reduce(callback, memo) {\n return this.nodes.reduce(callback, memo);\n };\n\n _proto.every = function every(callback) {\n return this.nodes.every(callback);\n };\n\n _proto.some = function some(callback) {\n return this.nodes.some(callback);\n };\n\n _proto.filter = function filter(callback) {\n return this.nodes.filter(callback);\n };\n\n _proto.sort = function sort(callback) {\n return this.nodes.sort(callback);\n };\n\n _proto.toString = function toString() {\n return this.map(String).join('');\n };\n\n _createClass(Container, [{\n key: \"first\",\n get: function get() {\n return this.at(0);\n }\n }, {\n key: \"last\",\n get: function get() {\n return this.at(this.length - 1);\n }\n }, {\n key: \"length\",\n get: function get() {\n return this.nodes.length;\n }\n }]);\n\n return Container;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Container;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.isNode = isNode;\nexports.isPseudoElement = isPseudoElement;\nexports.isPseudoClass = isPseudoClass;\nexports.isContainer = isContainer;\nexports.isNamespace = isNamespace;\nexports.isUniversal = exports.isTag = exports.isString = exports.isSelector = exports.isRoot = exports.isPseudo = exports.isNesting = exports.isIdentifier = exports.isComment = exports.isCombinator = exports.isClassName = exports.isAttribute = void 0;\n\nvar _types = require(\"./types\");\n\nvar _IS_TYPE;\n\nvar IS_TYPE = (_IS_TYPE = {}, _IS_TYPE[_types.ATTRIBUTE] = true, _IS_TYPE[_types.CLASS] = true, _IS_TYPE[_types.COMBINATOR] = true, _IS_TYPE[_types.COMMENT] = true, _IS_TYPE[_types.ID] = true, _IS_TYPE[_types.NESTING] = true, _IS_TYPE[_types.PSEUDO] = true, _IS_TYPE[_types.ROOT] = true, _IS_TYPE[_types.SELECTOR] = true, _IS_TYPE[_types.STRING] = true, _IS_TYPE[_types.TAG] = true, _IS_TYPE[_types.UNIVERSAL] = true, _IS_TYPE);\n\nfunction isNode(node) {\n return typeof node === \"object\" && IS_TYPE[node.type];\n}\n\nfunction isNodeType(type, node) {\n return isNode(node) && node.type === type;\n}\n\nvar isAttribute = isNodeType.bind(null, _types.ATTRIBUTE);\nexports.isAttribute = isAttribute;\nvar isClassName = isNodeType.bind(null, _types.CLASS);\nexports.isClassName = isClassName;\nvar isCombinator = isNodeType.bind(null, _types.COMBINATOR);\nexports.isCombinator = isCombinator;\nvar isComment = isNodeType.bind(null, _types.COMMENT);\nexports.isComment = isComment;\nvar isIdentifier = isNodeType.bind(null, _types.ID);\nexports.isIdentifier = isIdentifier;\nvar isNesting = isNodeType.bind(null, _types.NESTING);\nexports.isNesting = isNesting;\nvar isPseudo = isNodeType.bind(null, _types.PSEUDO);\nexports.isPseudo = isPseudo;\nvar isRoot = isNodeType.bind(null, _types.ROOT);\nexports.isRoot = isRoot;\nvar isSelector = isNodeType.bind(null, _types.SELECTOR);\nexports.isSelector = isSelector;\nvar isString = isNodeType.bind(null, _types.STRING);\nexports.isString = isString;\nvar isTag = isNodeType.bind(null, _types.TAG);\nexports.isTag = isTag;\nvar isUniversal = isNodeType.bind(null, _types.UNIVERSAL);\nexports.isUniversal = isUniversal;\n\nfunction isPseudoElement(node) {\n return isPseudo(node) && node.value && (node.value.startsWith(\"::\") || node.value.toLowerCase() === \":before\" || node.value.toLowerCase() === \":after\" || node.value.toLowerCase() === \":first-letter\" || node.value.toLowerCase() === \":first-line\");\n}\n\nfunction isPseudoClass(node) {\n return isPseudo(node) && !isPseudoElement(node);\n}\n\nfunction isContainer(node) {\n return !!(isNode(node) && node.walk);\n}\n\nfunction isNamespace(node) {\n return isAttribute(node) || isTag(node);\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar ID = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ID, _Node);\n\n function ID(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.ID;\n return _this;\n }\n\n var _proto = ID.prototype;\n\n _proto.valueToString = function valueToString() {\n return '#' + _Node.prototype.valueToString.call(this);\n };\n\n return ID;\n}(_node[\"default\"]);\n\nexports[\"default\"] = ID;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\n\nvar _types = require(\"./types\");\n\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _types[key]) return;\n exports[key] = _types[key];\n});\n\nvar _constructors = require(\"./constructors\");\n\nObject.keys(_constructors).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _constructors[key]) return;\n exports[key] = _constructors[key];\n});\n\nvar _guards = require(\"./guards\");\n\nObject.keys(_guards).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _guards[key]) return;\n exports[key] = _guards[key];\n});","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\n\nvar _util = require(\"../util\");\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Namespace = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Namespace, _Node);\n\n function Namespace() {\n return _Node.apply(this, arguments) || this;\n }\n\n var _proto = Namespace.prototype;\n\n _proto.qualifiedName = function qualifiedName(value) {\n if (this.namespace) {\n return this.namespaceString + \"|\" + value;\n } else {\n return value;\n }\n };\n\n _proto.valueToString = function valueToString() {\n return this.qualifiedName(_Node.prototype.valueToString.call(this));\n };\n\n _createClass(Namespace, [{\n key: \"namespace\",\n get: function get() {\n return this._namespace;\n },\n set: function set(namespace) {\n if (namespace === true || namespace === \"*\" || namespace === \"&\") {\n this._namespace = namespace;\n\n if (this.raws) {\n delete this.raws.namespace;\n }\n\n return;\n }\n\n var escaped = (0, _cssesc[\"default\"])(namespace, {\n isIdentifier: true\n });\n this._namespace = namespace;\n\n if (escaped !== namespace) {\n (0, _util.ensureObject)(this, \"raws\");\n this.raws.namespace = escaped;\n } else if (this.raws) {\n delete this.raws.namespace;\n }\n }\n }, {\n key: \"ns\",\n get: function get() {\n return this._namespace;\n },\n set: function set(namespace) {\n this.namespace = namespace;\n }\n }, {\n key: \"namespaceString\",\n get: function get() {\n if (this.namespace) {\n var ns = this.stringifyProperty(\"namespace\");\n\n if (ns === true) {\n return '';\n } else {\n return ns;\n }\n } else {\n return '';\n }\n }\n }]);\n\n return Namespace;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Namespace;\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Nesting = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Nesting, _Node);\n\n function Nesting(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.NESTING;\n _this.value = '&';\n return _this;\n }\n\n return Nesting;\n}(_node[\"default\"]);\n\nexports[\"default\"] = Nesting;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _util = require(\"../util\");\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar cloneNode = function cloneNode(obj, parent) {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n\n var cloned = new obj.constructor();\n\n for (var i in obj) {\n if (!obj.hasOwnProperty(i)) {\n continue;\n }\n\n var value = obj[i];\n var type = typeof value;\n\n if (i === 'parent' && type === 'object') {\n if (parent) {\n cloned[i] = parent;\n }\n } else if (value instanceof Array) {\n cloned[i] = value.map(function (j) {\n return cloneNode(j, cloned);\n });\n } else {\n cloned[i] = cloneNode(value, cloned);\n }\n }\n\n return cloned;\n};\n\nvar Node = /*#__PURE__*/function () {\n function Node(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n Object.assign(this, opts);\n this.spaces = this.spaces || {};\n this.spaces.before = this.spaces.before || '';\n this.spaces.after = this.spaces.after || '';\n }\n\n var _proto = Node.prototype;\n\n _proto.remove = function remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n\n this.parent = undefined;\n return this;\n };\n\n _proto.replaceWith = function replaceWith() {\n if (this.parent) {\n for (var index in arguments) {\n this.parent.insertBefore(this, arguments[index]);\n }\n\n this.remove();\n }\n\n return this;\n };\n\n _proto.next = function next() {\n return this.parent.at(this.parent.index(this) + 1);\n };\n\n _proto.prev = function prev() {\n return this.parent.at(this.parent.index(this) - 1);\n };\n\n _proto.clone = function clone(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n var cloned = cloneNode(this);\n\n for (var name in overrides) {\n cloned[name] = overrides[name];\n }\n\n return cloned;\n }\n /**\n * Some non-standard syntax doesn't follow normal escaping rules for css.\n * This allows non standard syntax to be appended to an existing property\n * by specifying the escaped value. By specifying the escaped value,\n * illegal characters are allowed to be directly inserted into css output.\n * @param {string} name the property to set\n * @param {any} value the unescaped value of the property\n * @param {string} valueEscaped optional. the escaped value of the property.\n */\n ;\n\n _proto.appendToPropertyAndEscape = function appendToPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n\n var originalValue = this[name];\n var originalEscaped = this.raws[name];\n this[name] = originalValue + value; // this may trigger a setter that updates raws, so it has to be set first.\n\n if (originalEscaped || valueEscaped !== value) {\n this.raws[name] = (originalEscaped || originalValue) + valueEscaped;\n } else {\n delete this.raws[name]; // delete any escaped value that was created by the setter.\n }\n }\n /**\n * Some non-standard syntax doesn't follow normal escaping rules for css.\n * This allows the escaped value to be specified directly, allowing illegal\n * characters to be directly inserted into css output.\n * @param {string} name the property to set\n * @param {any} value the unescaped value of the property\n * @param {string} valueEscaped the escaped value of the property.\n */\n ;\n\n _proto.setPropertyAndEscape = function setPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n\n this.raws[name] = valueEscaped;\n }\n /**\n * When you want a value to passed through to CSS directly. This method\n * deletes the corresponding raw value causing the stringifier to fallback\n * to the unescaped value.\n * @param {string} name the property to set.\n * @param {any} value The value that is both escaped and unescaped.\n */\n ;\n\n _proto.setPropertyWithoutEscape = function setPropertyWithoutEscape(name, value) {\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n\n if (this.raws) {\n delete this.raws[name];\n }\n }\n /**\n *\n * @param {number} line The number (starting with 1)\n * @param {number} column The column number (starting with 1)\n */\n ;\n\n _proto.isAtPosition = function isAtPosition(line, column) {\n if (this.source && this.source.start && this.source.end) {\n if (this.source.start.line > line) {\n return false;\n }\n\n if (this.source.end.line < line) {\n return false;\n }\n\n if (this.source.start.line === line && this.source.start.column > column) {\n return false;\n }\n\n if (this.source.end.line === line && this.source.end.column < column) {\n return false;\n }\n\n return true;\n }\n\n return undefined;\n };\n\n _proto.stringifyProperty = function stringifyProperty(name) {\n return this.raws && this.raws[name] || this[name];\n };\n\n _proto.valueToString = function valueToString() {\n return String(this.stringifyProperty(\"value\"));\n };\n\n _proto.toString = function toString() {\n return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join('');\n };\n\n _createClass(Node, [{\n key: \"rawSpaceBefore\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.before;\n\n if (rawSpace === undefined) {\n rawSpace = this.spaces && this.spaces.before;\n }\n\n return rawSpace || \"\";\n },\n set: function set(raw) {\n (0, _util.ensureObject)(this, \"raws\", \"spaces\");\n this.raws.spaces.before = raw;\n }\n }, {\n key: \"rawSpaceAfter\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.after;\n\n if (rawSpace === undefined) {\n rawSpace = this.spaces.after;\n }\n\n return rawSpace || \"\";\n },\n set: function set(raw) {\n (0, _util.ensureObject)(this, \"raws\", \"spaces\");\n this.raws.spaces.after = raw;\n }\n }]);\n\n return Node;\n}();\n\nexports[\"default\"] = Node;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _container = _interopRequireDefault(require(\"./container\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Pseudo = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Pseudo, _Container);\n\n function Pseudo(opts) {\n var _this;\n\n _this = _Container.call(this, opts) || this;\n _this.type = _types.PSEUDO;\n return _this;\n }\n\n var _proto = Pseudo.prototype;\n\n _proto.toString = function toString() {\n var params = this.length ? '(' + this.map(String).join(',') + ')' : '';\n return [this.rawSpaceBefore, this.stringifyProperty(\"value\"), params, this.rawSpaceAfter].join('');\n };\n\n return Pseudo;\n}(_container[\"default\"]);\n\nexports[\"default\"] = Pseudo;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _container = _interopRequireDefault(require(\"./container\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Root = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Root, _Container);\n\n function Root(opts) {\n var _this;\n\n _this = _Container.call(this, opts) || this;\n _this.type = _types.ROOT;\n return _this;\n }\n\n var _proto = Root.prototype;\n\n _proto.toString = function toString() {\n var str = this.reduce(function (memo, selector) {\n memo.push(String(selector));\n return memo;\n }, []).join(',');\n return this.trailingComma ? str + ',' : str;\n };\n\n _proto.error = function error(message, options) {\n if (this._error) {\n return this._error(message, options);\n } else {\n return new Error(message);\n }\n };\n\n _createClass(Root, [{\n key: \"errorGenerator\",\n set: function set(handler) {\n this._error = handler;\n }\n }]);\n\n return Root;\n}(_container[\"default\"]);\n\nexports[\"default\"] = Root;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _container = _interopRequireDefault(require(\"./container\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Selector = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Selector, _Container);\n\n function Selector(opts) {\n var _this;\n\n _this = _Container.call(this, opts) || this;\n _this.type = _types.SELECTOR;\n return _this;\n }\n\n return Selector;\n}(_container[\"default\"]);\n\nexports[\"default\"] = Selector;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _node = _interopRequireDefault(require(\"./node\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar String = /*#__PURE__*/function (_Node) {\n _inheritsLoose(String, _Node);\n\n function String(opts) {\n var _this;\n\n _this = _Node.call(this, opts) || this;\n _this.type = _types.STRING;\n return _this;\n }\n\n return String;\n}(_node[\"default\"]);\n\nexports[\"default\"] = String;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Tag = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Tag, _Namespace);\n\n function Tag(opts) {\n var _this;\n\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.TAG;\n return _this;\n }\n\n return Tag;\n}(_namespace[\"default\"]);\n\nexports[\"default\"] = Tag;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.UNIVERSAL = exports.ATTRIBUTE = exports.CLASS = exports.COMBINATOR = exports.COMMENT = exports.ID = exports.NESTING = exports.PSEUDO = exports.ROOT = exports.SELECTOR = exports.STRING = exports.TAG = void 0;\nvar TAG = 'tag';\nexports.TAG = TAG;\nvar STRING = 'string';\nexports.STRING = STRING;\nvar SELECTOR = 'selector';\nexports.SELECTOR = SELECTOR;\nvar ROOT = 'root';\nexports.ROOT = ROOT;\nvar PSEUDO = 'pseudo';\nexports.PSEUDO = PSEUDO;\nvar NESTING = 'nesting';\nexports.NESTING = NESTING;\nvar ID = 'id';\nexports.ID = ID;\nvar COMMENT = 'comment';\nexports.COMMENT = COMMENT;\nvar COMBINATOR = 'combinator';\nexports.COMBINATOR = COMBINATOR;\nvar CLASS = 'class';\nexports.CLASS = CLASS;\nvar ATTRIBUTE = 'attribute';\nexports.ATTRIBUTE = ATTRIBUTE;\nvar UNIVERSAL = 'universal';\nexports.UNIVERSAL = UNIVERSAL;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\n\nvar _types = require(\"./types\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar Universal = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Universal, _Namespace);\n\n function Universal(opts) {\n var _this;\n\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.UNIVERSAL;\n _this.value = '*';\n return _this;\n }\n\n return Universal;\n}(_namespace[\"default\"]);\n\nexports[\"default\"] = Universal;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = sortAscending;\n\nfunction sortAscending(list) {\n return list.sort(function (a, b) {\n return a - b;\n });\n}\n\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.combinator = exports.word = exports.comment = exports.str = exports.tab = exports.newline = exports.feed = exports.cr = exports.backslash = exports.bang = exports.slash = exports.doubleQuote = exports.singleQuote = exports.space = exports.greaterThan = exports.pipe = exports.equals = exports.plus = exports.caret = exports.tilde = exports.dollar = exports.closeSquare = exports.openSquare = exports.closeParenthesis = exports.openParenthesis = exports.semicolon = exports.colon = exports.comma = exports.at = exports.asterisk = exports.ampersand = void 0;\nvar ampersand = 38; // `&`.charCodeAt(0);\n\nexports.ampersand = ampersand;\nvar asterisk = 42; // `*`.charCodeAt(0);\n\nexports.asterisk = asterisk;\nvar at = 64; // `@`.charCodeAt(0);\n\nexports.at = at;\nvar comma = 44; // `,`.charCodeAt(0);\n\nexports.comma = comma;\nvar colon = 58; // `:`.charCodeAt(0);\n\nexports.colon = colon;\nvar semicolon = 59; // `;`.charCodeAt(0);\n\nexports.semicolon = semicolon;\nvar openParenthesis = 40; // `(`.charCodeAt(0);\n\nexports.openParenthesis = openParenthesis;\nvar closeParenthesis = 41; // `)`.charCodeAt(0);\n\nexports.closeParenthesis = closeParenthesis;\nvar openSquare = 91; // `[`.charCodeAt(0);\n\nexports.openSquare = openSquare;\nvar closeSquare = 93; // `]`.charCodeAt(0);\n\nexports.closeSquare = closeSquare;\nvar dollar = 36; // `$`.charCodeAt(0);\n\nexports.dollar = dollar;\nvar tilde = 126; // `~`.charCodeAt(0);\n\nexports.tilde = tilde;\nvar caret = 94; // `^`.charCodeAt(0);\n\nexports.caret = caret;\nvar plus = 43; // `+`.charCodeAt(0);\n\nexports.plus = plus;\nvar equals = 61; // `=`.charCodeAt(0);\n\nexports.equals = equals;\nvar pipe = 124; // `|`.charCodeAt(0);\n\nexports.pipe = pipe;\nvar greaterThan = 62; // `>`.charCodeAt(0);\n\nexports.greaterThan = greaterThan;\nvar space = 32; // ` `.charCodeAt(0);\n\nexports.space = space;\nvar singleQuote = 39; // `'`.charCodeAt(0);\n\nexports.singleQuote = singleQuote;\nvar doubleQuote = 34; // `\"`.charCodeAt(0);\n\nexports.doubleQuote = doubleQuote;\nvar slash = 47; // `/`.charCodeAt(0);\n\nexports.slash = slash;\nvar bang = 33; // `!`.charCodeAt(0);\n\nexports.bang = bang;\nvar backslash = 92; // '\\\\'.charCodeAt(0);\n\nexports.backslash = backslash;\nvar cr = 13; // '\\r'.charCodeAt(0);\n\nexports.cr = cr;\nvar feed = 12; // '\\f'.charCodeAt(0);\n\nexports.feed = feed;\nvar newline = 10; // '\\n'.charCodeAt(0);\n\nexports.newline = newline;\nvar tab = 9; // '\\t'.charCodeAt(0);\n// Expose aliases primarily for readability.\n\nexports.tab = tab;\nvar str = singleQuote; // No good single character representation!\n\nexports.str = str;\nvar comment = -1;\nexports.comment = comment;\nvar word = -2;\nexports.word = word;\nvar combinator = -3;\nexports.combinator = combinator;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = tokenize;\nexports.FIELDS = void 0;\n\nvar t = _interopRequireWildcard(require(\"./tokenTypes\"));\n\nvar _unescapable, _wordDelimiters;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar unescapable = (_unescapable = {}, _unescapable[t.tab] = true, _unescapable[t.newline] = true, _unescapable[t.cr] = true, _unescapable[t.feed] = true, _unescapable);\nvar wordDelimiters = (_wordDelimiters = {}, _wordDelimiters[t.space] = true, _wordDelimiters[t.tab] = true, _wordDelimiters[t.newline] = true, _wordDelimiters[t.cr] = true, _wordDelimiters[t.feed] = true, _wordDelimiters[t.ampersand] = true, _wordDelimiters[t.asterisk] = true, _wordDelimiters[t.bang] = true, _wordDelimiters[t.comma] = true, _wordDelimiters[t.colon] = true, _wordDelimiters[t.semicolon] = true, _wordDelimiters[t.openParenthesis] = true, _wordDelimiters[t.closeParenthesis] = true, _wordDelimiters[t.openSquare] = true, _wordDelimiters[t.closeSquare] = true, _wordDelimiters[t.singleQuote] = true, _wordDelimiters[t.doubleQuote] = true, _wordDelimiters[t.plus] = true, _wordDelimiters[t.pipe] = true, _wordDelimiters[t.tilde] = true, _wordDelimiters[t.greaterThan] = true, _wordDelimiters[t.equals] = true, _wordDelimiters[t.dollar] = true, _wordDelimiters[t.caret] = true, _wordDelimiters[t.slash] = true, _wordDelimiters);\nvar hex = {};\nvar hexChars = \"0123456789abcdefABCDEF\";\n\nfor (var i = 0; i < hexChars.length; i++) {\n hex[hexChars.charCodeAt(i)] = true;\n}\n/**\n * Returns the last index of the bar css word\n * @param {string} css The string in which the word begins\n * @param {number} start The index into the string where word's first letter occurs\n */\n\n\nfunction consumeWord(css, start) {\n var next = start;\n var code;\n\n do {\n code = css.charCodeAt(next);\n\n if (wordDelimiters[code]) {\n return next - 1;\n } else if (code === t.backslash) {\n next = consumeEscape(css, next) + 1;\n } else {\n // All other characters are part of the word\n next++;\n }\n } while (next < css.length);\n\n return next - 1;\n}\n/**\n * Returns the last index of the escape sequence\n * @param {string} css The string in which the sequence begins\n * @param {number} start The index into the string where escape character (`\\`) occurs.\n */\n\n\nfunction consumeEscape(css, start) {\n var next = start;\n var code = css.charCodeAt(next + 1);\n\n if (unescapable[code]) {// just consume the escape char\n } else if (hex[code]) {\n var hexDigits = 0; // consume up to 6 hex chars\n\n do {\n next++;\n hexDigits++;\n code = css.charCodeAt(next + 1);\n } while (hex[code] && hexDigits < 6); // if fewer than 6 hex chars, a trailing space ends the escape\n\n\n if (hexDigits < 6 && code === t.space) {\n next++;\n }\n } else {\n // the next char is part of the current word\n next++;\n }\n\n return next;\n}\n\nvar FIELDS = {\n TYPE: 0,\n START_LINE: 1,\n START_COL: 2,\n END_LINE: 3,\n END_COL: 4,\n START_POS: 5,\n END_POS: 6\n};\nexports.FIELDS = FIELDS;\n\nfunction tokenize(input) {\n var tokens = [];\n var css = input.css.valueOf();\n var _css = css,\n length = _css.length;\n var offset = -1;\n var line = 1;\n var start = 0;\n var end = 0;\n var code, content, endColumn, endLine, escaped, escapePos, last, lines, next, nextLine, nextOffset, quote, tokenType;\n\n function unclosed(what, fix) {\n if (input.safe) {\n // fyi: this is never set to true.\n css += fix;\n next = css.length - 1;\n } else {\n throw input.error('Unclosed ' + what, line, start - offset, start);\n }\n }\n\n while (start < length) {\n code = css.charCodeAt(start);\n\n if (code === t.newline) {\n offset = start;\n line += 1;\n }\n\n switch (code) {\n case t.space:\n case t.tab:\n case t.newline:\n case t.cr:\n case t.feed:\n next = start;\n\n do {\n next += 1;\n code = css.charCodeAt(next);\n\n if (code === t.newline) {\n offset = next;\n line += 1;\n }\n } while (code === t.space || code === t.newline || code === t.tab || code === t.cr || code === t.feed);\n\n tokenType = t.space;\n endLine = line;\n endColumn = next - offset - 1;\n end = next;\n break;\n\n case t.plus:\n case t.greaterThan:\n case t.tilde:\n case t.pipe:\n next = start;\n\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === t.plus || code === t.greaterThan || code === t.tilde || code === t.pipe);\n\n tokenType = t.combinator;\n endLine = line;\n endColumn = start - offset;\n end = next;\n break;\n // Consume these characters as single tokens.\n\n case t.asterisk:\n case t.ampersand:\n case t.bang:\n case t.comma:\n case t.equals:\n case t.dollar:\n case t.caret:\n case t.openSquare:\n case t.closeSquare:\n case t.colon:\n case t.semicolon:\n case t.openParenthesis:\n case t.closeParenthesis:\n next = start;\n tokenType = code;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n\n case t.singleQuote:\n case t.doubleQuote:\n quote = code === t.singleQuote ? \"'\" : '\"';\n next = start;\n\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n\n if (next === -1) {\n unclosed('quote', quote);\n }\n\n escapePos = next;\n\n while (css.charCodeAt(escapePos - 1) === t.backslash) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n\n tokenType = t.str;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n\n default:\n if (code === t.slash && css.charCodeAt(start + 1) === t.asterisk) {\n next = css.indexOf('*/', start + 2) + 1;\n\n if (next === 0) {\n unclosed('comment', '*/');\n }\n\n content = css.slice(start, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\n }\n\n tokenType = t.comment;\n line = nextLine;\n endLine = nextLine;\n endColumn = next - nextOffset;\n } else if (code === t.slash) {\n next = start;\n tokenType = code;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n } else {\n next = consumeWord(css, start);\n tokenType = t.word;\n endLine = line;\n endColumn = next - offset;\n }\n\n end = next + 1;\n break;\n } // Ensure that the token structure remains consistent\n\n\n tokens.push([tokenType, // [0] Token type\n line, // [1] Starting line\n start - offset, // [2] Starting column\n endLine, // [3] Ending line\n endColumn, // [4] Ending column\n start, // [5] Start position / Source index\n end // [6] End position\n ]); // Reset offset for the next token\n\n if (nextOffset) {\n offset = nextOffset;\n nextOffset = null;\n }\n\n start = end;\n }\n\n return tokens;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = ensureObject;\n\nfunction ensureObject(obj) {\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n\n while (props.length > 0) {\n var prop = props.shift();\n\n if (!obj[prop]) {\n obj[prop] = {};\n }\n\n obj = obj[prop];\n }\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = getProp;\n\nfunction getProp(obj) {\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n\n while (props.length > 0) {\n var prop = props.shift();\n\n if (!obj[prop]) {\n return undefined;\n }\n\n obj = obj[prop];\n }\n\n return obj;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.stripComments = exports.ensureObject = exports.getProp = exports.unesc = void 0;\n\nvar _unesc = _interopRequireDefault(require(\"./unesc\"));\n\nexports.unesc = _unesc[\"default\"];\n\nvar _getProp = _interopRequireDefault(require(\"./getProp\"));\n\nexports.getProp = _getProp[\"default\"];\n\nvar _ensureObject = _interopRequireDefault(require(\"./ensureObject\"));\n\nexports.ensureObject = _ensureObject[\"default\"];\n\nvar _stripComments = _interopRequireDefault(require(\"./stripComments\"));\n\nexports.stripComments = _stripComments[\"default\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stripComments;\n\nfunction stripComments(str) {\n var s = \"\";\n var commentStart = str.indexOf(\"/*\");\n var lastEnd = 0;\n\n while (commentStart >= 0) {\n s = s + str.slice(lastEnd, commentStart);\n var commentEnd = str.indexOf(\"*/\", commentStart + 2);\n\n if (commentEnd < 0) {\n return s;\n }\n\n lastEnd = commentEnd + 2;\n commentStart = str.indexOf(\"/*\", lastEnd);\n }\n\n s = s + str.slice(lastEnd);\n return s;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = unesc;\n\n// Many thanks for this post which made this migration much easier.\n// https://mathiasbynens.be/notes/css-escapes\n\n/**\n * \n * @param {string} str \n * @returns {[string, number]|undefined}\n */\nfunction gobbleHex(str) {\n var lower = str.toLowerCase();\n var hex = '';\n var spaceTerminated = false;\n\n for (var i = 0; i < 6 && lower[i] !== undefined; i++) {\n var code = lower.charCodeAt(i); // check to see if we are dealing with a valid hex char [a-f|0-9]\n\n var valid = code >= 97 && code <= 102 || code >= 48 && code <= 57; // https://drafts.csswg.org/css-syntax/#consume-escaped-code-point\n\n spaceTerminated = code === 32;\n\n if (!valid) {\n break;\n }\n\n hex += lower[i];\n }\n\n if (hex.length === 0) {\n return undefined;\n }\n\n var codePoint = parseInt(hex, 16);\n var isSurrogate = codePoint >= 0xD800 && codePoint <= 0xDFFF; // Add special case for\n // \"If this number is zero, or is for a surrogate, or is greater than the maximum allowed code point\"\n // https://drafts.csswg.org/css-syntax/#maximum-allowed-code-point\n\n if (isSurrogate || codePoint === 0x0000 || codePoint > 0x10FFFF) {\n return [\"\\uFFFD\", hex.length + (spaceTerminated ? 1 : 0)];\n }\n\n return [String.fromCodePoint(codePoint), hex.length + (spaceTerminated ? 1 : 0)];\n}\n\nvar CONTAINS_ESCAPE = /\\\\/;\n\nfunction unesc(str) {\n var needToProcess = CONTAINS_ESCAPE.test(str);\n\n if (!needToProcess) {\n return str;\n }\n\n var ret = \"\";\n\n for (var i = 0; i < str.length; i++) {\n if (str[i] === \"\\\\\") {\n var gobbled = gobbleHex(str.slice(i + 1, i + 7));\n\n if (gobbled !== undefined) {\n ret += gobbled[0];\n i += gobbled[1];\n continue;\n } // Retain a pair of \\\\ if double escaped `\\\\\\\\`\n // https://github.com/postcss/postcss-selector-parser/commit/268c9a7656fb53f543dc620aa5b73a30ec3ff20e\n\n\n if (str[i + 1] === \"\\\\\") {\n ret += \"\\\\\";\n i++;\n continue;\n } // if \\\\ is at the end of the string retain it\n // https://github.com/postcss/postcss-selector-parser/commit/01a6b346e3612ce1ab20219acc26abdc259ccefb\n\n\n if (str.length === i + 1) {\n ret += str[i];\n }\n\n continue;\n }\n\n ret += str[i];\n }\n\n return ret;\n}\n\nmodule.exports = exports.default;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\")):\"function\"==typeof define&&define.amd?define([\"react\"],t):\"object\"==typeof exports?exports.ReactPaginate=t(require(\"react\")):e.ReactPaginate=t(e.React)}(this,(function(__WEBPACK_EXTERNAL_MODULE__98__){return(()=>{var __webpack_modules__={759:(e,t,a)=>{\"use strict\";a.d(t,{Z:()=>c});var r,o=a(98),_=a.n(o),n=a(697),i=a.n(n);function s(){return s=Object.assign||function(e){for(var t=1;t{\"use strict\";a.d(t,{Z:()=>c});var r,o=a(98),_=a.n(o),n=a(697),i=a.n(n);function s(){return s=Object.assign||function(e){for(var t=1;t{\"use strict\";__webpack_require__.d(__webpack_exports__,{Z:()=>PaginationBoxView});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(98),react__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__),prop_types__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(697),prop_types__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__),_PageView__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(770),_BreakView__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(759),_utils__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(923),enterModule;function _typeof(e){return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},_typeof(e)}function _extends(){return _extends=Object.assign||function(e){for(var t=1;t0?a-1:void 0,{isPrevious:!0})})),_defineProperty(_assertThisInitialized(t),\"handleNextPage\",(function(e){var a=t.state.selected,r=t.props.pageCount;t.handleClick(e,null,a3&&void 0!==arguments[3]?arguments[3]:{},_=o.isPrevious,n=void 0!==_&&_,i=o.isNext,s=void 0!==i&&i,l=o.isBreak,p=void 0!==l&&l,c=o.isActive,d=void 0!==c&&c;e.preventDefault?e.preventDefault():e.returnValue=!1;var u=t.state.selected,f=t.props.onClick,g=r;if(f){var P=f({index:a,selected:u,nextSelectedPage:r,event:e,isPrevious:n,isNext:s,isBreak:p,isActive:d});if(!1===P)return;Number.isInteger(P)&&(g=P)}void 0!==g&&t.handlePageChange(g)})),_defineProperty(_assertThisInitialized(t),\"handleBreakClick\",(function(e,a){var r=t.state.selected;t.handleClick(a,e,ro-r/2?c=r-(d=o-l):lo-_||u>=l-c&&u<=l+(0===l&&r>1?d-1:d)?P.push({type:\"page\",index:u,display:g(u)}):n&&P.length>0&&P[P.length-1].display!==f&&(r>0||_>0)&&(f=react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_BreakView__WEBPACK_IMPORTED_MODULE_3__.Z,{key:u,breakLabel:n,breakClassName:i,breakLinkClassName:s,breakHandler:t.handleBreakClick.bind(null,u),getEventListener:t.getEventListener}),P.push({type:\"break\",index:u,display:f}))}P.forEach((function(t,a){var r=t;\"break\"===t.type&&P[a-1]&&\"page\"===P[a-1].type&&P[a+1]&&\"page\"===P[a+1].type&&P[a+1].index-P[a-1].index<=2&&(r={type:\"page\",index:t.index,display:g(t.index)}),e.push(r.display)}))}return e})),void 0!==e.initialPage&&void 0!==e.forcePage&&console.warn(\"(react-paginate): Both initialPage (\".concat(e.initialPage,\") and forcePage (\").concat(e.forcePage,\") props are provided, which is discouraged.\")+\" Use exclusively forcePage prop for a controlled component.\\nSee https://reactjs.org/docs/forms.html#controlled-components\"),a=e.initialPage?e.initialPage:e.forcePage?e.forcePage:0,t.state={selected:a},t}return _createClass(PaginationBoxView,[{key:\"componentDidMount\",value:function(){var e=this.props,t=e.initialPage,a=e.disableInitialCallback,r=e.extraAriaContext,o=e.pageCount,_=e.forcePage;void 0===t||a||this.callCallback(t),r&&console.warn(\"DEPRECATED (react-paginate): The extraAriaContext prop is deprecated. You should now use the ariaLabelBuilder instead.\"),Number.isInteger(o)||console.warn(\"(react-paginate): The pageCount prop value provided is not an integer (\".concat(o,\"). Did you forget a Math.ceil()?\")),void 0!==t&&t>o-1&&console.warn(\"(react-paginate): The initialPage prop provided is greater than the maximum page index from pageCount prop (\".concat(t,\" > \").concat(o-1,\").\")),void 0!==_&&_>o-1&&console.warn(\"(react-paginate): The forcePage prop provided is greater than the maximum page index from pageCount prop (\".concat(_,\" > \").concat(o-1,\").\"))}},{key:\"componentDidUpdate\",value:function(e){void 0!==this.props.forcePage&&this.props.forcePage!==e.forcePage&&(this.props.forcePage>this.props.pageCount-1&&console.warn(\"(react-paginate): The forcePage prop provided is greater than the maximum page index from pageCount prop (\".concat(this.props.forcePage,\" > \").concat(this.props.pageCount-1,\").\")),this.setState({selected:this.props.forcePage})),Number.isInteger(e.pageCount)&&!Number.isInteger(this.props.pageCount)&&console.warn(\"(react-paginate): The pageCount prop value provided is not an integer (\".concat(this.props.pageCount,\"). Did you forget a Math.ceil()?\"))}},{key:\"getForwardJump\",value:function(){var e=this.state.selected,t=this.props,a=t.pageCount,r=e+t.pageRangeDisplayed;return r>=a?a-1:r}},{key:\"getBackwardJump\",value:function(){var e=this.state.selected-this.props.pageRangeDisplayed;return e<0?0:e}},{key:\"getElementHref\",value:function(e){var t=this.props,a=t.hrefBuilder,r=t.pageCount,o=t.hrefAllControls;if(a)return o||e>=0&&e=0&&e{\"use strict\";a.r(t),a.d(t,{default:()=>n});var r,o=a(214);e=a.hmd(e),(r=\"undefined\"!=typeof reactHotLoaderGlobal?reactHotLoaderGlobal.enterModule:void 0)&&r(e),\"undefined\"!=typeof reactHotLoaderGlobal&&reactHotLoaderGlobal.default.signature;var _=o.Z;const n=_;var i,s;(i=\"undefined\"!=typeof reactHotLoaderGlobal?reactHotLoaderGlobal.default:void 0)&&i.register(_,\"default\",\"/home/yoan/work/oss/react-paginate/react_components/index.js\"),(s=\"undefined\"!=typeof reactHotLoaderGlobal?reactHotLoaderGlobal.leaveModule:void 0)&&s(e)},923:(e,t,a)=>{\"use strict\";var r,o,_;function n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\";return null!=e?e:t}a.d(t,{m:()=>n}),e=a.hmd(e),(r=\"undefined\"!=typeof reactHotLoaderGlobal?reactHotLoaderGlobal.enterModule:void 0)&&r(e),\"undefined\"!=typeof reactHotLoaderGlobal&&reactHotLoaderGlobal.default.signature,(o=\"undefined\"!=typeof reactHotLoaderGlobal?reactHotLoaderGlobal.default:void 0)&&o.register(n,\"classNameIfDefined\",\"/home/yoan/work/oss/react-paginate/react_components/utils.js\"),(_=\"undefined\"!=typeof reactHotLoaderGlobal?reactHotLoaderGlobal.leaveModule:void 0)&&_(e)},703:(e,t,a)=>{\"use strict\";var r=a(414);function o(){}function _(){}_.resetWarningCache=o,e.exports=function(){function e(e,t,a,o,_,n){if(n!==r){var i=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\");throw i.name=\"Invariant Violation\",i}}function t(){return e}e.isRequired=e;var a={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:_,resetWarningCache:o};return a.PropTypes=a,a}},697:(e,t,a)=>{e.exports=a(703)()},414:e=>{\"use strict\";e.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"},98:e=>{\"use strict\";e.exports=__WEBPACK_EXTERNAL_MODULE__98__}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var a=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e](a,a.exports,__webpack_require__),a.loaded=!0,a.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var a in t)__webpack_require__.o(t,a)&&!__webpack_require__.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},__webpack_require__.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,\"exports\",{enumerable:!0,set:()=>{throw new Error(\"ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: \"+e.id)}}),e),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var __webpack_exports__=__webpack_require__(351);return __webpack_exports__})()}));\n//# sourceMappingURL=react-paginate.js.map","import createIcon from './hocs/createIcon';\nvar EmailIcon = createIcon({\n color: '#7f7f7f',\n networkName: 'email',\n path: 'M17,22v20h30V22H17z M41.1,25L32,32.1L22.9,25H41.1z M20,39V26.6l12,9.3l12-9.3V39H20z',\n});\nexport default EmailIcon;\n","import objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\nfunction emailLink(url, _a) {\n var subject = _a.subject, body = _a.body, separator = _a.separator;\n return 'mailto:' + objectToGetParams({ subject: subject, body: body ? body + separator + url : url });\n}\nvar EmailShareButton = createShareButton('email', emailLink, function (props) { return ({\n subject: props.subject,\n body: props.body,\n separator: props.separator || ' ',\n}); }, {\n openShareDialogOnClick: false,\n onClick: function (_, link) {\n window.location.href = link;\n },\n});\nexport default EmailShareButton;\n","import createIcon from './hocs/createIcon';\nvar FacebookIcon = createIcon({\n color: '#3b5998',\n networkName: 'facebook',\n path: 'M34.1,47V33.3h4.6l0.7-5.3h-5.3v-3.4c0-1.5,0.4-2.6,2.6-2.6l2.8,0v-4.8c-0.5-0.1-2.2-0.2-4.1-0.2 c-4.1,0-6.9,2.5-6.9,7V28H24v5.3h4.6V47H34.1z',\n});\nexport default FacebookIcon;\n","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\nfunction facebookLink(url, _a) {\n var quote = _a.quote, hashtag = _a.hashtag;\n assert(url, 'facebook.url');\n return ('https://www.facebook.com/sharer/sharer.php' +\n objectToGetParams({\n u: url,\n quote: quote,\n hashtag: hashtag,\n }));\n}\nvar FacebookShareButton = createShareButton('facebook', facebookLink, function (props) { return ({\n quote: props.quote,\n hashtag: props.hashtag,\n}); }, {\n windowWidth: 550,\n windowHeight: 400,\n});\nexport default FacebookShareButton;\n","import createIcon from './hocs/createIcon';\nvar WhatsappIcon = createIcon({\n color: '#25D366',\n networkName: 'whatsapp',\n path: 'm42.32286,33.93287c-0.5178,-0.2589 -3.04726,-1.49644 -3.52105,-1.66732c-0.4712,-0.17346 -0.81554,-0.2589 -1.15987,0.2589c-0.34175,0.51004 -1.33075,1.66474 -1.63108,2.00648c-0.30032,0.33658 -0.60064,0.36247 -1.11327,0.12945c-0.5178,-0.2589 -2.17994,-0.80259 -4.14759,-2.56312c-1.53269,-1.37217 -2.56312,-3.05503 -2.86603,-3.57283c-0.30033,-0.5178 -0.03366,-0.80259 0.22524,-1.06149c0.23301,-0.23301 0.5178,-0.59547 0.7767,-0.90616c0.25372,-0.31068 0.33657,-0.5178 0.51262,-0.85437c0.17088,-0.36246 0.08544,-0.64725 -0.04402,-0.90615c-0.12945,-0.2589 -1.15987,-2.79613 -1.58964,-3.80584c-0.41424,-1.00971 -0.84142,-0.88027 -1.15987,-0.88027c-0.29773,-0.02588 -0.64208,-0.02588 -0.98382,-0.02588c-0.34693,0 -0.90616,0.12945 -1.37736,0.62136c-0.4712,0.5178 -1.80194,1.76053 -1.80194,4.27186c0,2.51134 1.84596,4.945 2.10227,5.30747c0.2589,0.33657 3.63497,5.51458 8.80262,7.74113c1.23237,0.5178 2.1903,0.82848 2.94111,1.08738c1.23237,0.38836 2.35599,0.33657 3.24402,0.20712c0.99159,-0.15534 3.04985,-1.24272 3.47963,-2.45956c0.44013,-1.21683 0.44013,-2.22654 0.31068,-2.45955c-0.12945,-0.23301 -0.46601,-0.36247 -0.98382,-0.59548m-9.40068,12.84407l-0.02589,0c-3.05503,0 -6.08417,-0.82849 -8.72495,-2.38189l-0.62136,-0.37023l-6.47252,1.68286l1.73463,-6.29129l-0.41424,-0.64725c-1.70875,-2.71846 -2.6149,-5.85116 -2.6149,-9.07706c0,-9.39809 7.68934,-17.06155 17.15993,-17.06155c4.58253,0 8.88029,1.78642 12.11655,5.02268c3.23625,3.21036 5.02267,7.50812 5.02267,12.06476c-0.0078,9.3981 -7.69712,17.06155 -17.14699,17.06155m14.58906,-31.58846c-3.93529,-3.80584 -9.1133,-5.95471 -14.62789,-5.95471c-11.36055,0 -20.60848,9.2065 -20.61625,20.52564c0,3.61684 0.94757,7.14565 2.75211,10.26282l-2.92557,10.63564l10.93337,-2.85309c3.0136,1.63108 6.4052,2.4958 9.85634,2.49839l0.01037,0c11.36574,0 20.61884,-9.2091 20.62403,-20.53082c0,-5.48093 -2.14111,-10.64081 -6.03239,-14.51915',\n});\nexport default WhatsappIcon;\n","import assert from './utils/assert';\nimport objectToGetParams from './utils/objectToGetParams';\nimport createShareButton from './hocs/createShareButton';\nfunction isMobileOrTablet() {\n return /(android|iphone|ipad|mobile)/i.test(navigator.userAgent);\n}\nfunction whatsappLink(url, _a) {\n var title = _a.title, separator = _a.separator;\n assert(url, 'whatsapp.url');\n return ('https://' +\n (isMobileOrTablet() ? 'api' : 'web') +\n '.whatsapp.com/send' +\n objectToGetParams({\n text: title ? title + separator + url : url,\n }));\n}\nvar WhatsappShareButton = createShareButton('whatsapp', whatsappLink, function (props) { return ({\n title: props.title,\n separator: props.separator || ' ',\n}); }, {\n windowWidth: 550,\n windowHeight: 400,\n});\nexport default WhatsappShareButton;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nexport default function createIcon(iconConfig) {\n var Icon = function (_a) {\n var bgStyle = _a.bgStyle, borderRadius = _a.borderRadius, iconFillColor = _a.iconFillColor, round = _a.round, size = _a.size, rest = __rest(_a, [\"bgStyle\", \"borderRadius\", \"iconFillColor\", \"round\", \"size\"]);\n return (React.createElement(\"svg\", __assign({ viewBox: \"0 0 64 64\", width: size, height: size }, rest),\n round ? (React.createElement(\"circle\", { cx: \"32\", cy: \"32\", r: \"31\", fill: iconConfig.color, style: bgStyle })) : (React.createElement(\"rect\", { width: \"64\", height: \"64\", rx: borderRadius, ry: borderRadius, fill: iconConfig.color, style: bgStyle })),\n React.createElement(\"path\", { d: iconConfig.path, fill: iconFillColor })));\n };\n Icon.defaultProps = {\n bgStyle: {},\n borderRadius: 0,\n iconFillColor: 'white',\n size: 64,\n };\n return Icon;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { Component } from 'react';\nimport cx from 'classnames';\nvar isPromise = function (obj) {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n};\nvar getBoxPositionOnWindowCenter = function (width, height) { return ({\n left: window.outerWidth / 2 + (window.screenX || window.screenLeft || 0) - width / 2,\n top: window.outerHeight / 2 + (window.screenY || window.screenTop || 0) - height / 2,\n}); };\nvar getBoxPositionOnScreenCenter = function (width, height) { return ({\n top: (window.screen.height - height) / 2,\n left: (window.screen.width - width) / 2,\n}); };\nfunction windowOpen(url, _a, onClose) {\n var height = _a.height, width = _a.width, configRest = __rest(_a, [\"height\", \"width\"]);\n var config = __assign({ height: height,\n width: width, location: 'no', toolbar: 'no', status: 'no', directories: 'no', menubar: 'no', scrollbars: 'yes', resizable: 'no', centerscreen: 'yes', chrome: 'yes' }, configRest);\n var shareDialog = window.open(url, '', Object.keys(config)\n .map(function (key) { return key + \"=\" + config[key]; })\n .join(', '));\n if (onClose) {\n var interval_1 = window.setInterval(function () {\n try {\n if (shareDialog === null || shareDialog.closed) {\n window.clearInterval(interval_1);\n onClose(shareDialog);\n }\n }\n catch (e) {\n /* eslint-disable no-console */\n console.error(e);\n /* eslint-enable no-console */\n }\n }, 1000);\n }\n return shareDialog;\n}\nvar ShareButton = /** @class */ (function (_super) {\n __extends(ShareButton, _super);\n function ShareButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.openShareDialog = function (link) {\n var _a = _this.props, onShareWindowClose = _a.onShareWindowClose, _b = _a.windowHeight, windowHeight = _b === void 0 ? 400 : _b, _c = _a.windowPosition, windowPosition = _c === void 0 ? 'windowCenter' : _c, _d = _a.windowWidth, windowWidth = _d === void 0 ? 550 : _d;\n var windowConfig = __assign({ height: windowHeight, width: windowWidth }, (windowPosition === 'windowCenter'\n ? getBoxPositionOnWindowCenter(windowWidth, windowHeight)\n : getBoxPositionOnScreenCenter(windowWidth, windowHeight)));\n windowOpen(link, windowConfig, onShareWindowClose);\n };\n _this.handleClick = function (event) { return __awaiter(_this, void 0, void 0, function () {\n var _a, beforeOnClick, disabled, networkLink, onClick, url, openShareDialogOnClick, opts, link, returnVal;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.props, beforeOnClick = _a.beforeOnClick, disabled = _a.disabled, networkLink = _a.networkLink, onClick = _a.onClick, url = _a.url, openShareDialogOnClick = _a.openShareDialogOnClick, opts = _a.opts;\n link = networkLink(url, opts);\n if (disabled) {\n return [2 /*return*/];\n }\n event.preventDefault();\n if (!beforeOnClick) return [3 /*break*/, 2];\n returnVal = beforeOnClick();\n if (!isPromise(returnVal)) return [3 /*break*/, 2];\n return [4 /*yield*/, returnVal];\n case 1:\n _b.sent();\n _b.label = 2;\n case 2:\n if (openShareDialogOnClick) {\n this.openShareDialog(link);\n }\n if (onClick) {\n onClick(event, link);\n }\n return [2 /*return*/];\n }\n });\n }); };\n return _this;\n }\n ShareButton.prototype.render = function () {\n var _a = this.props, beforeOnClick = _a.beforeOnClick, children = _a.children, className = _a.className, disabled = _a.disabled, disabledStyle = _a.disabledStyle, forwardedRef = _a.forwardedRef, networkLink = _a.networkLink, networkName = _a.networkName, onShareWindowClose = _a.onShareWindowClose, openShareDialogOnClick = _a.openShareDialogOnClick, opts = _a.opts, resetButtonStyle = _a.resetButtonStyle, style = _a.style, url = _a.url, windowHeight = _a.windowHeight, windowPosition = _a.windowPosition, windowWidth = _a.windowWidth, rest = __rest(_a, [\"beforeOnClick\", \"children\", \"className\", \"disabled\", \"disabledStyle\", \"forwardedRef\", \"networkLink\", \"networkName\", \"onShareWindowClose\", \"openShareDialogOnClick\", \"opts\", \"resetButtonStyle\", \"style\", \"url\", \"windowHeight\", \"windowPosition\", \"windowWidth\"]);\n var newClassName = cx('react-share__ShareButton', {\n 'react-share__ShareButton--disabled': !!disabled,\n disabled: !!disabled,\n }, className);\n var newStyle = resetButtonStyle\n ? __assign(__assign({ backgroundColor: 'transparent', border: 'none', padding: 0, font: 'inherit', color: 'inherit', cursor: 'pointer' }, style), (disabled && disabledStyle)) : __assign(__assign({}, style), (disabled && disabledStyle));\n return (React.createElement(\"button\", __assign({}, rest, { \"aria-label\": rest['aria-label'] || networkName, className: newClassName, onClick: this.handleClick, ref: forwardedRef, style: newStyle }), children));\n };\n ShareButton.defaultProps = {\n disabledStyle: { opacity: 0.6 },\n openShareDialogOnClick: true,\n resetButtonStyle: true,\n };\n return ShareButton;\n}(Component));\nexport default ShareButton;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React, { forwardRef } from 'react';\nimport ShareButton from '../ShareButton';\nfunction createShareButton(networkName, link, optsMap, defaultProps) {\n function CreatedButton(props, ref) {\n var opts = optsMap(props);\n var passedProps = __assign({}, props);\n // remove keys from passed props that are passed as opts\n var optsKeys = Object.keys(opts);\n optsKeys.forEach(function (key) {\n delete passedProps[key];\n });\n return (React.createElement(ShareButton, __assign({}, defaultProps, passedProps, { forwardedRef: ref, networkName: networkName, networkLink: link, opts: optsMap(props) })));\n }\n CreatedButton.displayName = \"ShareButton-\" + networkName;\n return forwardRef(CreatedButton);\n}\nexport default createShareButton;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AssertionError = /** @class */ (function (_super) {\n __extends(AssertionError, _super);\n function AssertionError(message) {\n var _this = _super.call(this, message) || this;\n _this.name = 'AssertionError';\n return _this;\n }\n return AssertionError;\n}(Error));\nexport default function assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n}\n","export default function objectToGetParams(object) {\n var params = Object.entries(object)\n .filter(function (_a) {\n var value = _a[1];\n return value !== undefined && value !== null;\n })\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(String(value));\n });\n return params.length > 0 ? \"?\" + params.join('&') : '';\n}\n","import * as React from 'react';\nimport { useLayoutEffect, useEffect, isValidElement, cloneElement, createContext, forwardRef, memo, useRef, useState, useCallback, useMemo } from 'react';\nimport fbWarning from 'warning';\n\n/* eslint-disable no-restricted-globals, eqeqeq */\n\n/**\n * React currently throws a warning when using useLayoutEffect on the server.\n * To get around it, we can conditionally useEffect on the server (no-op) and\n * useLayoutEffect in the browser. We occasionally need useLayoutEffect to\n * ensure we don't get a render flash for certain operations, but we may also\n * need affected components to render on the server. One example is when setting\n * a component's descendants to retrieve their index values.\n *\n * Important to note that using this hook as an escape hatch will break the\n * eslint dependency warnings unless you rename the import to `useLayoutEffect`.\n * Use sparingly only when the effect won't effect the rendered HTML to avoid\n * any server/client mismatch.\n *\n * If a useLayoutEffect is needed and the result would create a mismatch, it's\n * likely that the component in question shouldn't be rendered on the server at\n * all, so a better approach would be to lazily render those in a parent\n * component after client-side hydration.\n *\n * TODO: We are calling useLayoutEffect in a couple of places that will likely\n * cause some issues for SSR users, whether the warning shows or not. Audit and\n * fix these.\n *\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\n *\n * @param effect\n * @param deps\n */\nvar useIsomorphicLayoutEffect = /*#__PURE__*/canUseDOM() ? useLayoutEffect : useEffect;\nvar checkedPkgs = {};\n/**\n * Copy of Facebook's warning package.\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 paths.\n * Removing the logging code for production environments will keep the same\n * logic and follow the same code paths.\n *\n * @see https://github.com/BerkeleyTrue/warning/blob/master/warning.js\n */\n\nvar warning = fbWarning;\n/**\n * When in dev mode, checks that styles for a given @reach package are loaded.\n *\n * @param packageName Name of the package to check.\n * @example checkStyles(\"dialog\") will check for styles for @reach/dialog\n */\n\nvar checkStyles = noop;\n\nif (process.env.NODE_ENV !== \"production\") {\n // In CJS files, process.env.NODE_ENV is stripped from our build, but we need\n // it to prevent style checks from clogging up user logs while testing.\n // This is a workaround until we can tweak the build a bit to accommodate.\n var _ref = typeof process !== \"undefined\" ? process : {\n env: {\n NODE_ENV: \"development\"\n }\n },\n env = _ref.env;\n\n checkStyles = function checkStyles(packageName) {\n // only check once per package\n if (checkedPkgs[packageName]) return;\n checkedPkgs[packageName] = true;\n\n if (env.NODE_ENV !== \"test\" && parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--reach-\" + packageName), 10) !== 1) {\n console.warn(\"@reach/\" + packageName + \" styles not found. If you are using a bundler like webpack or parcel include this in the entry file of your app before any of your own styles:\\n\\n import \\\"@reach/\" + packageName + \"/styles.css\\\";\\n\\n Otherwise you'll need to include them some other way:\\n\\n \\n\\n For more information visit https://ui.reach.tech/styling.\\n \");\n }\n };\n}\n/**\n * Ponyfill for the global object in some environments.\n *\n * @link https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\n\nvar ponyfillGlobal = typeof window != \"undefined\" && window.Math == Math ? window : typeof self != \"undefined\" && self.Math == Math ? self :\n/*#__PURE__*/\n// eslint-disable-next-line no-new-func\nFunction(\"return this\")();\n/**\n * Passes or assigns an arbitrary value to a ref function or object.\n *\n * @param ref\n * @param value\n */\n\nfunction assignRef(ref, value) {\n if (ref == null) return;\n\n if (isFunction(ref)) {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error(\"Cannot assign value \\\"\" + value + \"\\\" to ref \\\"\" + ref + \"\\\"\");\n }\n }\n}\n/**\n * Checks true|\"true\" vs false|\"false\"\n *\n * @param value\n */\n\nfunction boolOrBoolString(value) {\n return value === \"true\" ? true : isBoolean(value) ? value : false;\n}\nfunction canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\n/**\n * Type-safe clone element\n *\n * @param element\n * @param props\n * @param children\n */\n\nfunction cloneValidElement(element, props) {\n for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n children[_key - 2] = arguments[_key];\n }\n\n return /*#__PURE__*/isValidElement(element) ? cloneElement.apply(React, [element, props].concat(children)) : element;\n}\nfunction createNamedContext(name, defaultValue) {\n var Ctx = /*#__PURE__*/createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}\n/**\n * This is a hack for sure. The thing is, getting a component to intelligently\n * infer props based on a component or JSX string passed into an `as` prop is\n * kind of a huge pain. Getting it to work and satisfy the constraints of\n * `forwardRef` seems dang near impossible. To avoid needing to do this awkward\n * type song-and-dance every time we want to forward a ref into a component\n * that accepts an `as` prop, we abstract all of that mess to this function for\n * the time time being.\n */\n\nfunction forwardRefWithAs(render) {\n return /*#__PURE__*/forwardRef(render);\n}\nfunction memoWithAs(Component, propsAreEqual) {\n return /*#__PURE__*/memo(Component, propsAreEqual);\n}\n/**\n * Get the size of the working document minus the scrollbar offset.\n *\n * @param element\n */\n\nfunction getDocumentDimensions(element) {\n var _ownerDocument$docume, _ownerDocument$docume2;\n\n var ownerDocument = getOwnerDocument(element);\n var ownerWindow = ownerDocument.defaultView || window;\n\n if (!ownerDocument) {\n return {\n width: 0,\n height: 0\n };\n }\n\n return {\n width: (_ownerDocument$docume = ownerDocument.documentElement.clientWidth) != null ? _ownerDocument$docume : ownerWindow.innerWidth,\n height: (_ownerDocument$docume2 = ownerDocument.documentElement.clientHeight) != null ? _ownerDocument$docume2 : ownerWindow.innerHeight\n };\n}\n/**\n * Get the scoll position of the global window object relative to a given node.\n *\n * @param element\n */\n\nfunction getScrollPosition(element) {\n var ownerDocument = getOwnerDocument(element);\n var ownerWindow = ownerDocument.defaultView || window;\n\n if (!ownerDocument) {\n return {\n scrollX: 0,\n scrollY: 0\n };\n }\n\n return {\n scrollX: ownerWindow.scrollX,\n scrollY: ownerWindow.scrollY\n };\n}\n/**\n * Get a computed style value by property.\n *\n * @param element\n * @param styleProp\n */\n\nfunction getElementComputedStyle(element, styleProp) {\n var ownerDocument = getOwnerDocument(element);\n var ownerWindow = (ownerDocument == null ? void 0 : ownerDocument.defaultView) || window;\n\n if (ownerWindow) {\n return ownerWindow.getComputedStyle(element, null).getPropertyValue(styleProp);\n }\n\n return null;\n}\n/**\n * Get an element's owner document. Useful when components are used in iframes\n * or other environments like dev tools.\n *\n * @param element\n */\n\nfunction getOwnerDocument(element) {\n return canUseDOM() ? element ? element.ownerDocument : document : null;\n}\n/**\n * TODO: Remove in 1.0\n */\n\nfunction getOwnerWindow(element) {\n var ownerDocument = getOwnerDocument(element);\n return ownerDocument ? ownerDocument.defaultView || window : null;\n}\n/**\n * Get the scrollbar offset distance.\n *\n * TODO: Remove in 1.0 (we used this in public examples)\n */\n\nfunction getScrollbarOffset() {\n try {\n if (window.innerWidth > document.documentElement.clientWidth) {\n return window.innerWidth - document.documentElement.clientWidth;\n }\n } catch (err) {}\n\n return 0;\n}\n/**\n * Checks whether or not a value is a boolean.\n *\n * @param value\n */\n\nfunction isBoolean(value) {\n return typeof value === \"boolean\";\n}\n/**\n * Checks whether or not a value is a function.\n *\n * @param value\n */\n\nfunction isFunction(value) {\n return !!(value && {}.toString.call(value) == \"[object Function]\");\n}\n/**\n * Checks whether or not a value is a number.\n *\n * @param value\n */\n\nfunction isNumber(value) {\n return typeof value === \"number\" && !isNaN(value);\n}\n/**\n * Detects right clicks\n *\n * @param nativeEvent\n */\n\nfunction isRightClick(nativeEvent) {\n return \"which\" in nativeEvent ? nativeEvent.which === 3 : \"button\" in nativeEvent ? nativeEvent.button === 2 : false;\n}\n/**\n * Checks whether or not a value is a string.\n *\n * @param value\n */\n\nfunction isString(value) {\n return typeof value === \"string\";\n}\n/**\n * Joins strings to format IDs for compound components.\n *\n * @param args\n */\n\nfunction makeId() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args.filter(function (val) {\n return val != null;\n }).join(\"--\");\n}\n/**\n * No-op function.\n */\n\nfunction noop() {}\n/**\n * Convert our state strings for HTML data attributes.\n * No need for a fancy kebab-caser here, we know what our state strings are!\n *\n * @param state\n */\n\nfunction stateToAttributeString(state) {\n return String(state).replace(/([\\s_]+)/g, \"-\").toLowerCase();\n}\n/**\n * Check if a component is controlled or uncontrolled and return the correct\n * state value and setter accordingly. If the component state is controlled by\n * the app, the setter is a noop.\n *\n * @param controlledValue\n * @param defaultValue\n */\n\nfunction useControlledState(controlledValue, defaultValue) {\n var controlledRef = useRef(controlledValue != null);\n\n var _React$useState = useState(defaultValue),\n valueState = _React$useState[0],\n setValue = _React$useState[1];\n\n var set = useCallback(function (n) {\n if (!controlledRef.current) {\n setValue(n);\n }\n }, []);\n return [controlledRef.current ? controlledValue : valueState, set];\n}\n/**\n * Logs a warning in dev mode when a component switches from controlled to\n * uncontrolled, or vice versa\n *\n * A single prop should typically be used to determine whether or not a\n * component is controlled or not.\n *\n * @param controlledValue\n * @param controlledPropName\n * @param componentName\n */\n\nvar useControlledSwitchWarning = noop;\n\nif (process.env.NODE_ENV !== \"production\") {\n useControlledSwitchWarning = function useControlledSwitchWarning(controlledValue, controlledPropName, componentName) {\n var controlledRef = useRef(controlledValue != null);\n var nameCache = useRef({\n componentName: componentName,\n controlledPropName: controlledPropName\n });\n useEffect(function () {\n nameCache.current = {\n componentName: componentName,\n controlledPropName: controlledPropName\n };\n }, [componentName, controlledPropName]);\n useEffect(function () {\n var wasControlled = controlledRef.current;\n var _nameCache$current = nameCache.current,\n componentName = _nameCache$current.componentName,\n controlledPropName = _nameCache$current.controlledPropName;\n var isControlled = controlledValue != null;\n\n if (wasControlled !== isControlled) {\n console.error(\"A component is changing an \" + (wasControlled ? \"\" : \"un\") + \"controlled `\" + controlledPropName + \"` state of \" + componentName + \" to be \" + (wasControlled ? \"un\" : \"\") + \"controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled \" + componentName + \" element for the lifetime of the component.\\nMore info: https://fb.me/react-controlled-components\");\n }\n }, [controlledValue]);\n };\n}\nvar useCheckStyles = noop;\n\nif (process.env.NODE_ENV !== \"production\") {\n useCheckStyles = function useCheckStyles(pkg) {\n var name = useRef(pkg);\n useEffect(function () {\n return void (name.current = pkg);\n }, [pkg]);\n useEffect(function () {\n return checkStyles(name.current);\n }, []);\n };\n}\n/**\n * React hook for creating a value exactly once.\n * @see https://github.com/Andarist/use-constant\n */\n\nfunction useConstant(fn) {\n var ref = useRef();\n\n if (!ref.current) {\n ref.current = {\n v: fn()\n };\n }\n\n return ref.current.v;\n}\n/**\n * @param callback\n */\n\nfunction useEventCallback(callback) {\n var ref = useRef(callback);\n useIsomorphicLayoutEffect(function () {\n ref.current = callback;\n });\n return useCallback(function (event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return ref.current.apply(ref, [event].concat(args));\n }, []);\n}\nfunction useLazyRef(fn) {\n var ref = useRef({\n __internalSet: true\n });\n\n if (ref.current && ref.current.__internalSet === true) {\n ref.current = fn();\n }\n\n return ref;\n}\n/**\n * TODO: Remove in 1.0\n * @alias useStableCallback\n * @param callback\n */\n\nvar useCallbackProp = useStableCallback;\n/**\n * Adds a DOM event listener\n *\n * @param eventName\n * @param listener\n * @param element\n */\n\nfunction useEventListener(eventName, listener, element) {\n if (element === void 0) {\n element = window;\n }\n\n var savedHandler = useRef(listener);\n useEffect(function () {\n savedHandler.current = listener;\n }, [listener]);\n useEffect(function () {\n var isSupported = element && element.addEventListener;\n\n if (!isSupported) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"Event listener not supported on the element provided\");\n }\n\n return;\n }\n\n function eventListener(event) {\n savedHandler.current(event);\n }\n\n element.addEventListener(eventName, eventListener);\n return function () {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n}\n/**\n * Detect when focus changes in our document.\n *\n * @param handleChange\n * @param when\n * @param ownerDocument\n */\n\nfunction useFocusChange(handleChange, when, ownerDocument) {\n if (handleChange === void 0) {\n handleChange = console.log;\n }\n\n if (when === void 0) {\n when = \"focus\";\n }\n\n if (ownerDocument === void 0) {\n ownerDocument = document;\n }\n\n var lastActiveElement = useRef(ownerDocument.activeElement);\n useEffect(function () {\n lastActiveElement.current = ownerDocument.activeElement;\n\n function onChange(event) {\n if (lastActiveElement.current !== ownerDocument.activeElement) {\n handleChange(ownerDocument.activeElement, lastActiveElement.current, event);\n lastActiveElement.current = ownerDocument.activeElement;\n }\n }\n\n ownerDocument.addEventListener(when, onChange, true);\n return function () {\n ownerDocument.removeEventListener(when, onChange);\n };\n }, [when, handleChange, ownerDocument]);\n}\n/**\n * Forces a re-render, similar to `forceUpdate` in class components.\n */\n\nfunction useForceUpdate() {\n var _React$useState2 = useState(Object.create(null)),\n dispatch = _React$useState2[1];\n\n return useCallback(function () {\n dispatch(Object.create(null));\n }, []);\n}\n/**\n * Passes or assigns a value to multiple refs (typically a DOM node). Useful for\n * dealing with components that need an explicit ref for DOM calculations but\n * also forwards refs assigned by an app.\n *\n * @param refs Refs to fork\n */\n\nfunction useForkedRef() {\n for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n refs[_key4] = arguments[_key4];\n }\n\n return useMemo(function () {\n if (refs.every(function (ref) {\n return ref == null;\n })) {\n return null;\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n assignRef(ref, node);\n });\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [].concat(refs));\n}\n/**\n * Returns the previous value of a reference after a component update.\n *\n * @param value\n */\n\nfunction usePrevious(value) {\n var ref = useRef(null);\n useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n/**\n * Converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop and exposed as a stable function to avoid executing effects when\n * passed as a dependency.\n */\n\nfunction useStableCallback(callback) {\n var callbackRef = useRef(callback);\n useEffect(function () {\n callbackRef.current = callback;\n }); // eslint-disable-next-line react-hooks/exhaustive-deps\n\n return useCallback(function () {\n callbackRef.current && callbackRef.current.apply(callbackRef, arguments);\n }, []);\n}\n/**\n * Call an effect after a component update, skipping the initial mount.\n *\n * @param effect Effect to call\n * @param deps Effect dependency list\n */\n\nfunction useUpdateEffect(effect, deps) {\n var mounted = useRef(false);\n useEffect(function () {\n if (mounted.current) {\n effect();\n } else {\n mounted.current = true;\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, deps);\n}\n/**\n * Just a lil state logger\n *\n * @param state\n * @param DEBUG\n */\n\nvar useStateLogger = noop;\n\nif (process.env.NODE_ENV !== \"production\") {\n useStateLogger = function useStateLogger(state, DEBUG) {\n if (DEBUG === void 0) {\n DEBUG = false;\n }\n\n var debugRef = useRef(DEBUG);\n useEffect(function () {\n debugRef.current = DEBUG;\n }, [DEBUG]);\n useEffect(function () {\n if (debugRef.current) {\n console.group(\"State Updated\");\n console.log(\"%c\" + state, \"font-weight: normal; font-size: 120%; font-style: italic;\");\n console.groupEnd();\n }\n }, [state]);\n };\n}\n/**\n * Wraps a lib-defined event handler and a user-defined event handler, returning\n * a single handler that allows a user to prevent lib-defined handlers from\n * firing.\n *\n * @param theirHandler User-supplied event handler\n * @param ourHandler Library-supplied event handler\n */\n\nfunction wrapEvent(theirHandler, ourHandler) {\n return function (event) {\n theirHandler && theirHandler(event);\n\n if (!event.defaultPrevented) {\n return ourHandler(event);\n }\n };\n} // Export types\n\nexport { assignRef, boolOrBoolString, canUseDOM, checkStyles, cloneValidElement, createNamedContext, forwardRefWithAs, getDocumentDimensions, getElementComputedStyle, getOwnerDocument, getOwnerWindow, getScrollPosition, getScrollbarOffset, isBoolean, isFunction, isNumber, isRightClick, isString, makeId, memoWithAs, noop, ponyfillGlobal, stateToAttributeString, useCallbackProp, useCheckStyles, useConstant, useControlledState, useControlledSwitchWarning, useEventCallback, useEventListener, useFocusChange, useForceUpdate, useForkedRef, useIsomorphicLayoutEffect, useLazyRef, usePrevious, useStableCallback, useStateLogger, useUpdateEffect, warning, wrapEvent };\n","import { useRef, createElement } from 'react';\nimport { useForceUpdate, useIsomorphicLayoutEffect } from '@reach/utils';\nimport { createPortal } from 'react-dom';\n\n/**\n * Welcome to @reach/portal!\n *\n * Creates and appends a DOM node to the end of `document.body` and renders a\n * React tree into it. Useful for rendering a natural React element hierarchy\n * with a different DOM hierarchy to prevent parent styles from clipping or\n * hiding content (for popovers, dropdowns, and modals).\n *\n * @see Docs https://reach.tech/portal\n * @see Source https://github.com/reach/reach-ui/tree/main/packages/portal\n * @see React https://reactjs.org/docs/portals.html\n */\n/**\n * Portal\n *\n * @see Docs https://reach.tech/portal#portal\n */\n\nvar Portal = function Portal(_ref) {\n var children = _ref.children,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? \"reach-portal\" : _ref$type;\n var mountNode = useRef(null);\n var portalNode = useRef(null);\n var forceUpdate = useForceUpdate();\n useIsomorphicLayoutEffect(function () {\n // This ref may be null when a hot-loader replaces components on the page\n if (!mountNode.current) return; // It's possible that the content of the portal has, itself, been portaled.\n // In that case, it's important to append to the correct document element.\n\n var ownerDocument = mountNode.current.ownerDocument;\n portalNode.current = ownerDocument == null ? void 0 : ownerDocument.createElement(type);\n ownerDocument.body.appendChild(portalNode.current);\n forceUpdate();\n return function () {\n if (portalNode.current && portalNode.current.ownerDocument) {\n portalNode.current.ownerDocument.body.removeChild(portalNode.current);\n }\n };\n }, [type, forceUpdate]);\n return portalNode.current ? /*#__PURE__*/createPortal(children, portalNode.current) : /*#__PURE__*/createElement(\"span\", {\n ref: mountNode\n });\n};\n/**\n * @see Docs https://reach.tech/portal#portal-props\n */\n\n\nif (process.env.NODE_ENV !== \"production\") {\n Portal.displayName = \"Portal\";\n} ////////////////////////////////////////////////////////////////////////////////\n\nexport default Portal;\nexport { Portal };\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\n\nexport { __assign, __read, __rest, __spreadArray, __values };\n","var STATE_DELIMITER = '.';\nvar EMPTY_ACTIVITY_MAP = {};\nvar DEFAULT_GUARD_TYPE = 'xstate.guard';\nvar TARGETLESS_KEY = '';\n\nexport { DEFAULT_GUARD_TYPE, EMPTY_ACTIVITY_MAP, STATE_DELIMITER, TARGETLESS_KEY };\n","import { __values, __spreadArray, __read, __assign } from './_virtual/_tslib.js';\nimport { DEFAULT_GUARD_TYPE, TARGETLESS_KEY, STATE_DELIMITER } from './constants.js';\nimport { IS_PRODUCTION } from './environment.js';\n\nvar _a;\nfunction keys(value) {\n return Object.keys(value);\n}\nfunction matchesState(parentStateId, childStateId, delimiter) {\n if (delimiter === void 0) {\n delimiter = STATE_DELIMITER;\n }\n\n var parentStateValue = toStateValue(parentStateId, delimiter);\n var childStateValue = toStateValue(childStateId, delimiter);\n\n if (isString(childStateValue)) {\n if (isString(parentStateValue)) {\n return childStateValue === parentStateValue;\n } // Parent more specific than child\n\n\n return false;\n }\n\n if (isString(parentStateValue)) {\n return parentStateValue in childStateValue;\n }\n\n return Object.keys(parentStateValue).every(function (key) {\n if (!(key in childStateValue)) {\n return false;\n }\n\n return matchesState(parentStateValue[key], childStateValue[key]);\n });\n}\nfunction getEventType(event) {\n try {\n return isString(event) || typeof event === 'number' ? \"\".concat(event) : event.type;\n } catch (e) {\n throw new Error('Events must be strings or objects with a string event.type property.');\n }\n}\nfunction getActionType(action) {\n try {\n return isString(action) || typeof action === 'number' ? \"\".concat(action) : isFunction(action) ? action.name : action.type;\n } catch (e) {\n throw new Error('Actions must be strings or objects with a string action.type property.');\n }\n}\nfunction toStatePath(stateId, delimiter) {\n try {\n if (isArray(stateId)) {\n return stateId;\n }\n\n return stateId.toString().split(delimiter);\n } catch (e) {\n throw new Error(\"'\".concat(stateId, \"' is not a valid state path.\"));\n }\n}\nfunction isStateLike(state) {\n return typeof state === 'object' && 'value' in state && 'context' in state && 'event' in state && '_event' in state;\n}\nfunction toStateValue(stateValue, delimiter) {\n if (isStateLike(stateValue)) {\n return stateValue.value;\n }\n\n if (isArray(stateValue)) {\n return pathToStateValue(stateValue);\n }\n\n if (typeof stateValue !== 'string') {\n return stateValue;\n }\n\n var statePath = toStatePath(stateValue, delimiter);\n return pathToStateValue(statePath);\n}\nfunction pathToStateValue(statePath) {\n if (statePath.length === 1) {\n return statePath[0];\n }\n\n var value = {};\n var marker = value;\n\n for (var i = 0; i < statePath.length - 1; i++) {\n if (i === statePath.length - 2) {\n marker[statePath[i]] = statePath[i + 1];\n } else {\n marker[statePath[i]] = {};\n marker = marker[statePath[i]];\n }\n }\n\n return value;\n}\nfunction mapValues(collection, iteratee) {\n var result = {};\n var collectionKeys = Object.keys(collection);\n\n for (var i = 0; i < collectionKeys.length; i++) {\n var key = collectionKeys[i];\n result[key] = iteratee(collection[key], key, collection, i);\n }\n\n return result;\n}\nfunction mapFilterValues(collection, iteratee, predicate) {\n var e_1, _a;\n\n var result = {};\n\n try {\n for (var _b = __values(Object.keys(collection)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var item = collection[key];\n\n if (!predicate(item)) {\n continue;\n }\n\n result[key] = iteratee(item, key, collection);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return result;\n}\n/**\r\n * Retrieves a value at the given path.\r\n * @param props The deep path to the prop of the desired value\r\n */\n\nvar path = function (props) {\n return function (object) {\n var e_2, _a;\n\n var result = object;\n\n try {\n for (var props_1 = __values(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {\n var prop = props_1_1.value;\n result = result[prop];\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (props_1_1 && !props_1_1.done && (_a = props_1.return)) _a.call(props_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n return result;\n };\n};\n/**\r\n * Retrieves a value at the given path via the nested accessor prop.\r\n * @param props The deep path to the prop of the desired value\r\n */\n\nfunction nestedPath(props, accessorProp) {\n return function (object) {\n var e_3, _a;\n\n var result = object;\n\n try {\n for (var props_2 = __values(props), props_2_1 = props_2.next(); !props_2_1.done; props_2_1 = props_2.next()) {\n var prop = props_2_1.value;\n result = result[accessorProp][prop];\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (props_2_1 && !props_2_1.done && (_a = props_2.return)) _a.call(props_2);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n return result;\n };\n}\nfunction toStatePaths(stateValue) {\n if (!stateValue) {\n return [[]];\n }\n\n if (isString(stateValue)) {\n return [[stateValue]];\n }\n\n var result = flatten(Object.keys(stateValue).map(function (key) {\n var subStateValue = stateValue[key];\n\n if (typeof subStateValue !== 'string' && (!subStateValue || !Object.keys(subStateValue).length)) {\n return [[key]];\n }\n\n return toStatePaths(stateValue[key]).map(function (subPath) {\n return [key].concat(subPath);\n });\n }));\n return result;\n}\nfunction pathsToStateValue(paths) {\n var e_4, _a;\n\n var result = {};\n\n if (paths && paths.length === 1 && paths[0].length === 1) {\n return paths[0][0];\n }\n\n try {\n for (var paths_1 = __values(paths), paths_1_1 = paths_1.next(); !paths_1_1.done; paths_1_1 = paths_1.next()) {\n var currentPath = paths_1_1.value;\n var marker = result; // tslint:disable-next-line:prefer-for-of\n\n for (var i = 0; i < currentPath.length; i++) {\n var subPath = currentPath[i];\n\n if (i === currentPath.length - 2) {\n marker[subPath] = currentPath[i + 1];\n break;\n }\n\n marker[subPath] = marker[subPath] || {};\n marker = marker[subPath];\n }\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (paths_1_1 && !paths_1_1.done && (_a = paths_1.return)) _a.call(paths_1);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n return result;\n}\nfunction flatten(array) {\n var _a;\n\n return (_a = []).concat.apply(_a, __spreadArray([], __read(array), false));\n}\nfunction toArrayStrict(value) {\n if (isArray(value)) {\n return value;\n }\n\n return [value];\n}\nfunction toArray(value) {\n if (value === undefined) {\n return [];\n }\n\n return toArrayStrict(value);\n}\nfunction mapContext(mapper, context, _event) {\n var e_5, _a;\n\n if (isFunction(mapper)) {\n return mapper(context, _event.data);\n }\n\n var result = {};\n\n try {\n for (var _b = __values(Object.keys(mapper)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var subMapper = mapper[key];\n\n if (isFunction(subMapper)) {\n result[key] = subMapper(context, _event.data);\n } else {\n result[key] = subMapper;\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n return result;\n}\nfunction isBuiltInEvent(eventType) {\n return /^(done|error)\\./.test(eventType);\n}\nfunction isPromiseLike(value) {\n if (value instanceof Promise) {\n return true;\n } // Check if shape matches the Promise/A+ specification for a \"thenable\".\n\n\n if (value !== null && (isFunction(value) || typeof value === 'object') && isFunction(value.then)) {\n return true;\n }\n\n return false;\n}\nfunction isBehavior(value) {\n return value !== null && typeof value === 'object' && 'transition' in value && typeof value.transition === 'function';\n}\nfunction partition(items, predicate) {\n var e_6, _a;\n\n var _b = __read([[], []], 2),\n truthy = _b[0],\n falsy = _b[1];\n\n try {\n for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n var item = items_1_1.value;\n\n if (predicate(item)) {\n truthy.push(item);\n } else {\n falsy.push(item);\n }\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n\n return [truthy, falsy];\n}\nfunction updateHistoryStates(hist, stateValue) {\n return mapValues(hist.states, function (subHist, key) {\n if (!subHist) {\n return undefined;\n }\n\n var subStateValue = (isString(stateValue) ? undefined : stateValue[key]) || (subHist ? subHist.current : undefined);\n\n if (!subStateValue) {\n return undefined;\n }\n\n return {\n current: subStateValue,\n states: updateHistoryStates(subHist, subStateValue)\n };\n });\n}\nfunction updateHistoryValue(hist, stateValue) {\n return {\n current: stateValue,\n states: updateHistoryStates(hist, stateValue)\n };\n}\nfunction updateContext(context, _event, assignActions, state) {\n if (!IS_PRODUCTION) {\n warn(!!context, 'Attempting to update undefined context');\n }\n\n var updatedContext = context ? assignActions.reduce(function (acc, assignAction) {\n var e_7, _a;\n\n var assignment = assignAction.assignment;\n var meta = {\n state: state,\n action: assignAction,\n _event: _event\n };\n var partialUpdate = {};\n\n if (isFunction(assignment)) {\n partialUpdate = assignment(acc, _event.data, meta);\n } else {\n try {\n for (var _b = __values(Object.keys(assignment)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var propAssignment = assignment[key];\n partialUpdate[key] = isFunction(propAssignment) ? propAssignment(acc, _event.data, meta) : propAssignment;\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n }\n\n return Object.assign({}, acc, partialUpdate);\n }, context) : context;\n return updatedContext;\n} // tslint:disable-next-line:no-empty\n\nvar warn = function () {};\n\nif (!IS_PRODUCTION) {\n warn = function (condition, message) {\n var error = condition instanceof Error ? condition : undefined;\n\n if (!error && condition) {\n return;\n }\n\n if (console !== undefined) {\n var args = [\"Warning: \".concat(message)];\n\n if (error) {\n args.push(error);\n } // tslint:disable-next-line:no-console\n\n\n console.warn.apply(console, args);\n }\n };\n}\nfunction isArray(value) {\n return Array.isArray(value);\n} // tslint:disable-next-line:ban-types\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nfunction isString(value) {\n return typeof value === 'string';\n}\nfunction toGuard(condition, guardMap) {\n if (!condition) {\n return undefined;\n }\n\n if (isString(condition)) {\n return {\n type: DEFAULT_GUARD_TYPE,\n name: condition,\n predicate: guardMap ? guardMap[condition] : undefined\n };\n }\n\n if (isFunction(condition)) {\n return {\n type: DEFAULT_GUARD_TYPE,\n name: condition.name,\n predicate: condition\n };\n }\n\n return condition;\n}\nfunction isObservable(value) {\n try {\n return 'subscribe' in value && isFunction(value.subscribe);\n } catch (e) {\n return false;\n }\n}\nvar symbolObservable = /*#__PURE__*/function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n}(); // TODO: to be removed in v5, left it out just to minimize the scope of the change and maintain compatibility with older versions of integration paackages\n\nvar interopSymbols = (_a = {}, _a[symbolObservable] = function () {\n return this;\n}, _a[Symbol.observable] = function () {\n return this;\n}, _a);\nfunction isMachine(value) {\n return !!value && '__xstatenode' in value;\n}\nfunction isActor(value) {\n return !!value && typeof value.send === 'function';\n}\nvar uniqueId = /*#__PURE__*/function () {\n var currentId = 0;\n return function () {\n currentId++;\n return currentId.toString(16);\n };\n}();\nfunction toEventObject(event, payload // id?: TEvent['type']\n) {\n if (isString(event) || typeof event === 'number') {\n return __assign({\n type: event\n }, payload);\n }\n\n return event;\n}\nfunction toSCXMLEvent(event, scxmlEvent) {\n if (!isString(event) && '$$type' in event && event.$$type === 'scxml') {\n return event;\n }\n\n var eventObject = toEventObject(event);\n return __assign({\n name: eventObject.type,\n data: eventObject,\n $$type: 'scxml',\n type: 'external'\n }, scxmlEvent);\n}\nfunction toTransitionConfigArray(event, configLike) {\n var transitions = toArrayStrict(configLike).map(function (transitionLike) {\n if (typeof transitionLike === 'undefined' || typeof transitionLike === 'string' || isMachine(transitionLike)) {\n return {\n target: transitionLike,\n event: event\n };\n }\n\n return __assign(__assign({}, transitionLike), {\n event: event\n });\n });\n return transitions;\n}\nfunction normalizeTarget(target) {\n if (target === undefined || target === TARGETLESS_KEY) {\n return undefined;\n }\n\n return toArray(target);\n}\nfunction reportUnhandledExceptionOnInvocation(originalError, currentError, id) {\n if (!IS_PRODUCTION) {\n var originalStackTrace = originalError.stack ? \" Stacktrace was '\".concat(originalError.stack, \"'\") : '';\n\n if (originalError === currentError) {\n // tslint:disable-next-line:no-console\n console.error(\"Missing onError handler for invocation '\".concat(id, \"', error was '\").concat(originalError, \"'.\").concat(originalStackTrace));\n } else {\n var stackTrace = currentError.stack ? \" Stacktrace was '\".concat(currentError.stack, \"'\") : ''; // tslint:disable-next-line:no-console\n\n console.error(\"Missing onError handler and/or unhandled exception/promise rejection for invocation '\".concat(id, \"'. \") + \"Original error: '\".concat(originalError, \"'. \").concat(originalStackTrace, \" Current error is '\").concat(currentError, \"'.\").concat(stackTrace));\n }\n }\n}\nfunction evaluateGuard(machine, guard, context, _event, state) {\n var guards = machine.options.guards;\n var guardMeta = {\n state: state,\n cond: guard,\n _event: _event\n }; // TODO: do not hardcode!\n\n if (guard.type === DEFAULT_GUARD_TYPE) {\n return ((guards === null || guards === void 0 ? void 0 : guards[guard.name]) || guard.predicate)(context, _event.data, guardMeta);\n }\n\n var condFn = guards === null || guards === void 0 ? void 0 : guards[guard.type];\n\n if (!condFn) {\n throw new Error(\"Guard '\".concat(guard.type, \"' is not implemented on machine '\").concat(machine.id, \"'.\"));\n }\n\n return condFn(context, _event.data, guardMeta);\n}\nfunction toInvokeSource(src) {\n if (typeof src === 'string') {\n return {\n type: src\n };\n }\n\n return src;\n}\nfunction toObserver(nextHandler, errorHandler, completionHandler) {\n var noop = function () {};\n\n var isObserver = typeof nextHandler === 'object';\n var self = isObserver ? nextHandler : null;\n return {\n next: ((isObserver ? nextHandler.next : nextHandler) || noop).bind(self),\n error: ((isObserver ? nextHandler.error : errorHandler) || noop).bind(self),\n complete: ((isObserver ? nextHandler.complete : completionHandler) || noop).bind(self)\n };\n}\nfunction createInvokeId(stateNodeId, index) {\n return \"\".concat(stateNodeId, \":invocation[\").concat(index, \"]\");\n}\n\nexport { createInvokeId, evaluateGuard, flatten, getActionType, getEventType, interopSymbols, isActor, isArray, isBehavior, isBuiltInEvent, isFunction, isMachine, isObservable, isPromiseLike, isStateLike, isString, keys, mapContext, mapFilterValues, mapValues, matchesState, nestedPath, normalizeTarget, partition, path, pathToStateValue, pathsToStateValue, reportUnhandledExceptionOnInvocation, symbolObservable, toArray, toArrayStrict, toEventObject, toGuard, toInvokeSource, toObserver, toSCXMLEvent, toStatePath, toStatePaths, toStateValue, toTransitionConfigArray, uniqueId, updateContext, updateHistoryStates, updateHistoryValue, warn };\n","import { __values, __spreadArray, __read } from './_virtual/_tslib.js';\nimport { flatten } from './utils.js';\n\nvar isLeafNode = function (stateNode) {\n return stateNode.type === 'atomic' || stateNode.type === 'final';\n};\nfunction getAllChildren(stateNode) {\n return Object.keys(stateNode.states).map(function (key) {\n return stateNode.states[key];\n });\n}\nfunction getChildren(stateNode) {\n return getAllChildren(stateNode).filter(function (sn) {\n return sn.type !== 'history';\n });\n}\nfunction getAllStateNodes(stateNode) {\n var stateNodes = [stateNode];\n\n if (isLeafNode(stateNode)) {\n return stateNodes;\n }\n\n return stateNodes.concat(flatten(getChildren(stateNode).map(getAllStateNodes)));\n}\nfunction getConfiguration(prevStateNodes, stateNodes) {\n var e_1, _a, e_2, _b, e_3, _c, e_4, _d;\n\n var prevConfiguration = new Set(prevStateNodes);\n var prevAdjList = getAdjList(prevConfiguration);\n var configuration = new Set(stateNodes);\n\n try {\n // add all ancestors\n for (var configuration_1 = __values(configuration), configuration_1_1 = configuration_1.next(); !configuration_1_1.done; configuration_1_1 = configuration_1.next()) {\n var s = configuration_1_1.value;\n var m = s.parent;\n\n while (m && !configuration.has(m)) {\n configuration.add(m);\n m = m.parent;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (configuration_1_1 && !configuration_1_1.done && (_a = configuration_1.return)) _a.call(configuration_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n var adjList = getAdjList(configuration);\n\n try {\n // add descendants\n for (var configuration_2 = __values(configuration), configuration_2_1 = configuration_2.next(); !configuration_2_1.done; configuration_2_1 = configuration_2.next()) {\n var s = configuration_2_1.value; // if previously active, add existing child nodes\n\n if (s.type === 'compound' && (!adjList.get(s) || !adjList.get(s).length)) {\n if (prevAdjList.get(s)) {\n prevAdjList.get(s).forEach(function (sn) {\n return configuration.add(sn);\n });\n } else {\n s.initialStateNodes.forEach(function (sn) {\n return configuration.add(sn);\n });\n }\n } else {\n if (s.type === 'parallel') {\n try {\n for (var _e = (e_3 = void 0, __values(getChildren(s))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var child = _f.value;\n\n if (!configuration.has(child)) {\n configuration.add(child);\n\n if (prevAdjList.get(child)) {\n prevAdjList.get(child).forEach(function (sn) {\n return configuration.add(sn);\n });\n } else {\n child.initialStateNodes.forEach(function (sn) {\n return configuration.add(sn);\n });\n }\n }\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_c = _e.return)) _c.call(_e);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n }\n }\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (configuration_2_1 && !configuration_2_1.done && (_b = configuration_2.return)) _b.call(configuration_2);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n try {\n // add all ancestors\n for (var configuration_3 = __values(configuration), configuration_3_1 = configuration_3.next(); !configuration_3_1.done; configuration_3_1 = configuration_3.next()) {\n var s = configuration_3_1.value;\n var m = s.parent;\n\n while (m && !configuration.has(m)) {\n configuration.add(m);\n m = m.parent;\n }\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (configuration_3_1 && !configuration_3_1.done && (_d = configuration_3.return)) _d.call(configuration_3);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n return configuration;\n}\n\nfunction getValueFromAdj(baseNode, adjList) {\n var childStateNodes = adjList.get(baseNode);\n\n if (!childStateNodes) {\n return {}; // todo: fix?\n }\n\n if (baseNode.type === 'compound') {\n var childStateNode = childStateNodes[0];\n\n if (childStateNode) {\n if (isLeafNode(childStateNode)) {\n return childStateNode.key;\n }\n } else {\n return {};\n }\n }\n\n var stateValue = {};\n childStateNodes.forEach(function (csn) {\n stateValue[csn.key] = getValueFromAdj(csn, adjList);\n });\n return stateValue;\n}\n\nfunction getAdjList(configuration) {\n var e_5, _a;\n\n var adjList = new Map();\n\n try {\n for (var configuration_4 = __values(configuration), configuration_4_1 = configuration_4.next(); !configuration_4_1.done; configuration_4_1 = configuration_4.next()) {\n var s = configuration_4_1.value;\n\n if (!adjList.has(s)) {\n adjList.set(s, []);\n }\n\n if (s.parent) {\n if (!adjList.has(s.parent)) {\n adjList.set(s.parent, []);\n }\n\n adjList.get(s.parent).push(s);\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (configuration_4_1 && !configuration_4_1.done && (_a = configuration_4.return)) _a.call(configuration_4);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n return adjList;\n}\nfunction getValue(rootNode, configuration) {\n var config = getConfiguration([rootNode], configuration);\n return getValueFromAdj(rootNode, getAdjList(config));\n}\nfunction has(iterable, item) {\n if (Array.isArray(iterable)) {\n return iterable.some(function (member) {\n return member === item;\n });\n }\n\n if (iterable instanceof Set) {\n return iterable.has(item);\n }\n\n return false; // TODO: fix\n}\nfunction nextEvents(configuration) {\n return __spreadArray([], __read(new Set(flatten(__spreadArray([], __read(configuration.map(function (sn) {\n return sn.ownEvents;\n })), false)))), false);\n}\nfunction isInFinalState(configuration, stateNode) {\n if (stateNode.type === 'compound') {\n return getChildren(stateNode).some(function (s) {\n return s.type === 'final' && has(configuration, s);\n });\n }\n\n if (stateNode.type === 'parallel') {\n return getChildren(stateNode).every(function (sn) {\n return isInFinalState(configuration, sn);\n });\n }\n\n return false;\n}\nfunction getMeta(configuration) {\n if (configuration === void 0) {\n configuration = [];\n }\n\n return configuration.reduce(function (acc, stateNode) {\n if (stateNode.meta !== undefined) {\n acc[stateNode.id] = stateNode.meta;\n }\n\n return acc;\n }, {});\n}\nfunction getTagsFromConfiguration(configuration) {\n return new Set(flatten(configuration.map(function (sn) {\n return sn.tags;\n })));\n}\n\nexport { getAdjList, getAllChildren, getAllStateNodes, getChildren, getConfiguration, getMeta, getTagsFromConfiguration, getValue, has, isInFinalState, isLeafNode, nextEvents };\n","var ActionTypes;\n\n(function (ActionTypes) {\n ActionTypes[\"Start\"] = \"xstate.start\";\n ActionTypes[\"Stop\"] = \"xstate.stop\";\n ActionTypes[\"Raise\"] = \"xstate.raise\";\n ActionTypes[\"Send\"] = \"xstate.send\";\n ActionTypes[\"Cancel\"] = \"xstate.cancel\";\n ActionTypes[\"NullEvent\"] = \"\";\n ActionTypes[\"Assign\"] = \"xstate.assign\";\n ActionTypes[\"After\"] = \"xstate.after\";\n ActionTypes[\"DoneState\"] = \"done.state\";\n ActionTypes[\"DoneInvoke\"] = \"done.invoke\";\n ActionTypes[\"Log\"] = \"xstate.log\";\n ActionTypes[\"Init\"] = \"xstate.init\";\n ActionTypes[\"Invoke\"] = \"xstate.invoke\";\n ActionTypes[\"ErrorExecution\"] = \"error.execution\";\n ActionTypes[\"ErrorCommunication\"] = \"error.communication\";\n ActionTypes[\"ErrorPlatform\"] = \"error.platform\";\n ActionTypes[\"ErrorCustom\"] = \"xstate.error\";\n ActionTypes[\"Update\"] = \"xstate.update\";\n ActionTypes[\"Pure\"] = \"xstate.pure\";\n ActionTypes[\"Choose\"] = \"xstate.choose\";\n})(ActionTypes || (ActionTypes = {}));\n\nvar SpecialTargets;\n\n(function (SpecialTargets) {\n SpecialTargets[\"Parent\"] = \"#_parent\";\n SpecialTargets[\"Internal\"] = \"#_internal\";\n})(SpecialTargets || (SpecialTargets = {}));\n\nexport { ActionTypes, SpecialTargets };\n","import { ActionTypes } from './types.js';\n\nvar start = ActionTypes.Start;\nvar stop = ActionTypes.Stop;\nvar raise = ActionTypes.Raise;\nvar send = ActionTypes.Send;\nvar cancel = ActionTypes.Cancel;\nvar nullEvent = ActionTypes.NullEvent;\nvar assign = ActionTypes.Assign;\nvar after = ActionTypes.After;\nvar doneState = ActionTypes.DoneState;\nvar log = ActionTypes.Log;\nvar init = ActionTypes.Init;\nvar invoke = ActionTypes.Invoke;\nvar errorExecution = ActionTypes.ErrorExecution;\nvar errorPlatform = ActionTypes.ErrorPlatform;\nvar error = ActionTypes.ErrorCustom;\nvar update = ActionTypes.Update;\nvar choose = ActionTypes.Choose;\nvar pure = ActionTypes.Pure;\n\nexport { after, assign, cancel, choose, doneState, error, errorExecution, errorPlatform, init, invoke, log, nullEvent, pure, raise, send, start, stop, update };\n","import { __assign, __read, __spreadArray } from './_virtual/_tslib.js';\nimport { SpecialTargets, ActionTypes } from './types.js';\nimport { init, send as send$1, raise as raise$1, update, log as log$1, cancel as cancel$1, assign as assign$1, error as error$1, stop as stop$1, pure as pure$1, choose as choose$1 } from './actionTypes.js';\nimport * as actionTypes from './actionTypes.js';\nexport { actionTypes };\nimport { toSCXMLEvent, isString, isFunction, toEventObject, getEventType, partition, updateContext, flatten, toArray, toGuard, evaluateGuard, warn, isArray } from './utils.js';\nimport { IS_PRODUCTION } from './environment.js';\n\nvar initEvent = /*#__PURE__*/toSCXMLEvent({\n type: init\n});\nfunction getActionFunction(actionType, actionFunctionMap) {\n return actionFunctionMap ? actionFunctionMap[actionType] || undefined : undefined;\n}\nfunction toActionObject(action, actionFunctionMap) {\n var actionObject;\n\n if (isString(action) || typeof action === 'number') {\n var exec = getActionFunction(action, actionFunctionMap);\n\n if (isFunction(exec)) {\n actionObject = {\n type: action,\n exec: exec\n };\n } else if (exec) {\n actionObject = exec;\n } else {\n actionObject = {\n type: action,\n exec: undefined\n };\n }\n } else if (isFunction(action)) {\n actionObject = {\n // Convert action to string if unnamed\n type: action.name || action.toString(),\n exec: action\n };\n } else {\n var exec = getActionFunction(action.type, actionFunctionMap);\n\n if (isFunction(exec)) {\n actionObject = __assign(__assign({}, action), {\n exec: exec\n });\n } else if (exec) {\n var actionType = exec.type || action.type;\n actionObject = __assign(__assign(__assign({}, exec), action), {\n type: actionType\n });\n } else {\n actionObject = action;\n }\n }\n\n return actionObject;\n}\nvar toActionObjects = function (action, actionFunctionMap) {\n if (!action) {\n return [];\n }\n\n var actions = isArray(action) ? action : [action];\n return actions.map(function (subAction) {\n return toActionObject(subAction, actionFunctionMap);\n });\n};\nfunction toActivityDefinition(action) {\n var actionObject = toActionObject(action);\n return __assign(__assign({\n id: isString(action) ? action : actionObject.id\n }, actionObject), {\n type: actionObject.type\n });\n}\n/**\r\n * Raises an event. This places the event in the internal event queue, so that\r\n * the event is immediately consumed by the machine in the current step.\r\n *\r\n * @param eventType The event to raise.\r\n */\n\nfunction raise(event) {\n if (!isString(event)) {\n return send(event, {\n to: SpecialTargets.Internal\n });\n }\n\n return {\n type: raise$1,\n event: event\n };\n}\nfunction resolveRaise(action) {\n return {\n type: raise$1,\n _event: toSCXMLEvent(action.event)\n };\n}\n/**\r\n * Sends an event. This returns an action that will be read by an interpreter to\r\n * send the event in the next step, after the current step is finished executing.\r\n *\r\n * @param event The event to send.\r\n * @param options Options to pass into the send event:\r\n * - `id` - The unique send event identifier (used with `cancel()`).\r\n * - `delay` - The number of milliseconds to delay the sending of the event.\r\n * - `to` - The target of this event (by default, the machine the event was sent from).\r\n */\n\nfunction send(event, options) {\n return {\n to: options ? options.to : undefined,\n type: send$1,\n event: isFunction(event) ? event : toEventObject(event),\n delay: options ? options.delay : undefined,\n id: options && options.id !== undefined ? options.id : isFunction(event) ? event.name : getEventType(event)\n };\n}\nfunction resolveSend(action, ctx, _event, delaysMap) {\n var meta = {\n _event: _event\n }; // TODO: helper function for resolving Expr\n\n var resolvedEvent = toSCXMLEvent(isFunction(action.event) ? action.event(ctx, _event.data, meta) : action.event);\n var resolvedDelay;\n\n if (isString(action.delay)) {\n var configDelay = delaysMap && delaysMap[action.delay];\n resolvedDelay = isFunction(configDelay) ? configDelay(ctx, _event.data, meta) : configDelay;\n } else {\n resolvedDelay = isFunction(action.delay) ? action.delay(ctx, _event.data, meta) : action.delay;\n }\n\n var resolvedTarget = isFunction(action.to) ? action.to(ctx, _event.data, meta) : action.to;\n return __assign(__assign({}, action), {\n to: resolvedTarget,\n _event: resolvedEvent,\n event: resolvedEvent.data,\n delay: resolvedDelay\n });\n}\n/**\r\n * Sends an event to this machine's parent.\r\n *\r\n * @param event The event to send to the parent machine.\r\n * @param options Options to pass into the send event.\r\n */\n\nfunction sendParent(event, options) {\n return send(event, __assign(__assign({}, options), {\n to: SpecialTargets.Parent\n }));\n}\n/**\r\n * Sends an event to an actor.\r\n *\r\n * @param actor The `ActorRef` to send the event to.\r\n * @param event The event to send, or an expression that evaluates to the event to send\r\n * @param options Send action options\r\n * @returns An XState send action object\r\n */\n\nfunction sendTo(actor, event, options) {\n return send(event, __assign(__assign({}, options), {\n to: actor\n }));\n}\n/**\r\n * Sends an update event to this machine's parent.\r\n */\n\nfunction sendUpdate() {\n return sendParent(update);\n}\n/**\r\n * Sends an event back to the sender of the original event.\r\n *\r\n * @param event The event to send back to the sender\r\n * @param options Options to pass into the send event\r\n */\n\nfunction respond(event, options) {\n return send(event, __assign(__assign({}, options), {\n to: function (_, __, _a) {\n var _event = _a._event;\n return _event.origin; // TODO: handle when _event.origin is undefined\n }\n }));\n}\n\nvar defaultLogExpr = function (context, event) {\n return {\n context: context,\n event: event\n };\n};\n/**\r\n *\r\n * @param expr The expression function to evaluate which will be logged.\r\n * Takes in 2 arguments:\r\n * - `ctx` - the current state context\r\n * - `event` - the event that caused this action to be executed.\r\n * @param label The label to give to the logged expression.\r\n */\n\n\nfunction log(expr, label) {\n if (expr === void 0) {\n expr = defaultLogExpr;\n }\n\n return {\n type: log$1,\n label: label,\n expr: expr\n };\n}\nvar resolveLog = function (action, ctx, _event) {\n return __assign(__assign({}, action), {\n value: isString(action.expr) ? action.expr : action.expr(ctx, _event.data, {\n _event: _event\n })\n });\n};\n/**\r\n * Cancels an in-flight `send(...)` action. A canceled sent action will not\r\n * be executed, nor will its event be sent, unless it has already been sent\r\n * (e.g., if `cancel(...)` is called after the `send(...)` action's `delay`).\r\n *\r\n * @param sendId The `id` of the `send(...)` action to cancel.\r\n */\n\nvar cancel = function (sendId) {\n return {\n type: cancel$1,\n sendId: sendId\n };\n};\n/**\r\n * Starts an activity.\r\n *\r\n * @param activity The activity to start.\r\n */\n\nfunction start(activity) {\n var activityDef = toActivityDefinition(activity);\n return {\n type: ActionTypes.Start,\n activity: activityDef,\n exec: undefined\n };\n}\n/**\r\n * Stops an activity.\r\n *\r\n * @param actorRef The activity to stop.\r\n */\n\nfunction stop(actorRef) {\n var activity = isFunction(actorRef) ? actorRef : toActivityDefinition(actorRef);\n return {\n type: ActionTypes.Stop,\n activity: activity,\n exec: undefined\n };\n}\nfunction resolveStop(action, context, _event) {\n var actorRefOrString = isFunction(action.activity) ? action.activity(context, _event.data) : action.activity;\n var resolvedActorRef = typeof actorRefOrString === 'string' ? {\n id: actorRefOrString\n } : actorRefOrString;\n var actionObject = {\n type: ActionTypes.Stop,\n activity: resolvedActorRef\n };\n return actionObject;\n}\n/**\r\n * Updates the current context of the machine.\r\n *\r\n * @param assignment An object that represents the partial context to update.\r\n */\n\nvar assign = function (assignment) {\n return {\n type: assign$1,\n assignment: assignment\n };\n};\nfunction isActionObject(action) {\n return typeof action === 'object' && 'type' in action;\n}\n/**\r\n * Returns an event type that represents an implicit event that\r\n * is sent after the specified `delay`.\r\n *\r\n * @param delayRef The delay in milliseconds\r\n * @param id The state node ID where this event is handled\r\n */\n\nfunction after(delayRef, id) {\n var idSuffix = id ? \"#\".concat(id) : '';\n return \"\".concat(ActionTypes.After, \"(\").concat(delayRef, \")\").concat(idSuffix);\n}\n/**\r\n * Returns an event that represents that a final state node\r\n * has been reached in the parent state node.\r\n *\r\n * @param id The final state node's parent state node `id`\r\n * @param data The data to pass into the event\r\n */\n\nfunction done(id, data) {\n var type = \"\".concat(ActionTypes.DoneState, \".\").concat(id);\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\n/**\r\n * Returns an event that represents that an invoked service has terminated.\r\n *\r\n * An invoked service is terminated when it has reached a top-level final state node,\r\n * but not when it is canceled.\r\n *\r\n * @param id The final state node ID\r\n * @param data The data to pass into the event\r\n */\n\nfunction doneInvoke(id, data) {\n var type = \"\".concat(ActionTypes.DoneInvoke, \".\").concat(id);\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\nfunction error(id, data) {\n var type = \"\".concat(ActionTypes.ErrorPlatform, \".\").concat(id);\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\nfunction pure(getActions) {\n return {\n type: ActionTypes.Pure,\n get: getActions\n };\n}\n/**\r\n * Forwards (sends) an event to a specified service.\r\n *\r\n * @param target The target service to forward the event to.\r\n * @param options Options to pass into the send action creator.\r\n */\n\nfunction forwardTo(target, options) {\n if (!IS_PRODUCTION && (!target || typeof target === 'function')) {\n var originalTarget_1 = target;\n\n target = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var resolvedTarget = typeof originalTarget_1 === 'function' ? originalTarget_1.apply(void 0, __spreadArray([], __read(args), false)) : originalTarget_1;\n\n if (!resolvedTarget) {\n throw new Error(\"Attempted to forward event to undefined actor. This risks an infinite loop in the sender.\");\n }\n\n return resolvedTarget;\n };\n }\n\n return send(function (_, event) {\n return event;\n }, __assign(__assign({}, options), {\n to: target\n }));\n}\n/**\r\n * Escalates an error by sending it as an event to this machine's parent.\r\n *\r\n * @param errorData The error data to send, or the expression function that\r\n * takes in the `context`, `event`, and `meta`, and returns the error data to send.\r\n * @param options Options to pass into the send action creator.\r\n */\n\nfunction escalate(errorData, options) {\n return sendParent(function (context, event, meta) {\n return {\n type: error$1,\n data: isFunction(errorData) ? errorData(context, event, meta) : errorData\n };\n }, __assign(__assign({}, options), {\n to: SpecialTargets.Parent\n }));\n}\nfunction choose(conds) {\n return {\n type: ActionTypes.Choose,\n conds: conds\n };\n}\nfunction resolveActions(machine, currentState, currentContext, _event, actions, predictableExec, preserveActionOrder) {\n if (preserveActionOrder === void 0) {\n preserveActionOrder = false;\n }\n\n var _a = __read(preserveActionOrder ? [[], actions] : partition(actions, function (action) {\n return action.type === assign$1;\n }), 2),\n assignActions = _a[0],\n otherActions = _a[1];\n\n var updatedContext = assignActions.length ? updateContext(currentContext, _event, assignActions, currentState) : currentContext;\n var preservedContexts = preserveActionOrder ? [currentContext] : undefined;\n var resolvedActions = flatten(otherActions.map(function (actionObject) {\n var _a;\n\n switch (actionObject.type) {\n case raise$1:\n {\n return resolveRaise(actionObject);\n }\n\n case send$1:\n var sendAction = resolveSend(actionObject, updatedContext, _event, machine.options.delays); // TODO: fix ActionTypes.Init\n\n if (!IS_PRODUCTION) {\n // warn after resolving as we can create better contextual message here\n warn(!isString(actionObject.delay) || typeof sendAction.delay === 'number', // tslint:disable-next-line:max-line-length\n \"No delay reference for delay expression '\".concat(actionObject.delay, \"' was found on machine '\").concat(machine.id, \"'\"));\n }\n\n if (sendAction.to !== SpecialTargets.Internal) {\n predictableExec === null || predictableExec === void 0 ? void 0 : predictableExec(sendAction, updatedContext, _event);\n }\n\n return sendAction;\n\n case log$1:\n {\n var resolved = resolveLog(actionObject, updatedContext, _event);\n predictableExec === null || predictableExec === void 0 ? void 0 : predictableExec(resolved, updatedContext, _event);\n return resolved;\n }\n\n case choose$1:\n {\n var chooseAction = actionObject;\n var matchedActions = (_a = chooseAction.conds.find(function (condition) {\n var guard = toGuard(condition.cond, machine.options.guards);\n return !guard || evaluateGuard(machine, guard, updatedContext, _event, !predictableExec ? currentState : undefined);\n })) === null || _a === void 0 ? void 0 : _a.actions;\n\n if (!matchedActions) {\n return [];\n }\n\n var _b = __read(resolveActions(machine, currentState, updatedContext, _event, toActionObjects(toArray(matchedActions), machine.options.actions), predictableExec, preserveActionOrder), 2),\n resolvedActionsFromChoose = _b[0],\n resolvedContextFromChoose = _b[1];\n\n updatedContext = resolvedContextFromChoose;\n preservedContexts === null || preservedContexts === void 0 ? void 0 : preservedContexts.push(updatedContext);\n return resolvedActionsFromChoose;\n }\n\n case pure$1:\n {\n var matchedActions = actionObject.get(updatedContext, _event.data);\n\n if (!matchedActions) {\n return [];\n }\n\n var _c = __read(resolveActions(machine, currentState, updatedContext, _event, toActionObjects(toArray(matchedActions), machine.options.actions), predictableExec, preserveActionOrder), 2),\n resolvedActionsFromPure = _c[0],\n resolvedContext = _c[1];\n\n updatedContext = resolvedContext;\n preservedContexts === null || preservedContexts === void 0 ? void 0 : preservedContexts.push(updatedContext);\n return resolvedActionsFromPure;\n }\n\n case stop$1:\n {\n var resolved = resolveStop(actionObject, updatedContext, _event);\n predictableExec === null || predictableExec === void 0 ? void 0 : predictableExec(resolved, updatedContext, _event);\n return resolved;\n }\n\n case assign$1:\n {\n updatedContext = updateContext(updatedContext, _event, [actionObject], !predictableExec ? currentState : undefined);\n preservedContexts === null || preservedContexts === void 0 ? void 0 : preservedContexts.push(updatedContext);\n break;\n }\n\n default:\n var resolvedActionObject = toActionObject(actionObject, machine.options.actions);\n var exec_1 = resolvedActionObject.exec;\n\n if (predictableExec) {\n predictableExec(resolvedActionObject, updatedContext, _event);\n } else if (exec_1 && preservedContexts) {\n var contextIndex_1 = preservedContexts.length - 1;\n resolvedActionObject = __assign(__assign({}, resolvedActionObject), {\n exec: function (_ctx) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n exec_1.apply(void 0, __spreadArray([preservedContexts[contextIndex_1]], __read(args), false));\n }\n });\n }\n\n return resolvedActionObject;\n }\n }).filter(function (a) {\n return !!a;\n }));\n return [resolvedActions, updatedContext];\n}\n\nexport { after, assign, cancel, choose, done, doneInvoke, error, escalate, forwardTo, getActionFunction, initEvent, isActionObject, log, pure, raise, resolveActions, resolveLog, resolveRaise, resolveSend, resolveStop, respond, send, sendParent, sendTo, sendUpdate, start, stop, toActionObject, toActionObjects, toActivityDefinition };\n","import { __assign, __spreadArray, __read, __rest } from './_virtual/_tslib.js';\nimport { EMPTY_ACTIVITY_MAP } from './constants.js';\nimport { isString, matchesState, warn } from './utils.js';\nimport { getMeta, nextEvents } from './stateUtils.js';\nimport { initEvent } from './actions.js';\nimport { IS_PRODUCTION } from './environment.js';\n\nfunction stateValuesEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a === undefined || b === undefined) {\n return false;\n }\n\n if (isString(a) || isString(b)) {\n return a === b;\n }\n\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n return aKeys.length === bKeys.length && aKeys.every(function (key) {\n return stateValuesEqual(a[key], b[key]);\n });\n}\nfunction isStateConfig(state) {\n if (typeof state !== 'object' || state === null) {\n return false;\n }\n\n return 'value' in state && '_event' in state;\n}\n/**\r\n * @deprecated Use `isStateConfig(object)` or `state instanceof State` instead.\r\n */\n\nvar isState = isStateConfig;\nfunction bindActionToState(action, state) {\n var exec = action.exec;\n\n var boundAction = __assign(__assign({}, action), {\n exec: exec !== undefined ? function () {\n return exec(state.context, state.event, {\n action: action,\n state: state,\n _event: state._event\n });\n } : undefined\n });\n\n return boundAction;\n}\n\nvar State =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n /**\r\n * Creates a new State instance.\r\n * @param value The state value\r\n * @param context The extended state\r\n * @param historyValue The tree representing historical values of the state nodes\r\n * @param history The previous state\r\n * @param actions An array of action objects to execute as side-effects\r\n * @param activities A mapping of activities and whether they are started (`true`) or stopped (`false`).\r\n * @param meta\r\n * @param events Internal event queue. Should be empty with run-to-completion semantics.\r\n * @param configuration\r\n */\n function State(config) {\n var _this = this;\n\n var _a;\n\n this.actions = [];\n this.activities = EMPTY_ACTIVITY_MAP;\n this.meta = {};\n this.events = [];\n this.value = config.value;\n this.context = config.context;\n this._event = config._event;\n this._sessionid = config._sessionid;\n this.event = this._event.data;\n this.historyValue = config.historyValue;\n this.history = config.history;\n this.actions = config.actions || [];\n this.activities = config.activities || EMPTY_ACTIVITY_MAP;\n this.meta = getMeta(config.configuration);\n this.events = config.events || [];\n this.matches = this.matches.bind(this);\n this.toStrings = this.toStrings.bind(this);\n this.configuration = config.configuration;\n this.transitions = config.transitions;\n this.children = config.children;\n this.done = !!config.done;\n this.tags = (_a = Array.isArray(config.tags) ? new Set(config.tags) : config.tags) !== null && _a !== void 0 ? _a : new Set();\n this.machine = config.machine;\n Object.defineProperty(this, 'nextEvents', {\n get: function () {\n return nextEvents(_this.configuration);\n }\n });\n }\n /**\r\n * Creates a new State instance for the given `stateValue` and `context`.\r\n * @param stateValue\r\n * @param context\r\n */\n\n\n State.from = function (stateValue, context) {\n if (stateValue instanceof State) {\n if (stateValue.context !== context) {\n return new State({\n value: stateValue.value,\n context: context,\n _event: stateValue._event,\n _sessionid: null,\n historyValue: stateValue.historyValue,\n history: stateValue.history,\n actions: [],\n activities: stateValue.activities,\n meta: {},\n events: [],\n configuration: [],\n transitions: [],\n children: {}\n });\n }\n\n return stateValue;\n }\n\n var _event = initEvent;\n return new State({\n value: stateValue,\n context: context,\n _event: _event,\n _sessionid: null,\n historyValue: undefined,\n history: undefined,\n actions: [],\n activities: undefined,\n meta: undefined,\n events: [],\n configuration: [],\n transitions: [],\n children: {}\n });\n };\n /**\r\n * Creates a new State instance for the given `config`.\r\n * @param config The state config\r\n */\n\n\n State.create = function (config) {\n return new State(config);\n };\n /**\r\n * Creates a new `State` instance for the given `stateValue` and `context` with no actions (side-effects).\r\n * @param stateValue\r\n * @param context\r\n */\n\n\n State.inert = function (stateValue, context) {\n if (stateValue instanceof State) {\n if (!stateValue.actions.length) {\n return stateValue;\n }\n\n var _event = initEvent;\n return new State({\n value: stateValue.value,\n context: context,\n _event: _event,\n _sessionid: null,\n historyValue: stateValue.historyValue,\n history: stateValue.history,\n activities: stateValue.activities,\n configuration: stateValue.configuration,\n transitions: [],\n children: {}\n });\n }\n\n return State.from(stateValue, context);\n };\n /**\r\n * Returns an array of all the string leaf state node paths.\r\n * @param stateValue\r\n * @param delimiter The character(s) that separate each subpath in the string state node path.\r\n */\n\n\n State.prototype.toStrings = function (stateValue, delimiter) {\n var _this = this;\n\n if (stateValue === void 0) {\n stateValue = this.value;\n }\n\n if (delimiter === void 0) {\n delimiter = '.';\n }\n\n if (isString(stateValue)) {\n return [stateValue];\n }\n\n var valueKeys = Object.keys(stateValue);\n return valueKeys.concat.apply(valueKeys, __spreadArray([], __read(valueKeys.map(function (key) {\n return _this.toStrings(stateValue[key], delimiter).map(function (s) {\n return key + delimiter + s;\n });\n })), false));\n };\n\n State.prototype.toJSON = function () {\n var _a = this;\n _a.configuration;\n _a.transitions;\n var tags = _a.tags;\n _a.machine;\n var jsonValues = __rest(_a, [\"configuration\", \"transitions\", \"tags\", \"machine\"]);\n\n return __assign(__assign({}, jsonValues), {\n tags: Array.from(tags)\n });\n };\n\n State.prototype.matches = function (parentStateValue) {\n return matchesState(parentStateValue, this.value);\n };\n /**\r\n * Whether the current state configuration has a state node with the specified `tag`.\r\n * @param tag\r\n */\n\n\n State.prototype.hasTag = function (tag) {\n return this.tags.has(tag);\n };\n /**\r\n * Determines whether sending the `event` will cause a non-forbidden transition\r\n * to be selected, even if the transitions have no actions nor\r\n * change the state value.\r\n *\r\n * @param event The event to test\r\n * @returns Whether the event will cause a transition\r\n */\n\n\n State.prototype.can = function (event) {\n var _a;\n\n if (IS_PRODUCTION) {\n warn(!!this.machine, \"state.can(...) used outside of a machine-created State object; this will always return false.\");\n }\n\n var transitionData = (_a = this.machine) === null || _a === void 0 ? void 0 : _a.getTransitionData(this, event);\n return !!(transitionData === null || transitionData === void 0 ? void 0 : transitionData.transitions.length) && // Check that at least one transition is not forbidden\n transitionData.transitions.some(function (t) {\n return t.target !== undefined || t.actions.length;\n });\n };\n\n return State;\n}();\n\nexport { State, bindActionToState, isState, isStateConfig, stateValuesEqual };\n","import { useLayoutEffect } from 'react';\n\nvar index = useLayoutEffect ;\n\nexport default index;\n","import { __assign } from './_virtual/_tslib.js';\n\nvar defaultOptions = {\n deferEvents: false\n};\n\nvar Scheduler =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n function Scheduler(options) {\n this.processingEvent = false;\n this.queue = [];\n this.initialized = false;\n this.options = __assign(__assign({}, defaultOptions), options);\n }\n\n Scheduler.prototype.initialize = function (callback) {\n this.initialized = true;\n\n if (callback) {\n if (!this.options.deferEvents) {\n this.schedule(callback);\n return;\n }\n\n this.process(callback);\n }\n\n this.flushEvents();\n };\n\n Scheduler.prototype.schedule = function (task) {\n if (!this.initialized || this.processingEvent) {\n this.queue.push(task);\n return;\n }\n\n if (this.queue.length !== 0) {\n throw new Error('Event queue should be empty when it is not processing events');\n }\n\n this.process(task);\n this.flushEvents();\n };\n\n Scheduler.prototype.clear = function () {\n this.queue = [];\n };\n\n Scheduler.prototype.flushEvents = function () {\n var nextCallback = this.queue.shift();\n\n while (nextCallback) {\n this.process(nextCallback);\n nextCallback = this.queue.shift();\n }\n };\n\n Scheduler.prototype.process = function (callback) {\n this.processingEvent = true;\n\n try {\n callback();\n } catch (e) {\n // there is no use to keep the future events\n // as the situation is not anymore the same\n this.clear();\n throw e;\n } finally {\n this.processingEvent = false;\n }\n };\n\n return Scheduler;\n}();\n\nexport { Scheduler };\n","/**\r\n * Maintains a stack of the current service in scope.\r\n * This is used to provide the correct service to spawn().\r\n */\nvar serviceStack = [];\nvar provide = function (service, fn) {\n serviceStack.push(service);\n var result = fn(service);\n serviceStack.pop();\n return result;\n};\nvar consume = function (fn) {\n return fn(serviceStack[serviceStack.length - 1]);\n};\n\nexport { consume, provide };\n","import { __assign } from './_virtual/_tslib.js';\nimport { symbolObservable, toInvokeSource, mapContext, isMachine } from './utils.js';\nimport { provide } from './serviceScope.js';\n\nfunction createNullActor(id) {\n var _a;\n\n return _a = {\n id: id,\n send: function () {\n return void 0;\n },\n subscribe: function () {\n return {\n unsubscribe: function () {\n return void 0;\n }\n };\n },\n getSnapshot: function () {\n return undefined;\n },\n toJSON: function () {\n return {\n id: id\n };\n }\n }, _a[symbolObservable] = function () {\n return this;\n }, _a;\n}\n/**\r\n * Creates a deferred actor that is able to be invoked given the provided\r\n * invocation information in its `.meta` value.\r\n *\r\n * @param invokeDefinition The meta information needed to invoke the actor.\r\n */\n\nfunction createInvocableActor(invokeDefinition, machine, context, _event) {\n var _a;\n\n var invokeSrc = toInvokeSource(invokeDefinition.src);\n var serviceCreator = (_a = machine === null || machine === void 0 ? void 0 : machine.options.services) === null || _a === void 0 ? void 0 : _a[invokeSrc.type];\n var resolvedData = invokeDefinition.data ? mapContext(invokeDefinition.data, context, _event) : undefined;\n var tempActor = serviceCreator ? createDeferredActor(serviceCreator, invokeDefinition.id, resolvedData) : createNullActor(invokeDefinition.id); // @ts-ignore\n\n tempActor.meta = invokeDefinition;\n return tempActor;\n}\nfunction createDeferredActor(entity, id, data) {\n var tempActor = createNullActor(id); // @ts-ignore\n\n tempActor.deferred = true;\n\n if (isMachine(entity)) {\n // \"mute\" the existing service scope so potential spawned actors within the `.initialState` stay deferred here\n var initialState_1 = tempActor.state = provide(undefined, function () {\n return (data ? entity.withContext(data) : entity).initialState;\n });\n\n tempActor.getSnapshot = function () {\n return initialState_1;\n };\n }\n\n return tempActor;\n}\nfunction isActor(item) {\n try {\n return typeof item.send === 'function';\n } catch (e) {\n return false;\n }\n}\nfunction isSpawnedActor(item) {\n return isActor(item) && 'id' in item;\n} // TODO: refactor the return type, this could be written in a better way but it's best to avoid unneccessary breaking changes now\n\nfunction toActorRef(actorRefLike) {\n var _a;\n\n return __assign((_a = {\n subscribe: function () {\n return {\n unsubscribe: function () {\n return void 0;\n }\n };\n },\n id: 'anonymous',\n getSnapshot: function () {\n return undefined;\n }\n }, _a[symbolObservable] = function () {\n return this;\n }, _a), actorRefLike);\n}\n\nexport { createDeferredActor, createInvocableActor, createNullActor, isActor, isSpawnedActor, toActorRef };\n","var children = /*#__PURE__*/new Map();\nvar sessionIdIndex = 0;\nvar registry = {\n bookId: function () {\n return \"x:\".concat(sessionIdIndex++);\n },\n register: function (id, actor) {\n children.set(id, actor);\n return id;\n },\n get: function (id) {\n return children.get(id);\n },\n free: function (id) {\n children.delete(id);\n }\n};\n\nexport { registry };\n","import { IS_PRODUCTION } from './environment.js';\n\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n if (!IS_PRODUCTION) {\n console.warn('XState could not find a global object in this environment. Please let the maintainers know and raise an issue here: https://github.com/statelyai/xstate/issues');\n }\n}\n\nfunction getDevTools() {\n var global = getGlobal();\n\n if (global && '__xstate__' in global) {\n return global.__xstate__;\n }\n\n return undefined;\n}\n\nfunction registerService(service) {\n if (!getGlobal()) {\n return;\n }\n\n var devTools = getDevTools();\n\n if (devTools) {\n devTools.register(service);\n }\n}\n\nexport { getGlobal, registerService };\n","import { error, doneInvoke } from './actions.js';\nimport { toActorRef } from './Actor.js';\nimport { toObserver } from './utils.js';\n\n/**\r\n * Returns an actor behavior from a reducer and its initial state.\r\n *\r\n * @param transition The pure reducer that returns the next state given the current state and event.\r\n * @param initialState The initial state of the reducer.\r\n * @returns An actor behavior\r\n */\n\nfunction fromReducer(transition, initialState) {\n return {\n transition: transition,\n initialState: initialState\n };\n}\nfunction fromPromise(promiseFn) {\n var initialState = {\n error: undefined,\n data: undefined,\n status: 'pending'\n };\n return {\n transition: function (state, event, _a) {\n var parent = _a.parent,\n id = _a.id,\n observers = _a.observers;\n\n switch (event.type) {\n case 'fulfill':\n parent === null || parent === void 0 ? void 0 : parent.send(doneInvoke(id, event.data));\n return {\n error: undefined,\n data: event.data,\n status: 'fulfilled'\n };\n\n case 'reject':\n parent === null || parent === void 0 ? void 0 : parent.send(error(id, event.error));\n observers.forEach(function (observer) {\n observer.error(event.error);\n });\n return {\n error: event.error,\n data: undefined,\n status: 'rejected'\n };\n\n default:\n return state;\n }\n },\n initialState: initialState,\n start: function (_a) {\n var self = _a.self;\n promiseFn().then(function (data) {\n self.send({\n type: 'fulfill',\n data: data\n });\n }, function (reason) {\n self.send({\n type: 'reject',\n error: reason\n });\n });\n return initialState;\n }\n };\n}\nfunction spawnBehavior(behavior, options) {\n if (options === void 0) {\n options = {};\n }\n\n var state = behavior.initialState;\n var observers = new Set();\n var mailbox = [];\n var flushing = false;\n\n var flush = function () {\n if (flushing) {\n return;\n }\n\n flushing = true;\n\n while (mailbox.length > 0) {\n var event_1 = mailbox.shift();\n state = behavior.transition(state, event_1, actorCtx);\n observers.forEach(function (observer) {\n return observer.next(state);\n });\n }\n\n flushing = false;\n };\n\n var actor = toActorRef({\n id: options.id,\n send: function (event) {\n mailbox.push(event);\n flush();\n },\n getSnapshot: function () {\n return state;\n },\n subscribe: function (next, handleError, complete) {\n var observer = toObserver(next, handleError, complete);\n observers.add(observer);\n observer.next(state);\n return {\n unsubscribe: function () {\n observers.delete(observer);\n }\n };\n }\n });\n var actorCtx = {\n parent: options.parent,\n self: actor,\n id: options.id || 'anonymous',\n observers: observers\n };\n state = behavior.start ? behavior.start(actorCtx) : state;\n return actor;\n}\n\nexport { fromPromise, fromReducer, spawnBehavior };\n","import { __values, __spreadArray, __read, __assign } from './_virtual/_tslib.js';\nimport { SpecialTargets, ActionTypes } from './types.js';\nimport { isStateConfig, State, bindActionToState } from './State.js';\nimport { raise, send, errorPlatform, update, error as error$1, log, stop, start, cancel } from './actionTypes.js';\nimport { initEvent, doneInvoke, toActionObjects, resolveActions, error, getActionFunction } from './actions.js';\nimport { IS_PRODUCTION } from './environment.js';\nimport { warn, mapContext, toObserver, toSCXMLEvent, flatten, isFunction, isPromiseLike, isObservable, isMachine, isBehavior, reportUnhandledExceptionOnInvocation, symbolObservable, isArray, toEventObject, isString, isActor, toInvokeSource, uniqueId } from './utils.js';\nimport { Scheduler } from './scheduler.js';\nimport { createDeferredActor, isSpawnedActor } from './Actor.js';\nimport { registry } from './registry.js';\nimport { getGlobal, registerService } from './devTools.js';\nimport { provide, consume } from './serviceScope.js';\nimport { spawnBehavior } from './behaviors.js';\n\nvar DEFAULT_SPAWN_OPTIONS = {\n sync: false,\n autoForward: false\n};\nvar InterpreterStatus;\n\n(function (InterpreterStatus) {\n InterpreterStatus[InterpreterStatus[\"NotStarted\"] = 0] = \"NotStarted\";\n InterpreterStatus[InterpreterStatus[\"Running\"] = 1] = \"Running\";\n InterpreterStatus[InterpreterStatus[\"Stopped\"] = 2] = \"Stopped\";\n})(InterpreterStatus || (InterpreterStatus = {}));\n\nvar Interpreter =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n /**\r\n * Creates a new Interpreter instance (i.e., service) for the given machine with the provided options, if any.\r\n *\r\n * @param machine The machine to be interpreted\r\n * @param options Interpreter options\r\n */\n function Interpreter(machine, options) {\n var _this = this;\n\n if (options === void 0) {\n options = Interpreter.defaultOptions;\n }\n\n this.machine = machine;\n this.delayedEventsMap = {};\n this.listeners = new Set();\n this.contextListeners = new Set();\n this.stopListeners = new Set();\n this.doneListeners = new Set();\n this.eventListeners = new Set();\n this.sendListeners = new Set();\n /**\r\n * Whether the service is started.\r\n */\n\n this.initialized = false;\n this.status = InterpreterStatus.NotStarted;\n this.children = new Map();\n this.forwardTo = new Set();\n /**\r\n * Alias for Interpreter.prototype.start\r\n */\n\n this.init = this.start;\n /**\r\n * Sends an event to the running interpreter to trigger a transition.\r\n *\r\n * An array of events (batched) can be sent as well, which will send all\r\n * batched events to the running interpreter. The listeners will be\r\n * notified only **once** when all events are processed.\r\n *\r\n * @param event The event(s) to send\r\n */\n\n this.send = function (event, payload) {\n if (isArray(event)) {\n _this.batch(event);\n\n return _this.state;\n }\n\n var _event = toSCXMLEvent(toEventObject(event, payload));\n\n if (_this.status === InterpreterStatus.Stopped) {\n // do nothing\n if (!IS_PRODUCTION) {\n warn(false, \"Event \\\"\".concat(_event.name, \"\\\" was sent to stopped service \\\"\").concat(_this.machine.id, \"\\\". This service has already reached its final state, and will not transition.\\nEvent: \").concat(JSON.stringify(_event.data)));\n }\n\n return _this.state;\n }\n\n if (_this.status !== InterpreterStatus.Running && !_this.options.deferEvents) {\n throw new Error(\"Event \\\"\".concat(_event.name, \"\\\" was sent to uninitialized service \\\"\").concat(_this.machine.id // tslint:disable-next-line:max-line-length\n , \"\\\". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\\nEvent: \").concat(JSON.stringify(_event.data)));\n }\n\n _this.scheduler.schedule(function () {\n // Forward copy of event to child actors\n _this.forward(_event);\n\n var nextState = _this.nextState(_event);\n\n _this.update(nextState, _event);\n });\n\n return _this._state; // TODO: deprecate (should return void)\n // tslint:disable-next-line:semicolon\n };\n\n this.sendTo = function (event, to) {\n var isParent = _this.parent && (to === SpecialTargets.Parent || _this.parent.id === to);\n var target = isParent ? _this.parent : isString(to) ? _this.children.get(to) || registry.get(to) : isActor(to) ? to : undefined;\n\n if (!target) {\n if (!isParent) {\n throw new Error(\"Unable to send event to child '\".concat(to, \"' from service '\").concat(_this.id, \"'.\"));\n } // tslint:disable-next-line:no-console\n\n\n if (!IS_PRODUCTION) {\n warn(false, \"Service '\".concat(_this.id, \"' has no parent: unable to send event \").concat(event.type));\n }\n\n return;\n }\n\n if ('machine' in target) {\n // perhaps those events should be rejected in the parent\n // but atm it doesn't have easy access to all of the information that is required to do it reliably\n if (_this.status !== InterpreterStatus.Stopped || _this.parent !== target || // we need to send events to the parent from exit handlers of a machine that reached its final state\n _this.state.done) {\n // Send SCXML events to machines\n target.send(__assign(__assign({}, event), {\n name: event.name === error$1 ? \"\".concat(error(_this.id)) : event.name,\n origin: _this.sessionId\n }));\n }\n } else {\n // Send normal events to other targets\n target.send(event.data);\n }\n };\n\n this._exec = function (action, context, _event, actionFunctionMap) {\n if (actionFunctionMap === void 0) {\n actionFunctionMap = _this.machine.options.actions;\n }\n\n var actionOrExec = action.exec || getActionFunction(action.type, actionFunctionMap);\n var exec = isFunction(actionOrExec) ? actionOrExec : actionOrExec ? actionOrExec.exec : action.exec;\n\n if (exec) {\n try {\n return exec(context, _event.data, !_this.machine.config.predictableActionArguments ? {\n action: action,\n state: _this.state,\n _event: _event\n } : {\n action: action,\n _event: _event\n });\n } catch (err) {\n if (_this.parent) {\n _this.parent.send({\n type: 'xstate.error',\n data: err\n });\n }\n\n throw err;\n }\n }\n\n switch (action.type) {\n case send:\n var sendAction = action;\n\n if (typeof sendAction.delay === 'number') {\n _this.defer(sendAction);\n\n return;\n } else {\n if (sendAction.to) {\n _this.sendTo(sendAction._event, sendAction.to);\n } else {\n _this.send(sendAction._event);\n }\n }\n\n break;\n\n case cancel:\n _this.cancel(action.sendId);\n\n break;\n\n case start:\n {\n if (_this.status !== InterpreterStatus.Running) {\n return;\n }\n\n var activity = action.activity; // If the activity will be stopped right after it's started\n // (such as in transient states)\n // don't bother starting the activity.\n\n if ( // in v4 with `predictableActionArguments` invokes are called eagerly when the `this.state` still points to the previous state\n !_this.machine.config.predictableActionArguments && !_this.state.activities[activity.id || activity.type]) {\n break;\n } // Invoked services\n\n\n if (activity.type === ActionTypes.Invoke) {\n var invokeSource = toInvokeSource(activity.src);\n var serviceCreator = _this.machine.options.services ? _this.machine.options.services[invokeSource.type] : undefined;\n var id = activity.id,\n data = activity.data;\n\n if (!IS_PRODUCTION) {\n warn(!('forward' in activity), // tslint:disable-next-line:max-line-length\n \"`forward` property is deprecated (found in invocation of '\".concat(activity.src, \"' in in machine '\").concat(_this.machine.id, \"'). \") + \"Please use `autoForward` instead.\");\n }\n\n var autoForward = 'autoForward' in activity ? activity.autoForward : !!activity.forward;\n\n if (!serviceCreator) {\n // tslint:disable-next-line:no-console\n if (!IS_PRODUCTION) {\n warn(false, \"No service found for invocation '\".concat(activity.src, \"' in machine '\").concat(_this.machine.id, \"'.\"));\n }\n\n return;\n }\n\n var resolvedData = data ? mapContext(data, context, _event) : undefined;\n\n if (typeof serviceCreator === 'string') {\n // TODO: warn\n return;\n }\n\n var source = isFunction(serviceCreator) ? serviceCreator(context, _event.data, {\n data: resolvedData,\n src: invokeSource,\n meta: activity.meta\n }) : serviceCreator;\n\n if (!source) {\n // TODO: warn?\n return;\n }\n\n var options = void 0;\n\n if (isMachine(source)) {\n source = resolvedData ? source.withContext(resolvedData) : source;\n options = {\n autoForward: autoForward\n };\n }\n\n _this.spawn(source, id, options);\n } else {\n _this.spawnActivity(activity);\n }\n\n break;\n }\n\n case stop:\n {\n _this.stopChild(action.activity.id);\n\n break;\n }\n\n case log:\n var label = action.label,\n value = action.value;\n\n if (label) {\n _this.logger(label, value);\n } else {\n _this.logger(value);\n }\n\n break;\n\n default:\n if (!IS_PRODUCTION) {\n warn(false, \"No implementation found for action type '\".concat(action.type, \"'\"));\n }\n\n break;\n }\n };\n\n var resolvedOptions = __assign(__assign({}, Interpreter.defaultOptions), options);\n\n var clock = resolvedOptions.clock,\n logger = resolvedOptions.logger,\n parent = resolvedOptions.parent,\n id = resolvedOptions.id;\n var resolvedId = id !== undefined ? id : machine.id;\n this.id = resolvedId;\n this.logger = logger;\n this.clock = clock;\n this.parent = parent;\n this.options = resolvedOptions;\n this.scheduler = new Scheduler({\n deferEvents: this.options.deferEvents\n });\n this.sessionId = registry.bookId();\n }\n\n Object.defineProperty(Interpreter.prototype, \"initialState\", {\n get: function () {\n var _this = this;\n\n if (this._initialState) {\n return this._initialState;\n }\n\n return provide(this, function () {\n _this._initialState = _this.machine.initialState;\n return _this._initialState;\n });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Interpreter.prototype, \"state\", {\n get: function () {\n if (!IS_PRODUCTION) {\n warn(this.status !== InterpreterStatus.NotStarted, \"Attempted to read state from uninitialized service '\".concat(this.id, \"'. Make sure the service is started first.\"));\n }\n\n return this._state;\n },\n enumerable: false,\n configurable: true\n });\n /**\r\n * Executes the actions of the given state, with that state's `context` and `event`.\r\n *\r\n * @param state The state whose actions will be executed\r\n * @param actionsConfig The action implementations to use\r\n */\n\n Interpreter.prototype.execute = function (state, actionsConfig) {\n var e_1, _a;\n\n try {\n for (var _b = __values(state.actions), _c = _b.next(); !_c.done; _c = _b.next()) {\n var action = _c.value;\n this.exec(action, state, actionsConfig);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n };\n\n Interpreter.prototype.update = function (state, _event) {\n var e_2, _a, e_3, _b, e_4, _c, e_5, _d;\n\n var _this = this; // Attach session ID to state\n\n\n state._sessionid = this.sessionId; // Update state\n\n this._state = state; // Execute actions\n\n if ((!this.machine.config.predictableActionArguments || // this is currently required to execute initial actions as the `initialState` gets cached\n // we can't just recompute it (and execute actions while doing so) because we try to preserve identity of actors created within initial assigns\n _event === initEvent) && this.options.execute) {\n this.execute(this.state);\n } // Update children\n\n\n this.children.forEach(function (child) {\n _this.state.children[child.id] = child;\n }); // Dev tools\n\n if (this.devTools) {\n this.devTools.send(_event.data, state);\n } // Execute listeners\n\n\n if (state.event) {\n try {\n for (var _e = __values(this.eventListeners), _f = _e.next(); !_f.done; _f = _e.next()) {\n var listener = _f.value;\n listener(state.event);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n }\n\n try {\n for (var _g = __values(this.listeners), _h = _g.next(); !_h.done; _h = _g.next()) {\n var listener = _h.value;\n listener(state, state.event);\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_h && !_h.done && (_b = _g.return)) _b.call(_g);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n try {\n for (var _j = __values(this.contextListeners), _k = _j.next(); !_k.done; _k = _j.next()) {\n var contextListener = _k.value;\n contextListener(this.state.context, this.state.history ? this.state.history.context : undefined);\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (_k && !_k.done && (_c = _j.return)) _c.call(_j);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n if (this.state.done) {\n // get final child state node\n var finalChildStateNode = state.configuration.find(function (sn) {\n return sn.type === 'final' && sn.parent === _this.machine;\n });\n var doneData = finalChildStateNode && finalChildStateNode.doneData ? mapContext(finalChildStateNode.doneData, state.context, _event) : undefined;\n\n try {\n for (var _l = __values(this.doneListeners), _m = _l.next(); !_m.done; _m = _l.next()) {\n var listener = _m.value;\n listener(doneInvoke(this.id, doneData));\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_m && !_m.done && (_d = _l.return)) _d.call(_l);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n this._stop();\n }\n };\n /*\r\n * Adds a listener that is notified whenever a state transition happens. The listener is called with\r\n * the next state and the event object that caused the state transition.\r\n *\r\n * @param listener The state listener\r\n */\n\n\n Interpreter.prototype.onTransition = function (listener) {\n this.listeners.add(listener); // Send current state to listener\n\n if (this.status === InterpreterStatus.Running) {\n listener(this.state, this.state.event);\n }\n\n return this;\n };\n\n Interpreter.prototype.subscribe = function (nextListenerOrObserver, _, // TODO: error listener\n completeListener) {\n var _this = this;\n\n var observer = toObserver(nextListenerOrObserver, _, completeListener);\n this.listeners.add(observer.next); // Send current state to listener\n\n if (this.status !== InterpreterStatus.NotStarted) {\n observer.next(this.state);\n }\n\n var completeOnce = function () {\n _this.doneListeners.delete(completeOnce);\n\n _this.stopListeners.delete(completeOnce);\n\n observer.complete();\n };\n\n if (this.status === InterpreterStatus.Stopped) {\n observer.complete();\n } else {\n this.onDone(completeOnce);\n this.onStop(completeOnce);\n }\n\n return {\n unsubscribe: function () {\n _this.listeners.delete(observer.next);\n\n _this.doneListeners.delete(completeOnce);\n\n _this.stopListeners.delete(completeOnce);\n }\n };\n };\n /**\r\n * Adds an event listener that is notified whenever an event is sent to the running interpreter.\r\n * @param listener The event listener\r\n */\n\n\n Interpreter.prototype.onEvent = function (listener) {\n this.eventListeners.add(listener);\n return this;\n };\n /**\r\n * Adds an event listener that is notified whenever a `send` event occurs.\r\n * @param listener The event listener\r\n */\n\n\n Interpreter.prototype.onSend = function (listener) {\n this.sendListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a context listener that is notified whenever the state context changes.\r\n * @param listener The context listener\r\n */\n\n\n Interpreter.prototype.onChange = function (listener) {\n this.contextListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a listener that is notified when the machine is stopped.\r\n * @param listener The listener\r\n */\n\n\n Interpreter.prototype.onStop = function (listener) {\n this.stopListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a state listener that is notified when the statechart has reached its final state.\r\n * @param listener The state listener\r\n */\n\n\n Interpreter.prototype.onDone = function (listener) {\n this.doneListeners.add(listener);\n return this;\n };\n /**\r\n * Removes a listener.\r\n * @param listener The listener to remove\r\n */\n\n\n Interpreter.prototype.off = function (listener) {\n this.listeners.delete(listener);\n this.eventListeners.delete(listener);\n this.sendListeners.delete(listener);\n this.stopListeners.delete(listener);\n this.doneListeners.delete(listener);\n this.contextListeners.delete(listener);\n return this;\n };\n /**\r\n * Starts the interpreter from the given state, or the initial state.\r\n * @param initialState The state to start the statechart from\r\n */\n\n\n Interpreter.prototype.start = function (initialState) {\n var _this = this;\n\n if (this.status === InterpreterStatus.Running) {\n // Do not restart the service if it is already started\n return this;\n } // yes, it's a hack but we need the related cache to be populated for some things to work (like delayed transitions)\n // this is usually called by `machine.getInitialState` but if we rehydrate from a state we might bypass this call\n // we also don't want to call this method here as it resolves the full initial state which might involve calling assign actions\n // and that could potentially lead to some unwanted side-effects (even such as creating some rogue actors)\n\n\n this.machine._init();\n\n registry.register(this.sessionId, this);\n this.initialized = true;\n this.status = InterpreterStatus.Running;\n var resolvedState = initialState === undefined ? this.initialState : provide(this, function () {\n return isStateConfig(initialState) ? _this.machine.resolveState(initialState) : _this.machine.resolveState(State.from(initialState, _this.machine.context));\n });\n\n if (this.options.devTools) {\n this.attachDev();\n }\n\n this.scheduler.initialize(function () {\n _this.update(resolvedState, initEvent);\n });\n return this;\n };\n\n Interpreter.prototype._stop = function () {\n var e_6, _a, e_7, _b, e_8, _c, e_9, _d, e_10, _e;\n\n try {\n for (var _f = __values(this.listeners), _g = _f.next(); !_g.done; _g = _f.next()) {\n var listener = _g.value;\n this.listeners.delete(listener);\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (_g && !_g.done && (_a = _f.return)) _a.call(_f);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n\n try {\n for (var _h = __values(this.stopListeners), _j = _h.next(); !_j.done; _j = _h.next()) {\n var listener = _j.value; // call listener, then remove\n\n listener();\n this.stopListeners.delete(listener);\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_j && !_j.done && (_b = _h.return)) _b.call(_h);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n\n try {\n for (var _k = __values(this.contextListeners), _l = _k.next(); !_l.done; _l = _k.next()) {\n var listener = _l.value;\n this.contextListeners.delete(listener);\n }\n } catch (e_8_1) {\n e_8 = {\n error: e_8_1\n };\n } finally {\n try {\n if (_l && !_l.done && (_c = _k.return)) _c.call(_k);\n } finally {\n if (e_8) throw e_8.error;\n }\n }\n\n try {\n for (var _m = __values(this.doneListeners), _o = _m.next(); !_o.done; _o = _m.next()) {\n var listener = _o.value;\n this.doneListeners.delete(listener);\n }\n } catch (e_9_1) {\n e_9 = {\n error: e_9_1\n };\n } finally {\n try {\n if (_o && !_o.done && (_d = _m.return)) _d.call(_m);\n } finally {\n if (e_9) throw e_9.error;\n }\n }\n\n if (!this.initialized) {\n // Interpreter already stopped; do nothing\n return this;\n }\n\n this.initialized = false;\n this.status = InterpreterStatus.Stopped;\n this._initialState = undefined;\n\n try {\n // we are going to stop within the current sync frame\n // so we can safely just cancel this here as nothing async should be fired anyway\n for (var _p = __values(Object.keys(this.delayedEventsMap)), _q = _p.next(); !_q.done; _q = _p.next()) {\n var key = _q.value;\n this.clock.clearTimeout(this.delayedEventsMap[key]);\n }\n } catch (e_10_1) {\n e_10 = {\n error: e_10_1\n };\n } finally {\n try {\n if (_q && !_q.done && (_e = _p.return)) _e.call(_p);\n } finally {\n if (e_10) throw e_10.error;\n }\n } // clear everything that might be enqueued\n\n\n this.scheduler.clear();\n this.scheduler = new Scheduler({\n deferEvents: this.options.deferEvents\n });\n };\n /**\r\n * Stops the interpreter and unsubscribe all listeners.\r\n *\r\n * This will also notify the `onStop` listeners.\r\n */\n\n\n Interpreter.prototype.stop = function () {\n // TODO: add warning for stopping non-root interpreters\n var _this = this; // grab the current scheduler as it will be replaced in _stop\n\n\n var scheduler = this.scheduler;\n\n this._stop(); // let what is currently processed to be finished\n\n\n scheduler.schedule(function () {\n // it feels weird to handle this here but we need to handle this even slightly \"out of band\"\n var _event = toSCXMLEvent({\n type: 'xstate.stop'\n });\n\n var nextState = provide(_this, function () {\n var exitActions = flatten(__spreadArray([], __read(_this.state.configuration), false).sort(function (a, b) {\n return b.order - a.order;\n }).map(function (stateNode) {\n return toActionObjects(stateNode.onExit, _this.machine.options.actions);\n }));\n\n var _a = __read(resolveActions(_this.machine, _this.state, _this.state.context, _event, exitActions, _this.machine.config.predictableActionArguments ? _this._exec : undefined, _this.machine.config.predictableActionArguments || _this.machine.config.preserveActionOrder), 2),\n resolvedActions = _a[0],\n updatedContext = _a[1];\n\n var newState = new State({\n value: _this.state.value,\n context: updatedContext,\n _event: _event,\n _sessionid: _this.sessionId,\n historyValue: undefined,\n history: _this.state,\n actions: resolvedActions.filter(function (action) {\n return action.type !== raise && (action.type !== send || !!action.to && action.to !== SpecialTargets.Internal);\n }),\n activities: {},\n events: [],\n configuration: [],\n transitions: [],\n children: {},\n done: _this.state.done,\n tags: _this.state.tags,\n machine: _this.machine\n });\n newState.changed = true;\n return newState;\n });\n\n _this.update(nextState, _event); // TODO: think about converting those to actions\n // Stop all children\n\n\n _this.children.forEach(function (child) {\n if (isFunction(child.stop)) {\n child.stop();\n }\n });\n\n _this.children.clear();\n\n registry.free(_this.sessionId);\n });\n return this;\n };\n\n Interpreter.prototype.batch = function (events) {\n var _this = this;\n\n if (this.status === InterpreterStatus.NotStarted && this.options.deferEvents) {\n // tslint:disable-next-line:no-console\n if (!IS_PRODUCTION) {\n warn(false, \"\".concat(events.length, \" event(s) were sent to uninitialized service \\\"\").concat(this.machine.id, \"\\\" and are deferred. Make sure .start() is called for this service.\\nEvent: \").concat(JSON.stringify(event)));\n }\n } else if (this.status !== InterpreterStatus.Running) {\n throw new Error( // tslint:disable-next-line:max-line-length\n \"\".concat(events.length, \" event(s) were sent to uninitialized service \\\"\").concat(this.machine.id, \"\\\". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\"));\n }\n\n this.scheduler.schedule(function () {\n var e_11, _a;\n\n var nextState = _this.state;\n var batchChanged = false;\n var batchedActions = [];\n\n var _loop_1 = function (event_1) {\n var _event = toSCXMLEvent(event_1);\n\n _this.forward(_event);\n\n nextState = provide(_this, function () {\n return _this.machine.transition(nextState, _event);\n });\n batchedActions.push.apply(batchedActions, __spreadArray([], __read(nextState.actions.map(function (a) {\n return bindActionToState(a, nextState);\n })), false));\n batchChanged = batchChanged || !!nextState.changed;\n };\n\n try {\n for (var events_1 = __values(events), events_1_1 = events_1.next(); !events_1_1.done; events_1_1 = events_1.next()) {\n var event_1 = events_1_1.value;\n\n _loop_1(event_1);\n }\n } catch (e_11_1) {\n e_11 = {\n error: e_11_1\n };\n } finally {\n try {\n if (events_1_1 && !events_1_1.done && (_a = events_1.return)) _a.call(events_1);\n } finally {\n if (e_11) throw e_11.error;\n }\n }\n\n nextState.changed = batchChanged;\n nextState.actions = batchedActions;\n\n _this.update(nextState, toSCXMLEvent(events[events.length - 1]));\n });\n };\n /**\r\n * Returns a send function bound to this interpreter instance.\r\n *\r\n * @param event The event to be sent by the sender.\r\n */\n\n\n Interpreter.prototype.sender = function (event) {\n return this.send.bind(this, event);\n };\n\n Interpreter.prototype._nextState = function (event) {\n var _this = this;\n\n var _event = toSCXMLEvent(event);\n\n if (_event.name.indexOf(errorPlatform) === 0 && !this.state.nextEvents.some(function (nextEvent) {\n return nextEvent.indexOf(errorPlatform) === 0;\n })) {\n throw _event.data.data;\n }\n\n var nextState = provide(this, function () {\n return _this.machine.transition(_this.state, _event, undefined, _this.machine.config.predictableActionArguments ? _this._exec : undefined);\n });\n return nextState;\n };\n /**\r\n * Returns the next state given the interpreter's current state and the event.\r\n *\r\n * This is a pure method that does _not_ update the interpreter's state.\r\n *\r\n * @param event The event to determine the next state\r\n */\n\n\n Interpreter.prototype.nextState = function (event) {\n return this._nextState(event);\n };\n\n Interpreter.prototype.forward = function (event) {\n var e_12, _a;\n\n try {\n for (var _b = __values(this.forwardTo), _c = _b.next(); !_c.done; _c = _b.next()) {\n var id = _c.value;\n var child = this.children.get(id);\n\n if (!child) {\n throw new Error(\"Unable to forward event '\".concat(event, \"' from interpreter '\").concat(this.id, \"' to nonexistant child '\").concat(id, \"'.\"));\n }\n\n child.send(event);\n }\n } catch (e_12_1) {\n e_12 = {\n error: e_12_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_12) throw e_12.error;\n }\n }\n };\n\n Interpreter.prototype.defer = function (sendAction) {\n var _this = this;\n\n this.delayedEventsMap[sendAction.id] = this.clock.setTimeout(function () {\n if (sendAction.to) {\n _this.sendTo(sendAction._event, sendAction.to);\n } else {\n _this.send(sendAction._event);\n }\n }, sendAction.delay);\n };\n\n Interpreter.prototype.cancel = function (sendId) {\n this.clock.clearTimeout(this.delayedEventsMap[sendId]);\n delete this.delayedEventsMap[sendId];\n };\n\n Interpreter.prototype.exec = function (action, state, actionFunctionMap) {\n if (actionFunctionMap === void 0) {\n actionFunctionMap = this.machine.options.actions;\n }\n\n this._exec(action, state.context, state._event, actionFunctionMap);\n };\n\n Interpreter.prototype.removeChild = function (childId) {\n var _a;\n\n this.children.delete(childId);\n this.forwardTo.delete(childId); // this.state might not exist at the time this is called,\n // such as when a child is added then removed while initializing the state\n\n (_a = this.state) === null || _a === void 0 ? true : delete _a.children[childId];\n };\n\n Interpreter.prototype.stopChild = function (childId) {\n var child = this.children.get(childId);\n\n if (!child) {\n return;\n }\n\n this.removeChild(childId);\n\n if (isFunction(child.stop)) {\n child.stop();\n }\n };\n\n Interpreter.prototype.spawn = function (entity, name, options) {\n if (this.status !== InterpreterStatus.Running) {\n return createDeferredActor(entity, name);\n }\n\n if (isPromiseLike(entity)) {\n return this.spawnPromise(Promise.resolve(entity), name);\n } else if (isFunction(entity)) {\n return this.spawnCallback(entity, name);\n } else if (isSpawnedActor(entity)) {\n return this.spawnActor(entity, name);\n } else if (isObservable(entity)) {\n return this.spawnObservable(entity, name);\n } else if (isMachine(entity)) {\n return this.spawnMachine(entity, __assign(__assign({}, options), {\n id: name\n }));\n } else if (isBehavior(entity)) {\n return this.spawnBehavior(entity, name);\n } else {\n throw new Error(\"Unable to spawn entity \\\"\".concat(name, \"\\\" of type \\\"\").concat(typeof entity, \"\\\".\"));\n }\n };\n\n Interpreter.prototype.spawnMachine = function (machine, options) {\n var _this = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var childService = new Interpreter(machine, __assign(__assign({}, this.options), {\n parent: this,\n id: options.id || machine.id\n }));\n\n var resolvedOptions = __assign(__assign({}, DEFAULT_SPAWN_OPTIONS), options);\n\n if (resolvedOptions.sync) {\n childService.onTransition(function (state) {\n _this.send(update, {\n state: state,\n id: childService.id\n });\n });\n }\n\n var actor = childService;\n this.children.set(childService.id, actor);\n\n if (resolvedOptions.autoForward) {\n this.forwardTo.add(childService.id);\n }\n\n childService.onDone(function (doneEvent) {\n _this.removeChild(childService.id);\n\n _this.send(toSCXMLEvent(doneEvent, {\n origin: childService.id\n }));\n }).start();\n return actor;\n };\n\n Interpreter.prototype.spawnBehavior = function (behavior, id) {\n var actorRef = spawnBehavior(behavior, {\n id: id,\n parent: this\n });\n this.children.set(id, actorRef);\n return actorRef;\n };\n\n Interpreter.prototype.spawnPromise = function (promise, id) {\n var _a;\n\n var _this = this;\n\n var canceled = false;\n var resolvedData;\n promise.then(function (response) {\n if (!canceled) {\n resolvedData = response;\n\n _this.removeChild(id);\n\n _this.send(toSCXMLEvent(doneInvoke(id, response), {\n origin: id\n }));\n }\n }, function (errorData) {\n if (!canceled) {\n _this.removeChild(id);\n\n var errorEvent = error(id, errorData);\n\n try {\n // Send \"error.platform.id\" to this (parent).\n _this.send(toSCXMLEvent(errorEvent, {\n origin: id\n }));\n } catch (error) {\n reportUnhandledExceptionOnInvocation(errorData, error, id);\n\n if (_this.devTools) {\n _this.devTools.send(errorEvent, _this.state);\n }\n\n if (_this.machine.strict) {\n // it would be better to always stop the state machine if unhandled\n // exception/promise rejection happens but because we don't want to\n // break existing code so enforce it on strict mode only especially so\n // because documentation says that onError is optional\n _this.stop();\n }\n }\n }\n });\n var actor = (_a = {\n id: id,\n send: function () {\n return void 0;\n },\n subscribe: function (next, handleError, complete) {\n var observer = toObserver(next, handleError, complete);\n var unsubscribed = false;\n promise.then(function (response) {\n if (unsubscribed) {\n return;\n }\n\n observer.next(response);\n\n if (unsubscribed) {\n return;\n }\n\n observer.complete();\n }, function (err) {\n if (unsubscribed) {\n return;\n }\n\n observer.error(err);\n });\n return {\n unsubscribe: function () {\n return unsubscribed = true;\n }\n };\n },\n stop: function () {\n canceled = true;\n },\n toJSON: function () {\n return {\n id: id\n };\n },\n getSnapshot: function () {\n return resolvedData;\n }\n }, _a[symbolObservable] = function () {\n return this;\n }, _a);\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnCallback = function (callback, id) {\n var _a;\n\n var _this = this;\n\n var canceled = false;\n var receivers = new Set();\n var listeners = new Set();\n var emitted;\n\n var receive = function (e) {\n emitted = e;\n listeners.forEach(function (listener) {\n return listener(e);\n });\n\n if (canceled) {\n return;\n }\n\n _this.send(toSCXMLEvent(e, {\n origin: id\n }));\n };\n\n var callbackStop;\n\n try {\n callbackStop = callback(receive, function (newListener) {\n receivers.add(newListener);\n });\n } catch (err) {\n this.send(error(id, err));\n }\n\n if (isPromiseLike(callbackStop)) {\n // it turned out to be an async function, can't reliably check this before calling `callback`\n // because transpiled async functions are not recognizable\n return this.spawnPromise(callbackStop, id);\n }\n\n var actor = (_a = {\n id: id,\n send: function (event) {\n return receivers.forEach(function (receiver) {\n return receiver(event);\n });\n },\n subscribe: function (next) {\n var observer = toObserver(next);\n listeners.add(observer.next);\n return {\n unsubscribe: function () {\n listeners.delete(observer.next);\n }\n };\n },\n stop: function () {\n canceled = true;\n\n if (isFunction(callbackStop)) {\n callbackStop();\n }\n },\n toJSON: function () {\n return {\n id: id\n };\n },\n getSnapshot: function () {\n return emitted;\n }\n }, _a[symbolObservable] = function () {\n return this;\n }, _a);\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnObservable = function (source, id) {\n var _a;\n\n var _this = this;\n\n var emitted;\n var subscription = source.subscribe(function (value) {\n emitted = value;\n\n _this.send(toSCXMLEvent(value, {\n origin: id\n }));\n }, function (err) {\n _this.removeChild(id);\n\n _this.send(toSCXMLEvent(error(id, err), {\n origin: id\n }));\n }, function () {\n _this.removeChild(id);\n\n _this.send(toSCXMLEvent(doneInvoke(id), {\n origin: id\n }));\n });\n var actor = (_a = {\n id: id,\n send: function () {\n return void 0;\n },\n subscribe: function (next, handleError, complete) {\n return source.subscribe(next, handleError, complete);\n },\n stop: function () {\n return subscription.unsubscribe();\n },\n getSnapshot: function () {\n return emitted;\n },\n toJSON: function () {\n return {\n id: id\n };\n }\n }, _a[symbolObservable] = function () {\n return this;\n }, _a);\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnActor = function (actor, name) {\n this.children.set(name, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnActivity = function (activity) {\n var implementation = this.machine.options && this.machine.options.activities ? this.machine.options.activities[activity.type] : undefined;\n\n if (!implementation) {\n if (!IS_PRODUCTION) {\n warn(false, \"No implementation found for activity '\".concat(activity.type, \"'\"));\n } // tslint:disable-next-line:no-console\n\n\n return;\n } // Start implementation\n\n\n var dispose = implementation(this.state.context, activity);\n this.spawnEffect(activity.id, dispose);\n };\n\n Interpreter.prototype.spawnEffect = function (id, dispose) {\n var _a;\n\n this.children.set(id, (_a = {\n id: id,\n send: function () {\n return void 0;\n },\n subscribe: function () {\n return {\n unsubscribe: function () {\n return void 0;\n }\n };\n },\n stop: dispose || undefined,\n getSnapshot: function () {\n return undefined;\n },\n toJSON: function () {\n return {\n id: id\n };\n }\n }, _a[symbolObservable] = function () {\n return this;\n }, _a));\n };\n\n Interpreter.prototype.attachDev = function () {\n var global = getGlobal();\n\n if (this.options.devTools && global) {\n if (global.__REDUX_DEVTOOLS_EXTENSION__) {\n var devToolsOptions = typeof this.options.devTools === 'object' ? this.options.devTools : undefined;\n this.devTools = global.__REDUX_DEVTOOLS_EXTENSION__.connect(__assign(__assign({\n name: this.id,\n autoPause: true,\n stateSanitizer: function (state) {\n return {\n value: state.value,\n context: state.context,\n actions: state.actions\n };\n }\n }, devToolsOptions), {\n features: __assign({\n jump: false,\n skip: false\n }, devToolsOptions ? devToolsOptions.features : undefined)\n }), this.machine);\n this.devTools.init(this.state);\n } // add XState-specific dev tooling hook\n\n\n registerService(this);\n }\n };\n\n Interpreter.prototype.toJSON = function () {\n return {\n id: this.id\n };\n };\n\n Interpreter.prototype[symbolObservable] = function () {\n return this;\n };\n\n Interpreter.prototype.getSnapshot = function () {\n if (this.status === InterpreterStatus.NotStarted) {\n return this.initialState;\n }\n\n return this._state;\n };\n /**\r\n * The default interpreter options:\r\n *\r\n * - `clock` uses the global `setTimeout` and `clearTimeout` functions\r\n * - `logger` uses the global `console.log()` method\r\n */\n\n\n Interpreter.defaultOptions = {\n execute: true,\n deferEvents: true,\n clock: {\n setTimeout: function (fn, ms) {\n return setTimeout(fn, ms);\n },\n clearTimeout: function (id) {\n return clearTimeout(id);\n }\n },\n logger: /*#__PURE__*/console.log.bind(console),\n devTools: false\n };\n Interpreter.interpret = interpret;\n return Interpreter;\n}();\n\nvar resolveSpawnOptions = function (nameOrOptions) {\n if (isString(nameOrOptions)) {\n return __assign(__assign({}, DEFAULT_SPAWN_OPTIONS), {\n name: nameOrOptions\n });\n }\n\n return __assign(__assign(__assign({}, DEFAULT_SPAWN_OPTIONS), {\n name: uniqueId()\n }), nameOrOptions);\n};\n\nfunction spawn(entity, nameOrOptions) {\n var resolvedOptions = resolveSpawnOptions(nameOrOptions);\n return consume(function (service) {\n if (!IS_PRODUCTION) {\n var isLazyEntity = isMachine(entity) || isFunction(entity);\n warn(!!service || isLazyEntity, \"Attempted to spawn an Actor (ID: \\\"\".concat(isMachine(entity) ? entity.id : 'undefined', \"\\\") outside of a service. This will have no effect.\"));\n }\n\n if (service) {\n return service.spawn(entity, resolvedOptions.name, resolvedOptions);\n } else {\n return createDeferredActor(entity, resolvedOptions.name);\n }\n });\n}\n/**\r\n * Creates a new Interpreter instance for the given machine with the provided options, if any.\r\n *\r\n * @param machine The machine to interpret\r\n * @param options Interpreter options\r\n */\n\nfunction interpret(machine, options) {\n var interpreter = new Interpreter(machine, options);\n return interpreter;\n}\n\nexport { Interpreter, InterpreterStatus, interpret, spawn };\n","export var ReactEffectType;\n(function (ReactEffectType) {\n ReactEffectType[ReactEffectType[\"Effect\"] = 1] = \"Effect\";\n ReactEffectType[ReactEffectType[\"LayoutEffect\"] = 2] = \"LayoutEffect\";\n})(ReactEffectType || (ReactEffectType = {}));\n","import * as React from 'react';\nexport default function useConstant(fn) {\n var ref = React.useRef();\n if (!ref.current) {\n ref.current = { v: fn() };\n }\n return ref.current.v;\n}\n","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nexport function partition(items, predicate) {\n var e_1, _a;\n var _b = __read([[], []], 2), truthy = _b[0], falsy = _b[1];\n try {\n for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n var item = items_1_1.value;\n if (predicate(item)) {\n truthy.push(item);\n }\n else {\n falsy.push(item);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return [truthy, falsy];\n}\n","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { useEffect, useRef } from 'react';\nimport useIsomorphicLayoutEffect from 'use-isomorphic-layout-effect';\nimport { ReactEffectType } from './types';\nimport { partition } from './utils';\nfunction executeEffect(action, state) {\n var exec = action.exec;\n var originalExec = exec(state.context, state._event.data, {\n action: action,\n state: state,\n _event: state._event\n });\n originalExec();\n}\nexport function useReactEffectActions(service) {\n var effectActionsRef = useRef([]);\n var layoutEffectActionsRef = useRef([]);\n useIsomorphicLayoutEffect(function () {\n var sub = service.subscribe(function (currentState) {\n var _a, _b;\n if (currentState.actions.length) {\n var reactEffectActions = currentState.actions.filter(function (action) {\n return (typeof action.exec === 'function' &&\n '__effect' in action.exec);\n });\n var _c = __read(partition(reactEffectActions, function (action) {\n return action.exec.__effect === ReactEffectType.Effect;\n }), 2), effectActions = _c[0], layoutEffectActions = _c[1];\n (_a = effectActionsRef.current).push.apply(_a, __spreadArray([], __read(effectActions.map(function (effectAction) { return [effectAction, currentState]; })), false));\n (_b = layoutEffectActionsRef.current).push.apply(_b, __spreadArray([], __read(layoutEffectActions.map(function (layoutEffectAction) { return [layoutEffectAction, currentState]; })), false));\n }\n });\n return function () {\n sub.unsubscribe();\n };\n }, []);\n // this is somewhat weird - this should always be flushed within useLayoutEffect\n // but we don't want to receive warnings about useLayoutEffect being used on the server\n // so we have to use `useIsomorphicLayoutEffect` to silence those warnings\n useIsomorphicLayoutEffect(function () {\n while (layoutEffectActionsRef.current.length) {\n var _a = __read(layoutEffectActionsRef.current.shift(), 2), layoutEffectAction = _a[0], effectState = _a[1];\n executeEffect(layoutEffectAction, effectState);\n }\n }); // https://github.com/davidkpiano/xstate/pull/1202#discussion_r429677773\n useEffect(function () {\n while (effectActionsRef.current.length) {\n var _a = __read(effectActionsRef.current.shift(), 2), effectAction = _a[0], effectState = _a[1];\n executeEffect(effectAction, effectState);\n }\n });\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { useState } from 'react';\nimport useIsomorphicLayoutEffect from 'use-isomorphic-layout-effect';\nimport { interpret, State } from 'xstate';\nimport useConstant from './useConstant';\nimport { useReactEffectActions } from './useReactEffectActions';\n// copied from core/src/utils.ts\n// it avoids a breaking change between this package and XState which is its peer dep\nfunction toObserver(nextHandler, errorHandler, completionHandler) {\n if (typeof nextHandler === 'object') {\n return nextHandler;\n }\n var noop = function () { return void 0; };\n return {\n next: nextHandler,\n error: errorHandler || noop,\n complete: completionHandler || noop\n };\n}\nexport function useInterpret(getMachine, options, observerOrListener) {\n if (options === void 0) { options = {}; }\n var machine = useConstant(function () {\n return typeof getMachine === 'function' ? getMachine() : getMachine;\n });\n if (process.env.NODE_ENV !== 'production' &&\n typeof getMachine !== 'function') {\n var _a = __read(useState(machine), 1), initialMachine = _a[0];\n if (getMachine !== initialMachine) {\n console.warn('Machine given to `useMachine` has changed between renders. This is not supported and might lead to unexpected results.\\n' +\n 'Please make sure that you pass the same Machine as argument each time.');\n }\n }\n var context = options.context, guards = options.guards, actions = options.actions, activities = options.activities, services = options.services, delays = options.delays, rehydratedState = options.state, interpreterOptions = __rest(options, [\"context\", \"guards\", \"actions\", \"activities\", \"services\", \"delays\", \"state\"]);\n var service = useConstant(function () {\n var machineConfig = {\n context: context,\n guards: guards,\n actions: actions,\n activities: activities,\n services: services,\n delays: delays\n };\n var machineWithConfig = machine.withConfig(machineConfig, function () { return (__assign(__assign({}, machine.context), context)); });\n return interpret(machineWithConfig, __assign({ deferEvents: true }, interpreterOptions));\n });\n useIsomorphicLayoutEffect(function () {\n var sub;\n if (observerOrListener) {\n sub = service.subscribe(toObserver(observerOrListener));\n }\n return function () {\n sub === null || sub === void 0 ? void 0 : sub.unsubscribe();\n };\n }, [observerOrListener]);\n useIsomorphicLayoutEffect(function () {\n service.start(rehydratedState ? State.create(rehydratedState) : undefined);\n return function () {\n service.stop();\n };\n }, []);\n // Make sure options are kept updated when they change.\n // This mutation assignment is safe because the service instance is only used\n // in one place -- this hook's caller.\n useIsomorphicLayoutEffect(function () {\n Object.assign(service.machine.options.actions, actions);\n Object.assign(service.machine.options.guards, guards);\n Object.assign(service.machine.options.activities, activities);\n Object.assign(service.machine.options.services, services);\n Object.assign(service.machine.options.delays, delays);\n }, [actions, guards, activities, services, delays]);\n useReactEffectActions(service);\n return service;\n}\n","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { useCallback, useState } from 'react';\nimport { State } from 'xstate';\nimport { ReactEffectType } from './types';\nimport { useInterpret } from './useInterpret';\nfunction createReactActionFunction(exec, tag) {\n var effectExec = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // don't execute; just return\n return function () {\n return exec.apply(void 0, __spreadArray([], __read(args), false));\n };\n };\n Object.defineProperties(effectExec, {\n name: { value: \"effect:\".concat(exec.name) },\n __effect: { value: tag }\n });\n return effectExec;\n}\nexport function asEffect(exec) {\n return createReactActionFunction(exec, ReactEffectType.Effect);\n}\nexport function asLayoutEffect(exec) {\n return createReactActionFunction(exec, ReactEffectType.LayoutEffect);\n}\nexport function useMachine(getMachine, options) {\n if (options === void 0) { options = {}; }\n var listener = useCallback(function (nextState) {\n // Only change the current state if:\n // - the incoming state is the \"live\" initial state (since it might have new actors)\n // - OR the incoming state actually changed.\n //\n // The \"live\" initial state will have .changed === undefined.\n var initialStateChanged = nextState.changed === undefined &&\n Object.keys(nextState.children).length;\n if (nextState.changed || initialStateChanged) {\n setState(nextState);\n }\n }, []);\n var service = useInterpret(getMachine, options, listener);\n var _a = __read(useState(function () {\n var initialState = service.machine.initialState;\n return (options.state\n ? State.create(options.state)\n : initialState);\n }), 2), state = _a[0], setState = _a[1];\n return [state, service.send, service];\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport React, { useState, useCallback, forwardRef, useRef, useEffect, useImperativeHandle, useMemo } from 'react';\n\nconst is = {\n arr: Array.isArray,\n obj: a => Object.prototype.toString.call(a) === '[object Object]',\n fun: a => typeof a === 'function',\n str: a => typeof a === 'string',\n num: a => typeof a === 'number',\n und: a => a === void 0,\n nul: a => a === null,\n set: a => a instanceof Set,\n map: a => a instanceof Map,\n\n equ(a, b) {\n if (typeof a !== typeof b) return false;\n if (is.str(a) || is.num(a)) return a === b;\n if (is.obj(a) && is.obj(b) && Object.keys(a).length + Object.keys(b).length === 0) return true;\n let i;\n\n for (i in a) if (!(i in b)) return false;\n\n for (i in b) if (a[i] !== b[i]) return false;\n\n return is.und(i) ? a === b : true;\n }\n\n};\nfunction merge(target, lowercase) {\n if (lowercase === void 0) {\n lowercase = true;\n }\n\n return object => (is.arr(object) ? object : Object.keys(object)).reduce((acc, element) => {\n const key = lowercase ? element[0].toLowerCase() + element.substring(1) : element;\n acc[key] = target(key);\n return acc;\n }, target);\n}\nfunction useForceUpdate() {\n const _useState = useState(false),\n f = _useState[1];\n\n const forceUpdate = useCallback(() => f(v => !v), []);\n return forceUpdate;\n}\nfunction withDefault(value, defaultValue) {\n return is.und(value) || is.nul(value) ? defaultValue : value;\n}\nfunction toArray(a) {\n return !is.und(a) ? is.arr(a) ? a : [a] : [];\n}\nfunction callProp(obj) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return is.fun(obj) ? obj(...args) : obj;\n}\n\nfunction getForwardProps(props) {\n const to = props.to,\n from = props.from,\n config = props.config,\n onStart = props.onStart,\n onRest = props.onRest,\n onFrame = props.onFrame,\n children = props.children,\n reset = props.reset,\n reverse = props.reverse,\n force = props.force,\n immediate = props.immediate,\n delay = props.delay,\n attach = props.attach,\n destroyed = props.destroyed,\n interpolateTo = props.interpolateTo,\n ref = props.ref,\n lazy = props.lazy,\n forward = _objectWithoutPropertiesLoose(props, [\"to\", \"from\", \"config\", \"onStart\", \"onRest\", \"onFrame\", \"children\", \"reset\", \"reverse\", \"force\", \"immediate\", \"delay\", \"attach\", \"destroyed\", \"interpolateTo\", \"ref\", \"lazy\"]);\n\n return forward;\n}\n\nfunction interpolateTo(props) {\n const forward = getForwardProps(props);\n if (is.und(forward)) return _extends({\n to: forward\n }, props);\n const rest = Object.keys(props).reduce((a, k) => !is.und(forward[k]) ? a : _extends({}, a, {\n [k]: props[k]\n }), {});\n return _extends({\n to: forward\n }, rest);\n}\nfunction handleRef(ref, forward) {\n if (forward) {\n // If it's a function, assume it's a ref callback\n if (is.fun(forward)) forward(ref);else if (is.obj(forward)) {\n forward.current = ref;\n }\n }\n\n return ref;\n}\n\nclass Animated {\n constructor() {\n this.payload = void 0;\n this.children = [];\n }\n\n getAnimatedValue() {\n return this.getValue();\n }\n\n getPayload() {\n return this.payload || this;\n }\n\n attach() {}\n\n detach() {}\n\n getChildren() {\n return this.children;\n }\n\n addChild(child) {\n if (this.children.length === 0) this.attach();\n this.children.push(child);\n }\n\n removeChild(child) {\n const index = this.children.indexOf(child);\n this.children.splice(index, 1);\n if (this.children.length === 0) this.detach();\n }\n\n}\nclass AnimatedArray extends Animated {\n constructor() {\n super(...arguments);\n this.payload = [];\n\n this.attach = () => this.payload.forEach(p => p instanceof Animated && p.addChild(this));\n\n this.detach = () => this.payload.forEach(p => p instanceof Animated && p.removeChild(this));\n }\n\n}\nclass AnimatedObject extends Animated {\n constructor() {\n super(...arguments);\n this.payload = {};\n\n this.attach = () => Object.values(this.payload).forEach(s => s instanceof Animated && s.addChild(this));\n\n this.detach = () => Object.values(this.payload).forEach(s => s instanceof Animated && s.removeChild(this));\n }\n\n getValue(animated) {\n if (animated === void 0) {\n animated = false;\n }\n\n const payload = {};\n\n for (const key in this.payload) {\n const value = this.payload[key];\n if (animated && !(value instanceof Animated)) continue;\n payload[key] = value instanceof Animated ? value[animated ? 'getAnimatedValue' : 'getValue']() : value;\n }\n\n return payload;\n }\n\n getAnimatedValue() {\n return this.getValue(true);\n }\n\n}\n\nlet applyAnimatedValues;\nfunction injectApplyAnimatedValues(fn, transform) {\n applyAnimatedValues = {\n fn,\n transform\n };\n}\nlet colorNames;\nfunction injectColorNames(names) {\n colorNames = names;\n}\nlet requestFrame = cb => typeof window !== 'undefined' ? window.requestAnimationFrame(cb) : -1;\nlet cancelFrame = id => {\n typeof window !== 'undefined' && window.cancelAnimationFrame(id);\n};\nfunction injectFrame(raf, caf) {\n requestFrame = raf;\n cancelFrame = caf;\n}\nlet interpolation;\nfunction injectStringInterpolator(fn) {\n interpolation = fn;\n}\nlet now = () => Date.now();\nfunction injectNow(nowFn) {\n now = nowFn;\n}\nlet defaultElement;\nfunction injectDefaultElement(el) {\n defaultElement = el;\n}\nlet animatedApi = node => node.current;\nfunction injectAnimatedApi(fn) {\n animatedApi = fn;\n}\nlet createAnimatedStyle;\nfunction injectCreateAnimatedStyle(factory) {\n createAnimatedStyle = factory;\n}\nlet manualFrameloop;\nfunction injectManualFrameloop(callback) {\n manualFrameloop = callback;\n}\n\nvar Globals = /*#__PURE__*/Object.freeze({\n get applyAnimatedValues () { return applyAnimatedValues; },\n injectApplyAnimatedValues: injectApplyAnimatedValues,\n get colorNames () { return colorNames; },\n injectColorNames: injectColorNames,\n get requestFrame () { return requestFrame; },\n get cancelFrame () { return cancelFrame; },\n injectFrame: injectFrame,\n get interpolation () { return interpolation; },\n injectStringInterpolator: injectStringInterpolator,\n get now () { return now; },\n injectNow: injectNow,\n get defaultElement () { return defaultElement; },\n injectDefaultElement: injectDefaultElement,\n get animatedApi () { return animatedApi; },\n injectAnimatedApi: injectAnimatedApi,\n get createAnimatedStyle () { return createAnimatedStyle; },\n injectCreateAnimatedStyle: injectCreateAnimatedStyle,\n get manualFrameloop () { return manualFrameloop; },\n injectManualFrameloop: injectManualFrameloop\n});\n\n/**\n * Wraps the `style` property with `AnimatedStyle`.\n */\n\nclass AnimatedProps extends AnimatedObject {\n constructor(props, callback) {\n super();\n this.update = void 0;\n this.payload = !props.style ? props : _extends({}, props, {\n style: createAnimatedStyle(props.style)\n });\n this.update = callback;\n this.attach();\n }\n\n}\n\nconst isFunctionComponent = val => is.fun(val) && !(val.prototype instanceof React.Component);\n\nconst createAnimatedComponent = Component => {\n const AnimatedComponent = forwardRef((props, ref) => {\n const forceUpdate = useForceUpdate();\n const mounted = useRef(true);\n const propsAnimated = useRef(null);\n const node = useRef(null);\n const attachProps = useCallback(props => {\n const oldPropsAnimated = propsAnimated.current;\n\n const callback = () => {\n let didUpdate = false;\n\n if (node.current) {\n didUpdate = applyAnimatedValues.fn(node.current, propsAnimated.current.getAnimatedValue());\n }\n\n if (!node.current || didUpdate === false) {\n // If no referenced node has been found, or the update target didn't have a\n // native-responder, then forceUpdate the animation ...\n forceUpdate();\n }\n };\n\n propsAnimated.current = new AnimatedProps(props, callback);\n oldPropsAnimated && oldPropsAnimated.detach();\n }, []);\n useEffect(() => () => {\n mounted.current = false;\n propsAnimated.current && propsAnimated.current.detach();\n }, []);\n useImperativeHandle(ref, () => animatedApi(node, mounted, forceUpdate));\n attachProps(props);\n\n const _getValue = propsAnimated.current.getValue(),\n scrollTop = _getValue.scrollTop,\n scrollLeft = _getValue.scrollLeft,\n animatedProps = _objectWithoutPropertiesLoose(_getValue, [\"scrollTop\", \"scrollLeft\"]); // Functions cannot have refs, see:\n // See: https://github.com/react-spring/react-spring/issues/569\n\n\n const refFn = isFunctionComponent(Component) ? undefined : childRef => node.current = handleRef(childRef, ref);\n return React.createElement(Component, _extends({}, animatedProps, {\n ref: refFn\n }));\n });\n return AnimatedComponent;\n};\n\nlet active = false;\nconst controllers = new Set();\n\nconst update = () => {\n if (!active) return false;\n let time = now();\n\n for (let controller of controllers) {\n let isActive = false;\n\n for (let configIdx = 0; configIdx < controller.configs.length; configIdx++) {\n let config = controller.configs[configIdx];\n let endOfAnimation, lastTime;\n\n for (let valIdx = 0; valIdx < config.animatedValues.length; valIdx++) {\n let animation = config.animatedValues[valIdx]; // If an animation is done, skip, until all of them conclude\n\n if (animation.done) continue;\n let from = config.fromValues[valIdx];\n let to = config.toValues[valIdx];\n let position = animation.lastPosition;\n let isAnimated = to instanceof Animated;\n let velocity = Array.isArray(config.initialVelocity) ? config.initialVelocity[valIdx] : config.initialVelocity;\n if (isAnimated) to = to.getValue(); // Conclude animation if it's either immediate, or from-values match end-state\n\n if (config.immediate) {\n animation.setValue(to);\n animation.done = true;\n continue;\n } // Break animation when string values are involved\n\n\n if (typeof from === 'string' || typeof to === 'string') {\n animation.setValue(to);\n animation.done = true;\n continue;\n }\n\n if (config.duration !== void 0) {\n /** Duration easing */\n position = from + config.easing((time - animation.startTime) / config.duration) * (to - from);\n endOfAnimation = time >= animation.startTime + config.duration;\n } else if (config.decay) {\n /** Decay easing */\n position = from + velocity / (1 - 0.998) * (1 - Math.exp(-(1 - 0.998) * (time - animation.startTime)));\n endOfAnimation = Math.abs(animation.lastPosition - position) < 0.1;\n if (endOfAnimation) to = position;\n } else {\n /** Spring easing */\n lastTime = animation.lastTime !== void 0 ? animation.lastTime : time;\n velocity = animation.lastVelocity !== void 0 ? animation.lastVelocity : config.initialVelocity; // If we lost a lot of frames just jump to the end.\n\n if (time > lastTime + 64) lastTime = time; // http://gafferongames.com/game-physics/fix-your-timestep/\n\n let numSteps = Math.floor(time - lastTime);\n\n for (let i = 0; i < numSteps; ++i) {\n let force = -config.tension * (position - to);\n let damping = -config.friction * velocity;\n let acceleration = (force + damping) / config.mass;\n velocity = velocity + acceleration * 1 / 1000;\n position = position + velocity * 1 / 1000;\n } // Conditions for stopping the spring animation\n\n\n let isOvershooting = config.clamp && config.tension !== 0 ? from < to ? position > to : position < to : false;\n let isVelocity = Math.abs(velocity) <= config.precision;\n let isDisplacement = config.tension !== 0 ? Math.abs(to - position) <= config.precision : true;\n endOfAnimation = isOvershooting || isVelocity && isDisplacement;\n animation.lastVelocity = velocity;\n animation.lastTime = time;\n } // Trails aren't done until their parents conclude\n\n\n if (isAnimated && !config.toValues[valIdx].done) endOfAnimation = false;\n\n if (endOfAnimation) {\n // Ensure that we end up with a round value\n if (animation.value !== to) position = to;\n animation.done = true;\n } else isActive = true;\n\n animation.setValue(position);\n animation.lastPosition = position;\n } // Keep track of updated values only when necessary\n\n\n if (controller.props.onFrame) controller.values[config.name] = config.interpolation.getValue();\n } // Update callbacks in the end of the frame\n\n\n if (controller.props.onFrame) controller.props.onFrame(controller.values); // Either call onEnd or next frame\n\n if (!isActive) {\n controllers.delete(controller);\n controller.stop(true);\n }\n } // Loop over as long as there are controllers ...\n\n\n if (controllers.size) {\n if (manualFrameloop) manualFrameloop();else requestFrame(update);\n } else {\n active = false;\n }\n\n return active;\n};\n\nconst start = controller => {\n if (!controllers.has(controller)) controllers.add(controller);\n\n if (!active) {\n active = true;\n if (manualFrameloop) requestFrame(manualFrameloop);else requestFrame(update);\n }\n};\n\nconst stop = controller => {\n if (controllers.has(controller)) controllers.delete(controller);\n};\n\nfunction createInterpolator(range, output, extrapolate) {\n if (typeof range === 'function') {\n return range;\n }\n\n if (Array.isArray(range)) {\n return createInterpolator({\n range,\n output: output,\n extrapolate\n });\n }\n\n if (interpolation && typeof range.output[0] === 'string') {\n return interpolation(range);\n }\n\n const config = range;\n const outputRange = config.output;\n const inputRange = config.range || [0, 1];\n const extrapolateLeft = config.extrapolateLeft || config.extrapolate || 'extend';\n const extrapolateRight = config.extrapolateRight || config.extrapolate || 'extend';\n\n const easing = config.easing || (t => t);\n\n return input => {\n const range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, config.map);\n };\n}\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {\n let result = map ? map(input) : input; // Extrapolate\n\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') return result;else if (extrapolateLeft === 'clamp') result = inputMin;\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') return result;else if (extrapolateRight === 'clamp') result = inputMax;\n }\n\n if (outputMin === outputMax) return outputMin;\n if (inputMin === inputMax) return input <= inputMin ? outputMin : outputMax; // Input Range\n\n if (inputMin === -Infinity) result = -result;else if (inputMax === Infinity) result = result - inputMin;else result = (result - inputMin) / (inputMax - inputMin); // Easing\n\n result = easing(result); // Output Range\n\n if (outputMin === -Infinity) result = -result;else if (outputMax === Infinity) result = result + outputMin;else result = result * (outputMax - outputMin) + outputMin;\n return result;\n}\n\nfunction findRange(input, inputRange) {\n for (var i = 1; i < inputRange.length - 1; ++i) if (inputRange[i] >= input) break;\n\n return i - 1;\n}\n\nclass AnimatedInterpolation extends AnimatedArray {\n constructor(parents, range, output, extrapolate) {\n super();\n this.calc = void 0;\n this.payload = parents instanceof AnimatedArray && !(parents instanceof AnimatedInterpolation) ? parents.getPayload() : Array.isArray(parents) ? parents : [parents];\n this.calc = createInterpolator(range, output, extrapolate);\n }\n\n getValue() {\n return this.calc(...this.payload.map(value => value.getValue()));\n }\n\n updateConfig(range, output, extrapolate) {\n this.calc = createInterpolator(range, output, extrapolate);\n }\n\n interpolate(range, output, extrapolate) {\n return new AnimatedInterpolation(this, range, output, extrapolate);\n }\n\n}\n\nconst interpolate$1 = (parents, range, output) => parents && new AnimatedInterpolation(parents, range, output);\n\nconst config = {\n default: {\n tension: 170,\n friction: 26\n },\n gentle: {\n tension: 120,\n friction: 14\n },\n wobbly: {\n tension: 180,\n friction: 12\n },\n stiff: {\n tension: 210,\n friction: 20\n },\n slow: {\n tension: 280,\n friction: 60\n },\n molasses: {\n tension: 280,\n friction: 120\n }\n};\n\n/** API\n * useChain(references, timeSteps, timeFrame)\n */\n\nfunction useChain(refs, timeSteps, timeFrame) {\n if (timeFrame === void 0) {\n timeFrame = 1000;\n }\n\n const previous = useRef();\n useEffect(() => {\n if (is.equ(refs, previous.current)) refs.forEach((_ref) => {\n let current = _ref.current;\n return current && current.start();\n });else if (timeSteps) {\n refs.forEach((_ref2, index) => {\n let current = _ref2.current;\n\n if (current) {\n const ctrls = current.controllers;\n\n if (ctrls.length) {\n const t = timeFrame * timeSteps[index];\n ctrls.forEach(ctrl => {\n ctrl.queue = ctrl.queue.map(e => _extends({}, e, {\n delay: e.delay + t\n }));\n ctrl.start();\n });\n }\n }\n });\n } else refs.reduce((q, _ref3, rI) => {\n let current = _ref3.current;\n return q = q.then(() => current.start());\n }, Promise.resolve());\n previous.current = refs;\n });\n}\n\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n * new Animated.Value(0)\n * .interpolate() .interpolate() new Animated.Value(1)\n * opacity translateY scale\n * style transform\n * View#234 style\n * View#123\n *\n * A) Top Down phase\n * When an AnimatedValue is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\nfunction addAnimatedStyles(node, styles) {\n if ('update' in node) {\n styles.add(node);\n } else {\n node.getChildren().forEach(child => addAnimatedStyles(child, styles));\n }\n}\n\nclass AnimatedValue extends Animated {\n constructor(_value) {\n var _this;\n\n super();\n _this = this;\n this.animatedStyles = new Set();\n this.value = void 0;\n this.startPosition = void 0;\n this.lastPosition = void 0;\n this.lastVelocity = void 0;\n this.startTime = void 0;\n this.lastTime = void 0;\n this.done = false;\n\n this.setValue = function (value, flush) {\n if (flush === void 0) {\n flush = true;\n }\n\n _this.value = value;\n if (flush) _this.flush();\n };\n\n this.value = _value;\n this.startPosition = _value;\n this.lastPosition = _value;\n }\n\n flush() {\n if (this.animatedStyles.size === 0) {\n addAnimatedStyles(this, this.animatedStyles);\n }\n\n this.animatedStyles.forEach(animatedStyle => animatedStyle.update());\n }\n\n clearStyles() {\n this.animatedStyles.clear();\n }\n\n getValue() {\n return this.value;\n }\n\n interpolate(range, output, extrapolate) {\n return new AnimatedInterpolation(this, range, output, extrapolate);\n }\n\n}\n\nclass AnimatedValueArray extends AnimatedArray {\n constructor(values) {\n super();\n this.payload = values.map(n => new AnimatedValue(n));\n }\n\n setValue(value, flush) {\n if (flush === void 0) {\n flush = true;\n }\n\n if (Array.isArray(value)) {\n if (value.length === this.payload.length) {\n value.forEach((v, i) => this.payload[i].setValue(v, flush));\n }\n } else {\n this.payload.forEach(p => p.setValue(value, flush));\n }\n }\n\n getValue() {\n return this.payload.map(v => v.getValue());\n }\n\n interpolate(range, output) {\n return new AnimatedInterpolation(this, range, output);\n }\n\n}\n\nlet G = 0;\n\nclass Controller {\n constructor() {\n this.id = void 0;\n this.idle = true;\n this.hasChanged = false;\n this.guid = 0;\n this.local = 0;\n this.props = {};\n this.merged = {};\n this.animations = {};\n this.interpolations = {};\n this.values = {};\n this.configs = [];\n this.listeners = [];\n this.queue = [];\n this.localQueue = void 0;\n\n this.getValues = () => this.interpolations;\n\n this.id = G++;\n }\n /** update(props)\n * This function filters input props and creates an array of tasks which are executed in .start()\n * Each task is allowed to carry a delay, which means it can execute asnychroneously */\n\n\n update(args) {\n //this._id = n + this.id\n if (!args) return this; // Extract delay and the to-prop from props\n\n const _ref = interpolateTo(args),\n _ref$delay = _ref.delay,\n delay = _ref$delay === void 0 ? 0 : _ref$delay,\n to = _ref.to,\n props = _objectWithoutPropertiesLoose(_ref, [\"delay\", \"to\"]);\n\n if (is.arr(to) || is.fun(to)) {\n // If config is either a function or an array queue it up as is\n this.queue.push(_extends({}, props, {\n delay,\n to\n }));\n } else if (to) {\n // Otherwise go through each key since it could be delayed individually\n let ops = {};\n Object.entries(to).forEach((_ref2) => {\n let k = _ref2[0],\n v = _ref2[1];\n\n // Fetch delay and create an entry, consisting of the to-props, the delay, and basic props\n const entry = _extends({\n to: {\n [k]: v\n },\n delay: callProp(delay, k)\n }, props);\n\n const previous = ops[entry.delay] && ops[entry.delay].to;\n ops[entry.delay] = _extends({}, ops[entry.delay], entry, {\n to: _extends({}, previous, entry.to)\n });\n });\n this.queue = Object.values(ops);\n } // Sort queue, so that async calls go last\n\n\n this.queue = this.queue.sort((a, b) => a.delay - b.delay); // Diff the reduced props immediately (they'll contain the from-prop and some config)\n\n this.diff(props);\n return this;\n }\n /** start(onEnd)\n * This function either executes a queue, if present, or starts the frameloop, which animates */\n\n\n start(onEnd) {\n // If a queue is present we must excecute it\n if (this.queue.length) {\n this.idle = false; // Updates can interrupt trailing queues, in that case we just merge values\n\n if (this.localQueue) {\n this.localQueue.forEach((_ref3) => {\n let _ref3$from = _ref3.from,\n from = _ref3$from === void 0 ? {} : _ref3$from,\n _ref3$to = _ref3.to,\n to = _ref3$to === void 0 ? {} : _ref3$to;\n if (is.obj(from)) this.merged = _extends({}, from, this.merged);\n if (is.obj(to)) this.merged = _extends({}, this.merged, to);\n });\n } // The guid helps us tracking frames, a new queue over an old one means an override\n // We discard async calls in that caseÍ\n\n\n const local = this.local = ++this.guid;\n const queue = this.localQueue = this.queue;\n this.queue = []; // Go through each entry and execute it\n\n queue.forEach((_ref4, index) => {\n let delay = _ref4.delay,\n props = _objectWithoutPropertiesLoose(_ref4, [\"delay\"]);\n\n const cb = finished => {\n if (index === queue.length - 1 && local === this.guid && finished) {\n this.idle = true;\n if (this.props.onRest) this.props.onRest(this.merged);\n }\n\n if (onEnd) onEnd();\n }; // Entries can be delayed, ansyc or immediate\n\n\n let async = is.arr(props.to) || is.fun(props.to);\n\n if (delay) {\n setTimeout(() => {\n if (local === this.guid) {\n if (async) this.runAsync(props, cb);else this.diff(props).start(cb);\n }\n }, delay);\n } else if (async) this.runAsync(props, cb);else this.diff(props).start(cb);\n });\n } // Otherwise we kick of the frameloop\n else {\n if (is.fun(onEnd)) this.listeners.push(onEnd);\n if (this.props.onStart) this.props.onStart();\n start(this);\n }\n\n return this;\n }\n\n stop(finished) {\n this.listeners.forEach(onEnd => onEnd(finished));\n this.listeners = [];\n return this;\n }\n /** Pause sets onEnd listeners free, but also removes the controller from the frameloop */\n\n\n pause(finished) {\n this.stop(true);\n if (finished) stop(this);\n return this;\n }\n\n runAsync(_ref5, onEnd) {\n var _this = this;\n\n let delay = _ref5.delay,\n props = _objectWithoutPropertiesLoose(_ref5, [\"delay\"]);\n\n const local = this.local; // If \"to\" is either a function or an array it will be processed async, therefor \"to\" should be empty right now\n // If the view relies on certain values \"from\" has to be present\n\n let queue = Promise.resolve(undefined);\n\n if (is.arr(props.to)) {\n for (let i = 0; i < props.to.length; i++) {\n const index = i;\n\n const fresh = _extends({}, props, interpolateTo(props.to[index]));\n\n if (is.arr(fresh.config)) fresh.config = fresh.config[index];\n queue = queue.then(() => {\n //this.stop()\n if (local === this.guid) return new Promise(r => this.diff(fresh).start(r));\n });\n }\n } else if (is.fun(props.to)) {\n let index = 0;\n let last;\n queue = queue.then(() => props.to( // next(props)\n p => {\n const fresh = _extends({}, props, interpolateTo(p));\n\n if (is.arr(fresh.config)) fresh.config = fresh.config[index];\n index++; //this.stop()\n\n if (local === this.guid) return last = new Promise(r => this.diff(fresh).start(r));\n return;\n }, // cancel()\n function (finished) {\n if (finished === void 0) {\n finished = true;\n }\n\n return _this.stop(finished);\n }).then(() => last));\n }\n\n queue.then(onEnd);\n }\n\n diff(props) {\n this.props = _extends({}, this.props, props);\n let _this$props = this.props,\n _this$props$from = _this$props.from,\n from = _this$props$from === void 0 ? {} : _this$props$from,\n _this$props$to = _this$props.to,\n to = _this$props$to === void 0 ? {} : _this$props$to,\n _this$props$config = _this$props.config,\n config = _this$props$config === void 0 ? {} : _this$props$config,\n reverse = _this$props.reverse,\n attach = _this$props.attach,\n reset = _this$props.reset,\n immediate = _this$props.immediate; // Reverse values when requested\n\n if (reverse) {\n var _ref6 = [to, from];\n from = _ref6[0];\n to = _ref6[1];\n } // This will collect all props that were ever set, reset merged props when necessary\n\n\n this.merged = _extends({}, from, this.merged, to);\n this.hasChanged = false; // Attachment handling, trailed springs can \"attach\" themselves to a previous spring\n\n let target = attach && attach(this); // Reduces input { name: value } pairs into animated values\n\n this.animations = Object.entries(this.merged).reduce((acc, _ref7) => {\n let name = _ref7[0],\n value = _ref7[1];\n // Issue cached entries, except on reset\n let entry = acc[name] || {}; // Figure out what the value is supposed to be\n\n const isNumber = is.num(value);\n const isString = is.str(value) && !value.startsWith('#') && !/\\d/.test(value) && !colorNames[value];\n const isArray = is.arr(value);\n const isInterpolation = !isNumber && !isArray && !isString;\n let fromValue = !is.und(from[name]) ? from[name] : value;\n let toValue = isNumber || isArray ? value : isString ? value : 1;\n let toConfig = callProp(config, name);\n if (target) toValue = target.animations[name].parent;\n let parent = entry.parent,\n interpolation$$1 = entry.interpolation,\n toValues = toArray(target ? toValue.getPayload() : toValue),\n animatedValues;\n let newValue = value;\n if (isInterpolation) newValue = interpolation({\n range: [0, 1],\n output: [value, value]\n })(1);\n let currentValue = interpolation$$1 && interpolation$$1.getValue(); // Change detection flags\n\n const isFirst = is.und(parent);\n const isActive = !isFirst && entry.animatedValues.some(v => !v.done);\n const currentValueDiffersFromGoal = !is.equ(newValue, currentValue);\n const hasNewGoal = !is.equ(newValue, entry.previous);\n const hasNewConfig = !is.equ(toConfig, entry.config); // Change animation props when props indicate a new goal (new value differs from previous one)\n // and current values differ from it. Config changes trigger a new update as well (though probably shouldn't?)\n\n if (reset || hasNewGoal && currentValueDiffersFromGoal || hasNewConfig) {\n // Convert regular values into animated values, ALWAYS re-use if possible\n if (isNumber || isString) parent = interpolation$$1 = entry.parent || new AnimatedValue(fromValue);else if (isArray) parent = interpolation$$1 = entry.parent || new AnimatedValueArray(fromValue);else if (isInterpolation) {\n let prev = entry.interpolation && entry.interpolation.calc(entry.parent.value);\n prev = prev !== void 0 && !reset ? prev : fromValue;\n\n if (entry.parent) {\n parent = entry.parent;\n parent.setValue(0, false);\n } else parent = new AnimatedValue(0);\n\n const range = {\n output: [prev, value]\n };\n\n if (entry.interpolation) {\n interpolation$$1 = entry.interpolation;\n entry.interpolation.updateConfig(range);\n } else interpolation$$1 = parent.interpolate(range);\n }\n toValues = toArray(target ? toValue.getPayload() : toValue);\n animatedValues = toArray(parent.getPayload());\n if (reset && !isInterpolation) parent.setValue(fromValue, false);\n this.hasChanged = true; // Reset animated values\n\n animatedValues.forEach(value => {\n value.startPosition = value.value;\n value.lastPosition = value.value;\n value.lastVelocity = isActive ? value.lastVelocity : undefined;\n value.lastTime = isActive ? value.lastTime : undefined;\n value.startTime = now();\n value.done = false;\n value.animatedStyles.clear();\n }); // Set immediate values\n\n if (callProp(immediate, name)) {\n parent.setValue(isInterpolation ? toValue : value, false);\n }\n\n return _extends({}, acc, {\n [name]: _extends({}, entry, {\n name,\n parent,\n interpolation: interpolation$$1,\n animatedValues,\n toValues,\n previous: newValue,\n config: toConfig,\n fromValues: toArray(parent.getValue()),\n immediate: callProp(immediate, name),\n initialVelocity: withDefault(toConfig.velocity, 0),\n clamp: withDefault(toConfig.clamp, false),\n precision: withDefault(toConfig.precision, 0.01),\n tension: withDefault(toConfig.tension, 170),\n friction: withDefault(toConfig.friction, 26),\n mass: withDefault(toConfig.mass, 1),\n duration: toConfig.duration,\n easing: withDefault(toConfig.easing, t => t),\n decay: toConfig.decay\n })\n });\n } else {\n if (!currentValueDiffersFromGoal) {\n // So ... the current target value (newValue) appears to be different from the previous value,\n // which normally constitutes an update, but the actual value (currentValue) matches the target!\n // In order to resolve this without causing an animation update we silently flag the animation as done,\n // which it technically is. Interpolations also needs a config update with their target set to 1.\n if (isInterpolation) {\n parent.setValue(1, false);\n interpolation$$1.updateConfig({\n output: [newValue, newValue]\n });\n }\n\n parent.done = true;\n this.hasChanged = true;\n return _extends({}, acc, {\n [name]: _extends({}, acc[name], {\n previous: newValue\n })\n });\n }\n\n return acc;\n }\n }, this.animations);\n\n if (this.hasChanged) {\n // Make animations available to frameloop\n this.configs = Object.values(this.animations);\n this.values = {};\n this.interpolations = {};\n\n for (let key in this.animations) {\n this.interpolations[key] = this.animations[key].interpolation;\n this.values[key] = this.animations[key].interpolation.getValue();\n }\n }\n\n return this;\n }\n\n destroy() {\n this.stop();\n this.props = {};\n this.merged = {};\n this.animations = {};\n this.interpolations = {};\n this.values = {};\n this.configs = [];\n this.local = 0;\n }\n\n}\n\n/** API\n * const props = useSprings(number, [{ ... }, { ... }, ...])\n * const [props, set] = useSprings(number, (i, controller) => ({ ... }))\n */\n\nconst useSprings = (length, props) => {\n const mounted = useRef(false);\n const ctrl = useRef();\n const isFn = is.fun(props); // The controller maintains the animation values, starts and stops animations\n\n const _useMemo = useMemo(() => {\n // Remove old controllers\n if (ctrl.current) {\n ctrl.current.map(c => c.destroy());\n ctrl.current = undefined;\n }\n\n let ref;\n return [new Array(length).fill().map((_, i) => {\n const ctrl = new Controller();\n const newProps = isFn ? callProp(props, i, ctrl) : props[i];\n if (i === 0) ref = newProps.ref;\n ctrl.update(newProps);\n if (!ref) ctrl.start();\n return ctrl;\n }), ref];\n }, [length]),\n controllers = _useMemo[0],\n ref = _useMemo[1];\n\n ctrl.current = controllers; // The hooks reference api gets defined here ...\n\n const api = useImperativeHandle(ref, () => ({\n start: () => Promise.all(ctrl.current.map(c => new Promise(r => c.start(r)))),\n stop: finished => ctrl.current.forEach(c => c.stop(finished)),\n\n get controllers() {\n return ctrl.current;\n }\n\n })); // This function updates the controllers\n\n const updateCtrl = useMemo(() => updateProps => ctrl.current.map((c, i) => {\n c.update(isFn ? callProp(updateProps, i, c) : updateProps[i]);\n if (!ref) c.start();\n }), [length]); // Update controller if props aren't functional\n\n useEffect(() => {\n if (mounted.current) {\n if (!isFn) updateCtrl(props);\n } else if (!ref) ctrl.current.forEach(c => c.start());\n }); // Update mounted flag and destroy controller on unmount\n\n useEffect(() => (mounted.current = true, () => ctrl.current.forEach(c => c.destroy())), []); // Return animated props, or, anim-props + the update-setter above\n\n const propValues = ctrl.current.map(c => c.getValues());\n return isFn ? [propValues, updateCtrl, finished => ctrl.current.forEach(c => c.pause(finished))] : propValues;\n};\n\n/** API\n * const props = useSpring({ ... })\n * const [props, set] = useSpring(() => ({ ... }))\n */\n\nconst useSpring = props => {\n const isFn = is.fun(props);\n\n const _useSprings = useSprings(1, isFn ? props : [props]),\n result = _useSprings[0],\n set = _useSprings[1],\n pause = _useSprings[2];\n\n return isFn ? [result[0], set, pause] : result;\n};\n\n/** API\n * const trails = useTrail(number, { ... })\n * const [trails, set] = useTrail(number, () => ({ ... }))\n */\n\nconst useTrail = (length, props) => {\n const mounted = useRef(false);\n const isFn = is.fun(props);\n const updateProps = callProp(props);\n const instances = useRef();\n\n const _useSprings = useSprings(length, (i, ctrl) => {\n if (i === 0) instances.current = [];\n instances.current.push(ctrl);\n return _extends({}, updateProps, {\n config: callProp(updateProps.config, i),\n attach: i > 0 && (() => instances.current[i - 1])\n });\n }),\n result = _useSprings[0],\n set = _useSprings[1],\n pause = _useSprings[2]; // Set up function to update controller\n\n\n const updateCtrl = useMemo(() => props => set((i, ctrl) => {\n const last = props.reverse ? i === 0 : length - 1 === i;\n const attachIdx = props.reverse ? i + 1 : i - 1;\n const attachController = instances.current[attachIdx];\n return _extends({}, props, {\n config: callProp(props.config || updateProps.config, i),\n attach: attachController && (() => attachController)\n });\n }), [length, updateProps.reverse]); // Update controller if props aren't functional\n\n useEffect(() => void (mounted.current && !isFn && updateCtrl(props))); // Update mounted flag and destroy controller on unmount\n\n useEffect(() => void (mounted.current = true), []);\n return isFn ? [result, updateCtrl, pause] : result;\n};\n\n/** API\n * const transitions = useTransition(items, itemKeys, { ... })\n * const [transitions, update] = useTransition(items, itemKeys, () => ({ ... }))\n */\n\nlet guid = 0;\nconst ENTER = 'enter';\nconst LEAVE = 'leave';\nconst UPDATE = 'update';\n\nconst mapKeys = (items, keys) => (typeof keys === 'function' ? items.map(keys) : toArray(keys)).map(String);\n\nconst get = props => {\n let items = props.items,\n _props$keys = props.keys,\n keys = _props$keys === void 0 ? item => item : _props$keys,\n rest = _objectWithoutPropertiesLoose(props, [\"items\", \"keys\"]);\n\n items = toArray(items !== void 0 ? items : null);\n return _extends({\n items,\n keys: mapKeys(items, keys)\n }, rest);\n};\n\nfunction useTransition(input, keyTransform, config) {\n const props = _extends({\n items: input,\n keys: keyTransform || (i => i)\n }, config);\n\n const _get = get(props),\n _get$lazy = _get.lazy,\n lazy = _get$lazy === void 0 ? false : _get$lazy,\n _get$unique = _get.unique,\n _get$reset = _get.reset,\n reset = _get$reset === void 0 ? false : _get$reset,\n enter = _get.enter,\n leave = _get.leave,\n update = _get.update,\n onDestroyed = _get.onDestroyed,\n keys = _get.keys,\n items = _get.items,\n onFrame = _get.onFrame,\n _onRest = _get.onRest,\n onStart = _get.onStart,\n ref = _get.ref,\n extra = _objectWithoutPropertiesLoose(_get, [\"lazy\", \"unique\", \"reset\", \"enter\", \"leave\", \"update\", \"onDestroyed\", \"keys\", \"items\", \"onFrame\", \"onRest\", \"onStart\", \"ref\"]);\n\n const forceUpdate = useForceUpdate();\n const mounted = useRef(false);\n const state = useRef({\n mounted: false,\n first: true,\n deleted: [],\n current: {},\n transitions: [],\n prevProps: {},\n paused: !!props.ref,\n instances: !mounted.current && new Map(),\n forceUpdate\n });\n useImperativeHandle(props.ref, () => ({\n start: () => Promise.all(Array.from(state.current.instances).map((_ref) => {\n let c = _ref[1];\n return new Promise(r => c.start(r));\n })),\n stop: finished => Array.from(state.current.instances).forEach((_ref2) => {\n let c = _ref2[1];\n return c.stop(finished);\n }),\n\n get controllers() {\n return Array.from(state.current.instances).map((_ref3) => {\n let c = _ref3[1];\n return c;\n });\n }\n\n })); // Update state\n\n state.current = diffItems(state.current, props);\n\n if (state.current.changed) {\n // Update state\n state.current.transitions.forEach(transition => {\n const slot = transition.slot,\n from = transition.from,\n to = transition.to,\n config = transition.config,\n trail = transition.trail,\n key = transition.key,\n item = transition.item;\n if (!state.current.instances.has(key)) state.current.instances.set(key, new Controller()); // update the map object\n\n const ctrl = state.current.instances.get(key);\n\n const newProps = _extends({}, extra, {\n to,\n from,\n config,\n ref,\n onRest: values => {\n if (state.current.mounted) {\n if (transition.destroyed) {\n // If no ref is given delete destroyed items immediately\n if (!ref && !lazy) cleanUp(state, key);\n if (onDestroyed) onDestroyed(item);\n } // A transition comes to rest once all its springs conclude\n\n\n const curInstances = Array.from(state.current.instances);\n const active = curInstances.some((_ref4) => {\n let c = _ref4[1];\n return !c.idle;\n });\n if (!active && (ref || lazy) && state.current.deleted.length > 0) cleanUp(state);\n if (_onRest) _onRest(item, slot, values);\n }\n },\n onStart: onStart && (() => onStart(item, slot)),\n onFrame: onFrame && (values => onFrame(item, slot, values)),\n delay: trail,\n reset: reset && slot === ENTER // Update controller\n\n });\n\n ctrl.update(newProps);\n if (!state.current.paused) ctrl.start();\n });\n }\n\n useEffect(() => {\n state.current.mounted = mounted.current = true;\n return () => {\n state.current.mounted = mounted.current = false;\n Array.from(state.current.instances).map((_ref5) => {\n let c = _ref5[1];\n return c.destroy();\n });\n state.current.instances.clear();\n };\n }, []);\n return state.current.transitions.map((_ref6) => {\n let item = _ref6.item,\n slot = _ref6.slot,\n key = _ref6.key;\n return {\n item,\n key,\n state: slot,\n props: state.current.instances.get(key).getValues()\n };\n });\n}\n\nfunction cleanUp(state, filterKey) {\n const deleted = state.current.deleted;\n\n for (let _ref7 of deleted) {\n let key = _ref7.key;\n\n const filter = t => t.key !== key;\n\n if (is.und(filterKey) || filterKey === key) {\n state.current.instances.delete(key);\n state.current.transitions = state.current.transitions.filter(filter);\n state.current.deleted = state.current.deleted.filter(filter);\n }\n }\n\n state.current.forceUpdate();\n}\n\nfunction diffItems(_ref8, props) {\n let first = _ref8.first,\n prevProps = _ref8.prevProps,\n state = _objectWithoutPropertiesLoose(_ref8, [\"first\", \"prevProps\"]);\n\n let _get2 = get(props),\n items = _get2.items,\n keys = _get2.keys,\n initial = _get2.initial,\n from = _get2.from,\n enter = _get2.enter,\n leave = _get2.leave,\n update = _get2.update,\n _get2$trail = _get2.trail,\n trail = _get2$trail === void 0 ? 0 : _get2$trail,\n unique = _get2.unique,\n config = _get2.config,\n _get2$order = _get2.order,\n order = _get2$order === void 0 ? [ENTER, LEAVE, UPDATE] : _get2$order;\n\n let _get3 = get(prevProps),\n _keys = _get3.keys,\n _items = _get3.items;\n\n let current = _extends({}, state.current);\n\n let deleted = [...state.deleted]; // Compare next keys with current keys\n\n let currentKeys = Object.keys(current);\n let currentSet = new Set(currentKeys);\n let nextSet = new Set(keys);\n let added = keys.filter(item => !currentSet.has(item));\n let removed = state.transitions.filter(item => !item.destroyed && !nextSet.has(item.originalKey)).map(i => i.originalKey);\n let updated = keys.filter(item => currentSet.has(item));\n let delay = -trail;\n\n while (order.length) {\n const changeType = order.shift();\n\n switch (changeType) {\n case ENTER:\n {\n added.forEach((key, index) => {\n // In unique mode, remove fading out transitions if their key comes in again\n if (unique && deleted.find(d => d.originalKey === key)) deleted = deleted.filter(t => t.originalKey !== key);\n const keyIndex = keys.indexOf(key);\n const item = items[keyIndex];\n const slot = first && initial !== void 0 ? 'initial' : ENTER;\n current[key] = {\n slot,\n originalKey: key,\n key: unique ? String(key) : guid++,\n item,\n trail: delay = delay + trail,\n config: callProp(config, item, slot),\n from: callProp(first ? initial !== void 0 ? initial || {} : from : from, item),\n to: callProp(enter, item)\n };\n });\n break;\n }\n\n case LEAVE:\n {\n removed.forEach(key => {\n const keyIndex = _keys.indexOf(key);\n\n const item = _items[keyIndex];\n const slot = LEAVE;\n deleted.unshift(_extends({}, current[key], {\n slot,\n destroyed: true,\n left: _keys[Math.max(0, keyIndex - 1)],\n right: _keys[Math.min(_keys.length, keyIndex + 1)],\n trail: delay = delay + trail,\n config: callProp(config, item, slot),\n to: callProp(leave, item)\n }));\n delete current[key];\n });\n break;\n }\n\n case UPDATE:\n {\n updated.forEach(key => {\n const keyIndex = keys.indexOf(key);\n const item = items[keyIndex];\n const slot = UPDATE;\n current[key] = _extends({}, current[key], {\n item,\n slot,\n trail: delay = delay + trail,\n config: callProp(config, item, slot),\n to: callProp(update, item)\n });\n });\n break;\n }\n }\n }\n\n let out = keys.map(key => current[key]); // This tries to restore order for deleted items by finding their last known siblings\n // only using the left sibling to keep order placement consistent for all deleted items\n\n deleted.forEach((_ref9) => {\n let left = _ref9.left,\n right = _ref9.right,\n item = _objectWithoutPropertiesLoose(_ref9, [\"left\", \"right\"]);\n\n let pos; // Was it the element on the left, if yes, move there ...\n\n if ((pos = out.findIndex(t => t.originalKey === left)) !== -1) pos += 1; // And if nothing else helps, move it to the start ¯\\_(ツ)_/¯\n\n pos = Math.max(0, pos);\n out = [...out.slice(0, pos), item, ...out.slice(pos)];\n });\n return _extends({}, state, {\n changed: added.length || removed.length || updated.length,\n first: first && added.length === 0,\n transitions: out,\n current,\n deleted,\n prevProps: props\n });\n}\n\nclass AnimatedStyle extends AnimatedObject {\n constructor(style) {\n if (style === void 0) {\n style = {};\n }\n\n super();\n\n if (style.transform && !(style.transform instanceof Animated)) {\n style = applyAnimatedValues.transform(style);\n }\n\n this.payload = style;\n }\n\n}\n\n// http://www.w3.org/TR/css3-color/#svg-color\nconst colors = {\n transparent: 0x00000000,\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff\n};\n\n// const INTEGER = '[-+]?\\\\d+';\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call() {\n for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n parts[_key] = arguments[_key];\n }\n\n return '\\\\(\\\\s*(' + parts.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nconst rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\nconst rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));\nconst hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));\nconst hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\nconst hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nconst hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nconst hex6 = /^#([0-9a-fA-F]{6})$/;\nconst hex8 = /^#([0-9a-fA-F]{8})$/;\n\n/*\nhttps://github.com/react-community/normalize-css-color\n\nBSD 3-Clause License\n\nCopyright (c) 2016, React Community\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\nfunction normalizeColor(color) {\n let match;\n\n if (typeof color === 'number') {\n return color >>> 0 === color && color >= 0 && color <= 0xffffffff ? color : null;\n } // Ordered based on occurrences on Facebook codebase\n\n\n if (match = hex6.exec(color)) return parseInt(match[1] + 'ff', 16) >>> 0;\n if (colors.hasOwnProperty(color)) return colors[color];\n\n if (match = rgb.exec(color)) {\n return (parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n 0x000000ff) >>> // a\n 0;\n }\n\n if (match = rgba.exec(color)) {\n return (parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n parse1(match[4])) >>> // a\n 0;\n }\n\n if (match = hex3.exec(color)) {\n return parseInt(match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n 'ff', // a\n 16) >>> 0;\n } // https://drafts.csswg.org/css-color-4/#hex-notation\n\n\n if (match = hex8.exec(color)) return parseInt(match[1], 16) >>> 0;\n\n if (match = hex4.exec(color)) {\n return parseInt(match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n match[4] + match[4], // a\n 16) >>> 0;\n }\n\n if (match = hsl.exec(color)) {\n return (hslToRgb(parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) | 0x000000ff) >>> // a\n 0;\n }\n\n if (match = hsla.exec(color)) {\n return (hslToRgb(parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) | parse1(match[4])) >>> // a\n 0;\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n}\n\nfunction parse255(str) {\n const int = parseInt(str, 10);\n if (int < 0) return 0;\n if (int > 255) return 255;\n return int;\n}\n\nfunction parse360(str) {\n const int = parseFloat(str);\n return (int % 360 + 360) % 360 / 360;\n}\n\nfunction parse1(str) {\n const num = parseFloat(str);\n if (num < 0) return 0;\n if (num > 1) return 255;\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n const int = parseFloat(str);\n if (int < 0) return 0;\n if (int > 100) return 1;\n return int / 100;\n}\n\nfunction colorToRgba(input) {\n let int32Color = normalizeColor(input);\n if (int32Color === null) return input;\n int32Color = int32Color || 0;\n let r = (int32Color & 0xff000000) >>> 24;\n let g = (int32Color & 0x00ff0000) >>> 16;\n let b = (int32Color & 0x0000ff00) >>> 8;\n let a = (int32Color & 0x000000ff) / 255;\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n} // Problem: https://github.com/animatedjs/animated/pull/102\n// Solution: https://stackoverflow.com/questions/638565/parsing-scientific-notation-sensibly/658662\n\n\nconst stringShapeRegex = /[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g; // Covers rgb, rgba, hsl, hsla\n// Taken from https://gist.github.com/olmokramer/82ccce673f86db7cda5e\n\nconst colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi; // Covers color names (transparent, blue, etc.)\n\nconst colorNamesRegex = new RegExp(`(${Object.keys(colors).join('|')})`, 'g');\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape. Supports\n * things like:\n *\n * rgba(123, 42, 99, 0.36) // colors\n * -45deg // values with units\n * 0 2px 2px 0px rgba(0, 0, 0, 0.12) // box shadows\n */\n\nconst createStringInterpolator = config => {\n // Replace colors with rgba\n const outputRange = config.output.map(rangeValue => rangeValue.replace(colorRegex, colorToRgba)).map(rangeValue => rangeValue.replace(colorNamesRegex, colorToRgba));\n const outputRanges = outputRange[0].match(stringShapeRegex).map(() => []);\n outputRange.forEach(value => {\n value.match(stringShapeRegex).forEach((number, i) => outputRanges[i].push(+number));\n });\n const interpolations = outputRange[0].match(stringShapeRegex).map((_value, i) => createInterpolator(_extends({}, config, {\n output: outputRanges[i]\n })));\n return input => {\n let i = 0;\n return outputRange[0] // 'rgba(0, 100, 200, 0)'\n // ->\n // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'\n .replace(stringShapeRegex, () => interpolations[i++](input)) // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n // round the opacity (4th column).\n .replace(/rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi, (_, p1, p2, p3, p4) => `rgba(${Math.round(p1)}, ${Math.round(p2)}, ${Math.round(p3)}, ${p4})`);\n };\n};\n\nlet isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nconst prefixKey = (prefix, key) => prefix + key.charAt(0).toUpperCase() + key.substring(1);\n\nconst prefixes = ['Webkit', 'Ms', 'Moz', 'O'];\nisUnitlessNumber = Object.keys(isUnitlessNumber).reduce((acc, prop) => {\n prefixes.forEach(prefix => acc[prefixKey(prefix, prop)] = acc[prop]);\n return acc;\n}, isUnitlessNumber);\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n if (value == null || typeof value === 'boolean' || value === '') return '';\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n\n return ('' + value).trim();\n}\n\nconst attributeCache = {};\ninjectCreateAnimatedStyle(style => new AnimatedStyle(style));\ninjectDefaultElement('div');\ninjectStringInterpolator(createStringInterpolator);\ninjectColorNames(colors);\ninjectApplyAnimatedValues((instance, props) => {\n if (instance.nodeType && instance.setAttribute !== undefined) {\n const style = props.style,\n children = props.children,\n scrollTop = props.scrollTop,\n scrollLeft = props.scrollLeft,\n attributes = _objectWithoutPropertiesLoose(props, [\"style\", \"children\", \"scrollTop\", \"scrollLeft\"]);\n\n const filter = instance.nodeName === 'filter' || instance.parentNode && instance.parentNode.nodeName === 'filter';\n if (scrollTop !== void 0) instance.scrollTop = scrollTop;\n if (scrollLeft !== void 0) instance.scrollLeft = scrollLeft; // Set textContent, if children is an animatable value\n\n if (children !== void 0) instance.textContent = children; // Set styles ...\n\n for (let styleName in style) {\n if (!style.hasOwnProperty(styleName)) continue;\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = dangerousStyleValue(styleName, style[styleName], isCustomProperty);\n if (styleName === 'float') styleName = 'cssFloat';\n if (isCustomProperty) instance.style.setProperty(styleName, styleValue);else instance.style[styleName] = styleValue;\n } // Set attributes ...\n\n\n for (let name in attributes) {\n // Attributes are written in dash case\n const dashCase = filter ? name : attributeCache[name] || (attributeCache[name] = name.replace(/([A-Z])/g, n => '-' + n.toLowerCase()));\n if (typeof instance.getAttribute(dashCase) !== 'undefined') instance.setAttribute(dashCase, attributes[name]);\n }\n\n return;\n } else return false;\n}, style => style);\n\nconst domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n// Extend animated with all the available THREE elements\nconst apply = merge(createAnimatedComponent, false);\nconst extendedAnimated = apply(domElements);\n\nexport { apply, config, update, extendedAnimated as animated, extendedAnimated as a, interpolate$1 as interpolate, Globals, useSpring, useTrail, useTransition, useChain, useSprings };\n","import React, { useRef } from 'react';\n\n// vector add\nfunction addV(v1, v2) {\n return v1.map(function (v, i) {\n return v + v2[i];\n });\n} // vector substract\n\nfunction subV(v1, v2) {\n return v1.map(function (v, i) {\n return v - v2[i];\n });\n}\n/**\r\n * Calculates distance\r\n * @param movement the difference between current and initial vectors\r\n * @returns distance\r\n */\n\nfunction calculateDistance(movement) {\n return Math.hypot.apply(Math, movement);\n}\nfunction calculateAllGeometry(movement, delta) {\n if (delta === void 0) {\n delta = movement;\n }\n\n var dl = calculateDistance(delta);\n var alpha = dl === 0 ? 0 : 1 / dl;\n var direction = delta.map(function (v) {\n return alpha * v;\n });\n var distance = calculateDistance(movement);\n return {\n distance: distance,\n direction: direction\n };\n}\n/**\r\n * Calculates all kinematics\r\n * @template T the expected vector type\r\n * @param movement the difference between current and initial vectors\r\n * @param delta the difference between current and previous vectors\r\n * @param delta_t the time difference between current and previous timestamps\r\n * @returns all kinematics\r\n */\n\nfunction calculateAllKinematics(movement, delta, dt) {\n var dl = calculateDistance(delta);\n var alpha = dl === 0 ? 0 : 1 / dl;\n var beta = dt === 0 ? 0 : 1 / dt;\n var velocity = beta * dl;\n var velocities = delta.map(function (v) {\n return beta * v;\n });\n var direction = delta.map(function (v) {\n return alpha * v;\n });\n var distance = calculateDistance(movement);\n return {\n velocities: velocities,\n velocity: velocity,\n distance: distance,\n direction: direction\n };\n}\n/**\r\n * Because IE doesn't support `Math.sign` function, so we use the polyfill version of the function.\r\n * This polyfill function is suggested by Mozilla:\r\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign#Polyfill\r\n * @param x target number\r\n */\n\nfunction sign(x) {\n if (Math.sign) return Math.sign(x);\n return Number(x > 0) - Number(x < 0) || +x;\n}\n\nfunction minMax(value, min, max) {\n return Math.max(min, Math.min(value, max));\n} // Based on @aholachek ;)\n// https://twitter.com/chpwn/status/285540192096497664\n// iOS constant = 0.55\n// https://medium.com/@nathangitter/building-fluid-interfaces-ios-swift-9732bb934bf5\n\n\nfunction rubberband2(distance, constant) {\n // default constant from the article is 0.7\n return Math.pow(distance, constant * 5);\n}\n\nfunction rubberband(distance, dimension, constant) {\n if (dimension === 0 || Math.abs(dimension) === Infinity) return rubberband2(distance, constant);\n return distance * dimension * constant / (dimension + constant * distance);\n}\n\nfunction rubberbandIfOutOfBounds(position, min, max, constant) {\n if (constant === void 0) {\n constant = 0.15;\n }\n\n if (constant === 0) return minMax(position, min, max);\n if (position < min) return -rubberband(min - position, max - min, constant) + min;\n if (position > max) return +rubberband(position - max, max - min, constant) + max;\n return position;\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\nfunction noop() {}\n/**\r\n * TODO Beware that only optimized cases are covered in tests =)\r\n * TODO Need to cover general case as well\r\n *\r\n * @param fns\r\n */\n\nfunction chainFns() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n if (fns.length === 0) return noop;\n if (fns.length === 1) return fns[0];\n return function () {\n var result;\n\n for (var _iterator = _createForOfIteratorHelperLoose(fns), _step; !(_step = _iterator()).done;) {\n var fn = _step.value;\n result = fn.apply(this, arguments) || result;\n }\n\n return result;\n };\n}\n/**\r\n * Expects a simple value or 2D vector (an array with 2 elements) and\r\n * always returns 2D vector. If simple value is passed, returns a\r\n * vector with this value as both coordinates.\r\n *\r\n * @param value\r\n */\n\nfunction ensureVector(value, fallback) {\n if (value === undefined) {\n if (fallback === undefined) {\n throw new Error('Must define fallback value if undefined is expected');\n }\n\n value = fallback;\n }\n\n if (Array.isArray(value)) return value;\n return [value, value];\n}\n/**\r\n * Helper for defining a default value\r\n *\r\n * @param value\r\n * @param fallback\r\n */\n\nfunction assignDefault(value, fallback) {\n return Object.assign({}, fallback, value || {});\n}\n/**\r\n * Resolves getters (functions) by calling them\r\n * If simple value is given it just passes through\r\n *\r\n * @param v\r\n */\n\nfunction valueFn(v) {\n if (typeof v === 'function') {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n // @ts-ignore\n return v.apply(void 0, args);\n } else {\n return v;\n }\n}\n\nfunction resolveWith(config, resolvers) {\n if (config === void 0) {\n config = {};\n }\n\n var result = {};\n\n for (var _i = 0, _Object$entries = Object.entries(resolvers); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _Object$entries[_i],\n key = _Object$entries$_i[0],\n resolver = _Object$entries$_i[1];\n\n switch (typeof resolver) {\n case 'function':\n result[key] = resolver.call(result, config[key], key, config);\n break;\n\n case 'object':\n result[key] = resolveWith(config[key], resolver);\n break;\n\n case 'boolean':\n if (resolver) result[key] = config[key];\n break;\n }\n }\n\n return result;\n}\n\nvar DEFAULT_DRAG_DELAY = 180;\nvar DEFAULT_RUBBERBAND = 0.15;\nvar DEFAULT_SWIPE_VELOCITY = 0.5;\nvar DEFAULT_SWIPE_DISTANCE = 60;\nvar InternalGestureOptionsNormalizers = {\n threshold: function threshold(value) {\n if (value === void 0) {\n value = 0;\n }\n\n return ensureVector(value);\n },\n rubberband: function rubberband(value) {\n if (value === void 0) {\n value = 0;\n }\n\n switch (value) {\n case true:\n return ensureVector(DEFAULT_RUBBERBAND);\n\n case false:\n return ensureVector(0);\n\n default:\n return ensureVector(value);\n }\n },\n enabled: function enabled(value) {\n if (value === void 0) {\n value = true;\n }\n\n return value;\n },\n triggerAllEvents: function triggerAllEvents(value) {\n if (value === void 0) {\n value = false;\n }\n\n return value;\n },\n initial: function initial(value) {\n if (value === void 0) {\n value = 0;\n }\n\n if (typeof value === 'function') return value;\n return ensureVector(value);\n }\n};\n\nvar InternalCoordinatesOptionsNormalizers = /*#__PURE__*/_extends({}, InternalGestureOptionsNormalizers, {\n axis: true,\n lockDirection: function lockDirection(value) {\n if (value === void 0) {\n value = false;\n }\n\n return value;\n },\n bounds: function bounds(value) {\n if (value === void 0) {\n value = {};\n }\n\n if (typeof value === 'function') return function (state) {\n return InternalCoordinatesOptionsNormalizers.bounds(value(state));\n };\n var _value2 = value,\n _value2$left = _value2.left,\n left = _value2$left === void 0 ? -Infinity : _value2$left,\n _value2$right = _value2.right,\n right = _value2$right === void 0 ? Infinity : _value2$right,\n _value2$top = _value2.top,\n top = _value2$top === void 0 ? -Infinity : _value2$top,\n _value2$bottom = _value2.bottom,\n bottom = _value2$bottom === void 0 ? Infinity : _value2$bottom;\n return [[left, right], [top, bottom]];\n }\n});\n\nvar isBrowser = typeof window !== 'undefined' && window.document && window.document.createElement;\nvar InternalGenericOptionsNormalizers = {\n enabled: function enabled(value) {\n if (value === void 0) {\n value = true;\n }\n\n return value;\n },\n domTarget: true,\n window: /*#__PURE__*/function (_window) {\n function window(_x) {\n return _window.apply(this, arguments);\n }\n\n window.toString = function () {\n return _window.toString();\n };\n\n return window;\n }(function (value) {\n if (value === void 0) {\n value = isBrowser ? window : undefined;\n }\n\n return value;\n }),\n eventOptions: function eventOptions(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$passive = _ref.passive,\n passive = _ref$passive === void 0 ? true : _ref$passive,\n _ref$capture = _ref.capture,\n capture = _ref$capture === void 0 ? false : _ref$capture;\n\n return {\n passive: passive,\n capture: capture\n };\n }\n};\n\nvar InternalDistanceAngleOptionsNormalizers = /*#__PURE__*/_extends({}, InternalGestureOptionsNormalizers, {\n bounds: function bounds(_value, _key, _ref2) {\n var _ref2$distanceBounds = _ref2.distanceBounds,\n distanceBounds = _ref2$distanceBounds === void 0 ? {} : _ref2$distanceBounds,\n _ref2$angleBounds = _ref2.angleBounds,\n angleBounds = _ref2$angleBounds === void 0 ? {} : _ref2$angleBounds;\n\n var _distanceBounds = function _distanceBounds(state) {\n var D = assignDefault(valueFn(distanceBounds, state), {\n min: -Infinity,\n max: Infinity\n });\n return [D.min, D.max];\n };\n\n var _angleBounds = function _angleBounds(state) {\n var A = assignDefault(valueFn(angleBounds, state), {\n min: -Infinity,\n max: Infinity\n });\n return [A.min, A.max];\n };\n\n if (typeof distanceBounds !== 'function' && typeof angleBounds !== 'function') return [_distanceBounds(), _angleBounds()];\n return function (state) {\n return [_distanceBounds(state), _angleBounds(state)];\n };\n }\n});\n\nvar InternalDragOptionsNormalizers = /*#__PURE__*/_extends({}, InternalCoordinatesOptionsNormalizers, {\n threshold: function threshold(v, _k, _ref3) {\n var _ref3$filterTaps = _ref3.filterTaps,\n filterTaps = _ref3$filterTaps === void 0 ? false : _ref3$filterTaps,\n _ref3$lockDirection = _ref3.lockDirection,\n lockDirection = _ref3$lockDirection === void 0 ? false : _ref3$lockDirection,\n _ref3$axis = _ref3.axis,\n axis = _ref3$axis === void 0 ? undefined : _ref3$axis;\n var A = ensureVector(v, filterTaps ? 3 : lockDirection ? 1 : axis ? 1 : 0);\n this.filterTaps = filterTaps || A[0] + A[1] > 0;\n return A;\n },\n swipeVelocity: function swipeVelocity(v) {\n if (v === void 0) {\n v = DEFAULT_SWIPE_VELOCITY;\n }\n\n return ensureVector(v);\n },\n swipeDistance: function swipeDistance(v) {\n if (v === void 0) {\n v = DEFAULT_SWIPE_DISTANCE;\n }\n\n return ensureVector(v);\n },\n delay: function delay(value) {\n if (value === void 0) {\n value = 0;\n }\n\n switch (value) {\n case true:\n return DEFAULT_DRAG_DELAY;\n\n case false:\n return 0;\n\n default:\n return value;\n }\n }\n});\n\nfunction getInternalGenericOptions(config) {\n if (config === void 0) {\n config = {};\n }\n\n // TODO warn when passive is set to true and domTarget is undefined\n return resolveWith(config, InternalGenericOptionsNormalizers);\n}\nfunction getInternalCoordinatesOptions(config) {\n if (config === void 0) {\n config = {};\n }\n\n return resolveWith(config, InternalCoordinatesOptionsNormalizers);\n}\nfunction getInternalDistanceAngleOptions(config) {\n if (config === void 0) {\n config = {};\n }\n\n return resolveWith(config, InternalDistanceAngleOptionsNormalizers);\n}\nfunction getInternalDragOptions(config) {\n if (config === void 0) {\n config = {};\n }\n\n return resolveWith(config, InternalDragOptionsNormalizers);\n}\n\nfunction _buildMoveConfig(_ref) {\n var domTarget = _ref.domTarget,\n eventOptions = _ref.eventOptions,\n window = _ref.window,\n enabled = _ref.enabled,\n rest = _objectWithoutPropertiesLoose(_ref, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.move = getInternalCoordinatesOptions(rest);\n return opts;\n}\nfunction _buildHoverConfig(_ref2) {\n var domTarget = _ref2.domTarget,\n eventOptions = _ref2.eventOptions,\n window = _ref2.window,\n enabled = _ref2.enabled,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.hover = _extends({\n enabled: true\n }, rest);\n return opts;\n}\nfunction _buildDragConfig(_ref3) {\n var domTarget = _ref3.domTarget,\n eventOptions = _ref3.eventOptions,\n window = _ref3.window,\n enabled = _ref3.enabled,\n rest = _objectWithoutPropertiesLoose(_ref3, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.drag = getInternalDragOptions(rest);\n return opts;\n}\nfunction _buildPinchConfig(_ref4) {\n var domTarget = _ref4.domTarget,\n eventOptions = _ref4.eventOptions,\n window = _ref4.window,\n enabled = _ref4.enabled,\n rest = _objectWithoutPropertiesLoose(_ref4, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.pinch = getInternalDistanceAngleOptions(rest);\n return opts;\n}\nfunction _buildScrollConfig(_ref5) {\n var domTarget = _ref5.domTarget,\n eventOptions = _ref5.eventOptions,\n window = _ref5.window,\n enabled = _ref5.enabled,\n rest = _objectWithoutPropertiesLoose(_ref5, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.scroll = getInternalCoordinatesOptions(rest);\n return opts;\n}\nfunction _buildWheelConfig(_ref6) {\n var domTarget = _ref6.domTarget,\n eventOptions = _ref6.eventOptions,\n window = _ref6.window,\n enabled = _ref6.enabled,\n rest = _objectWithoutPropertiesLoose(_ref6, [\"domTarget\", \"eventOptions\", \"window\", \"enabled\"]);\n\n var opts = getInternalGenericOptions({\n domTarget: domTarget,\n eventOptions: eventOptions,\n window: window,\n enabled: enabled\n });\n opts.wheel = getInternalCoordinatesOptions(rest);\n return opts;\n}\nfunction buildComplexConfig(config, actions) {\n if (config === void 0) {\n config = {};\n }\n\n if (actions === void 0) {\n actions = new Set();\n }\n\n var _config = config,\n drag = _config.drag,\n wheel = _config.wheel,\n move = _config.move,\n scroll = _config.scroll,\n pinch = _config.pinch,\n hover = _config.hover,\n eventOptions = _config.eventOptions,\n window = _config.window,\n domTarget = _config.domTarget,\n enabled = _config.enabled;\n var mergedConfig = getInternalGenericOptions({\n eventOptions: eventOptions,\n window: window,\n domTarget: domTarget,\n enabled: enabled\n });\n if (actions.has('onDrag')) mergedConfig.drag = getInternalDragOptions(drag);\n if (actions.has('onWheel')) mergedConfig.wheel = getInternalCoordinatesOptions(wheel);\n if (actions.has('onScroll')) mergedConfig.scroll = getInternalCoordinatesOptions(scroll);\n if (actions.has('onMove')) mergedConfig.move = getInternalCoordinatesOptions(move);\n if (actions.has('onPinch')) mergedConfig.pinch = getInternalDistanceAngleOptions(pinch);\n if (actions.has('onHover')) mergedConfig.hover = _extends({\n enabled: true\n }, hover);\n return mergedConfig;\n}\n\nfunction getInitial(mixed) {\n return _extends({\n _active: false,\n _blocked: false,\n _intentional: [false, false],\n _movement: [0, 0],\n _initial: [0, 0],\n _bounds: [[-Infinity, Infinity], [-Infinity, Infinity]],\n _lastEventType: undefined,\n event: undefined,\n // currentTarget: undefined,\n // pointerId: undefined,\n intentional: false,\n values: [0, 0],\n velocities: [0, 0],\n delta: [0, 0],\n movement: [0, 0],\n offset: [0, 0],\n lastOffset: [0, 0],\n direction: [0, 0],\n initial: [0, 0],\n previous: [0, 0],\n first: false,\n last: false,\n active: false,\n timeStamp: 0,\n startTime: 0,\n elapsedTime: 0,\n cancel: noop,\n canceled: false,\n memo: undefined,\n args: undefined\n }, mixed);\n}\n\nfunction getInitialState() {\n var shared = {\n hovering: false,\n scrolling: false,\n wheeling: false,\n dragging: false,\n moving: false,\n pinching: false,\n touches: 0,\n buttons: 0,\n down: false,\n shiftKey: false,\n altKey: false,\n metaKey: false,\n ctrlKey: false\n };\n var drag = getInitial({\n axis: undefined,\n xy: [0, 0],\n vxvy: [0, 0],\n velocity: 0,\n distance: 0,\n _isTap: true,\n _delayedEvent: false,\n _pointerId: undefined,\n tap: false,\n swipe: [0, 0]\n });\n var pinch = getInitial({\n da: [0, 0],\n vdva: [0, 0],\n // @ts-ignore origin can never be passed as undefined in userland\n origin: undefined,\n turns: 0\n });\n var wheel = getInitial({\n axis: undefined,\n xy: [0, 0],\n vxvy: [0, 0],\n velocity: 0,\n distance: 0\n });\n var move = getInitial({\n axis: undefined,\n xy: [0, 0],\n vxvy: [0, 0],\n velocity: 0,\n distance: 0\n });\n var scroll = getInitial({\n axis: undefined,\n xy: [0, 0],\n vxvy: [0, 0],\n velocity: 0,\n distance: 0\n });\n return {\n shared: shared,\n drag: drag,\n pinch: pinch,\n wheel: wheel,\n move: move,\n scroll: scroll\n };\n}\n\nvar RecognizersMap = /*#__PURE__*/new Map();\n/**\r\n * @private\r\n * Recognizer abstract class.\r\n */\n\nvar Recognizer = /*#__PURE__*/function () {\n /**\r\n * Creates an instance of a gesture recognizer.\r\n * @param stateKey drag, move, pinch, etc.\r\n * @param controller the controller attached to the gesture\r\n * @param [args] the args that should be passed to the gesture handler\r\n */\n function Recognizer(controller, args) {\n var _this = this;\n\n if (args === void 0) {\n args = [];\n }\n\n this.controller = controller;\n this.args = args;\n this.debounced = true; // Convenience method to set a timeout for a given gesture\n\n this.setTimeout = function (callback, ms) {\n var _window;\n\n if (ms === void 0) {\n ms = 140;\n }\n\n clearTimeout(_this.controller.timeouts[_this.stateKey]);\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n _this.controller.timeouts[_this.stateKey] = (_window = window).setTimeout.apply(_window, [callback, ms].concat(args));\n }; // Convenience method to clear a timeout for a given gesture\n\n\n this.clearTimeout = function () {\n clearTimeout(_this.controller.timeouts[_this.stateKey]);\n };\n /**\r\n * Fires the gesture handler\r\n */\n\n\n this.fireGestureHandler = function (forceFlag) {\n if (forceFlag === void 0) {\n forceFlag = false;\n }\n\n /**\r\n * If the gesture has been blocked (this can happen when the gesture has started in an unwanted direction),\r\n * clean everything and don't do anything.\r\n */\n if (_this.state._blocked) {\n // we need debounced gestures to end by themselves\n if (!_this.debounced) {\n _this.state._active = false;\n\n _this.clean();\n }\n\n return null;\n } // If the gesture has no intentional dimension, don't fire the handler.\n\n\n if (!forceFlag && !_this.state.intentional && !_this.config.triggerAllEvents) return null;\n\n if (_this.state.intentional) {\n var prev_active = _this.state.active;\n var next_active = _this.state._active;\n _this.state.active = next_active;\n _this.state.first = next_active && !prev_active;\n _this.state.last = prev_active && !next_active;\n _this.controller.state.shared[_this.ingKey] = next_active; // Sets dragging, pinching, etc. to the gesture active state\n }\n\n var state = _extends({}, _this.controller.state.shared, _this.state, _this.mapStateValues(_this.state)); // @ts-ignore\n\n\n var newMemo = _this.handler(state); // Sets memo to the returned value of the handler (unless it's not undefined)\n\n\n _this.state.memo = newMemo !== void 0 ? newMemo : _this.state.memo; // Cleans the gesture when the gesture is no longer active.\n\n if (!_this.state._active) _this.clean();\n return state;\n };\n } // Returns the gesture config\n\n\n var _proto = Recognizer.prototype;\n\n // Convenience method to update the shared state\n _proto.updateSharedState = function updateSharedState(sharedState) {\n Object.assign(this.controller.state.shared, sharedState);\n } // Convenience method to update the gesture state\n ;\n\n _proto.updateGestureState = function updateGestureState(gestureState) {\n Object.assign(this.state, gestureState);\n }\n /**\r\n * Returns state properties depending on the movement and state.\r\n *\r\n * Should be overriden for custom behavior, doesn't do anything in the implementation\r\n * below.\r\n */\n ;\n\n _proto.checkIntentionality = function checkIntentionality(_intentional, _movement) {\n return {\n _intentional: _intentional,\n _blocked: false\n };\n }\n /**\r\n * Returns basic movement properties for the gesture based on the next values and current state.\r\n */\n ;\n\n _proto.getMovement = function getMovement(values) {\n var _this$config = this.config,\n initial = _this$config.initial,\n bounds = _this$config.bounds,\n rubberband = _this$config.rubberband,\n T = _this$config.threshold;\n var _this$state = this.state,\n _bounds = _this$state._bounds,\n _initial = _this$state._initial,\n _active = _this$state._active,\n wasIntentional = _this$state._intentional,\n lastOffset = _this$state.lastOffset,\n prevMovement = _this$state.movement;\n var M = this.getInternalMovement(values, this.state);\n var i0 = wasIntentional[0] === false ? getIntentionalDisplacement(M[0], T[0]) : wasIntentional[0];\n var i1 = wasIntentional[1] === false ? getIntentionalDisplacement(M[1], T[1]) : wasIntentional[1]; // Get gesture specific state properties based on intentionality and movement.\n\n var intentionalityCheck = this.checkIntentionality([i0, i1], M);\n\n if (intentionalityCheck._blocked) {\n return _extends({}, intentionalityCheck, {\n _movement: M,\n delta: [0, 0]\n });\n }\n\n var _intentional = intentionalityCheck._intentional;\n var _movement = M;\n\n var __cachedBounds;\n\n var __cachedInitial;\n\n if (_intentional[0] !== false && wasIntentional[0] === false) {\n __cachedInitial = valueFn(initial, this.state);\n __cachedBounds = valueFn(bounds, this.state);\n _initial[0] = __cachedInitial[0];\n _bounds[0] = __cachedBounds[0];\n }\n\n if (_intentional[1] !== false && wasIntentional[1] === false) {\n var _cachedInitial, _cachedBounds;\n\n __cachedInitial = (_cachedInitial = __cachedInitial) != null ? _cachedInitial : valueFn(initial, this.state);\n __cachedBounds = (_cachedBounds = __cachedBounds) != null ? _cachedBounds : valueFn(bounds, this.state);\n _initial[1] = __cachedInitial[1];\n _bounds[1] = __cachedBounds[1];\n }\n /**\r\n * The movement sent to the handler has 0 in its dimensions when intentionality is false.\r\n * It is calculated from the actual movement minus the threshold.\r\n */\n\n\n var movement = [_intentional[0] !== false ? M[0] - _intentional[0] : _initial[0], _intentional[1] !== false ? M[1] - _intentional[1] : _initial[1]];\n var offset = addV(movement, lastOffset);\n /**\r\n * Rubberband should be 0 when the gesture is no longer active, so that movement\r\n * and offset can return within their bounds.\r\n */\n\n var _rubberband = _active ? rubberband : [0, 0];\n\n movement = computeRubberband(_bounds, addV(movement, _initial), _rubberband);\n return _extends({}, intentionalityCheck, {\n intentional: _intentional[0] !== false || _intentional[1] !== false,\n _initial: _initial,\n _movement: _movement,\n movement: movement,\n values: values,\n offset: computeRubberband(_bounds, offset, _rubberband),\n delta: subV(movement, prevMovement)\n });\n } // Cleans the gesture. Can be overriden by gestures.\n ;\n\n _proto.clean = function clean() {\n this.clearTimeout();\n };\n\n _createClass(Recognizer, [{\n key: \"config\",\n get: function get() {\n return this.controller.config[this.stateKey];\n } // Is the gesture enabled\n\n }, {\n key: \"enabled\",\n get: function get() {\n return this.controller.config.enabled && this.config.enabled;\n } // Returns the controller state for a given gesture\n\n }, {\n key: \"state\",\n get: function get() {\n return this.controller.state[this.stateKey];\n } // Returns the gesture handler\n\n }, {\n key: \"handler\",\n get: function get() {\n return this.controller.handlers[this.stateKey];\n }\n }]);\n\n return Recognizer;\n}(); //--------------------------------------------\n\nfunction getIntentionalDisplacement(movement, threshold) {\n if (Math.abs(movement) >= threshold) {\n return sign(movement) * threshold;\n } else {\n return false;\n }\n}\n\nfunction computeRubberband(bounds, _ref, _ref2) {\n var Vx = _ref[0],\n Vy = _ref[1];\n var Rx = _ref2[0],\n Ry = _ref2[1];\n var _bounds$ = bounds[0],\n X1 = _bounds$[0],\n X2 = _bounds$[1],\n _bounds$2 = bounds[1],\n Y1 = _bounds$2[0],\n Y2 = _bounds$2[1];\n return [rubberbandIfOutOfBounds(Vx, X1, X2, Rx), rubberbandIfOutOfBounds(Vy, Y1, Y2, Ry)];\n}\n/**\r\n * Returns a generic, common payload for all gestures from an event.\r\n */\n\n\nfunction getGenericPayload(_ref3, event, isStartEvent) {\n var state = _ref3.state,\n args = _ref3.args;\n var timeStamp = event.timeStamp,\n _lastEventType = event.type;\n var previous = state.values;\n var elapsedTime = isStartEvent ? 0 : timeStamp - state.startTime;\n return {\n _lastEventType: _lastEventType,\n event: event,\n timeStamp: timeStamp,\n elapsedTime: elapsedTime,\n args: args,\n previous: previous\n };\n}\n/**\r\n * Returns the reinitialized start state for the gesture.\r\n * Should be common to all gestures.\r\n */\n\nfunction getStartGestureState(recognizer, values, event) {\n var offset = recognizer.state.offset;\n var startTime = event.timeStamp;\n return _extends({}, getInitialState()[recognizer.stateKey], {\n _active: true,\n values: values,\n initial: values,\n offset: offset,\n lastOffset: offset,\n startTime: startTime\n });\n}\n\nfunction partial(func, state) {\n return function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n // @ts-ignore\n return func.call.apply(func, [this, _extends({}, state, {\n event: event\n })].concat(args));\n };\n}\n/**\r\n * The controller will keep track of the state for all gestures and also keep\r\n * track of timeouts, and window listeners.\r\n */\n\n\nvar Controller = function Controller(classes) {\n var _this = this;\n\n this.classes = classes;\n\n this.bind = function () {\n var bindings = {};\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(_this.classes), _step; !(_step = _iterator()).done;) {\n var RecognizerClass = _step.value;\n new RecognizerClass(_this, args).addBindings(bindings);\n } // we also add event bindings for native handlers\n\n\n for (var _i = 0, _Object$entries = Object.entries(_this.nativeRefs); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _Object$entries[_i],\n event = _Object$entries$_i[0],\n handler = _Object$entries$_i[1];\n addBindings(bindings, event, partial(handler, _extends({}, _this.state.shared, {\n args: args\n })));\n }\n\n if (_this.config.domTarget) {\n // If config.domTarget is set we add event listeners to it and return the clean function.\n return updateDomListeners(_this, bindings);\n } else {\n // If not, we return an object that contains gesture handlers mapped to react handler event keys.\n return getPropsListener(_this, bindings);\n }\n };\n\n this.effect = function () {\n if (_this.config.domTarget) _this.bind();\n return _this.clean;\n };\n /**\r\n * Function ran on component unmount: cleans timeouts and removes dom listeners set by the bind function.\r\n */\n\n\n this.clean = function () {\n var domTarget = getDomTargetFromConfig(_this.config);\n var eventOptions = _this.config.eventOptions;\n if (domTarget) removeListeners(domTarget, takeAll(_this.domListeners), eventOptions);\n Object.values(_this.timeouts).forEach(clearTimeout);\n clearAllWindowListeners(_this);\n };\n\n this.state = getInitialState();\n this.timeouts = {};\n this.domListeners = [];\n this.windowListeners = {};\n};\nfunction clearAllWindowListeners(controller) {\n var _controller$config = controller.config,\n el = _controller$config.window,\n eventOptions = _controller$config.eventOptions,\n windowListeners = controller.windowListeners;\n if (!el) return;\n\n for (var stateKey in windowListeners) {\n var handlers = windowListeners[stateKey];\n removeListeners(el, handlers, eventOptions);\n }\n\n controller.windowListeners = {};\n}\nfunction clearWindowListeners(_ref, stateKey) {\n var config = _ref.config,\n windowListeners = _ref.windowListeners;\n if (!config.window) return;\n removeListeners(config.window, windowListeners[stateKey], config.eventOptions);\n delete windowListeners[stateKey];\n}\nfunction updateWindowListeners(_ref2, stateKey, listeners) {\n var config = _ref2.config,\n windowListeners = _ref2.windowListeners;\n\n if (listeners === void 0) {\n listeners = [];\n }\n\n if (!config.window) return;\n removeListeners(config.window, windowListeners[stateKey], config.eventOptions);\n addListeners(config.window, windowListeners[stateKey] = listeners, config.eventOptions);\n}\n\nfunction updateDomListeners(_ref3, bindings) {\n var config = _ref3.config,\n domListeners = _ref3.domListeners;\n var domTarget = getDomTargetFromConfig(config);\n if (!domTarget) throw new Error('domTarget must be defined');\n var eventOptions = config.eventOptions;\n removeListeners(domTarget, takeAll(domListeners), eventOptions);\n\n for (var _i2 = 0, _Object$entries2 = Object.entries(bindings); _i2 < _Object$entries2.length; _i2++) {\n var _Object$entries2$_i = _Object$entries2[_i2],\n key = _Object$entries2$_i[0],\n fns = _Object$entries2$_i[1];\n var name = key.slice(2).toLowerCase();\n domListeners.push([name, chainFns.apply(void 0, fns)]);\n }\n\n addListeners(domTarget, domListeners, eventOptions);\n}\n\nfunction getPropsListener(_ref4, bindings) {\n var config = _ref4.config;\n var props = {};\n var captureString = config.eventOptions.capture ? 'Capture' : '';\n\n for (var _i3 = 0, _Object$entries3 = Object.entries(bindings); _i3 < _Object$entries3.length; _i3++) {\n var _Object$entries3$_i = _Object$entries3[_i3],\n event = _Object$entries3$_i[0],\n fns = _Object$entries3$_i[1];\n var fnsArray = Array.isArray(fns) ? fns : [fns];\n var key = event + captureString;\n props[key] = chainFns.apply(void 0, fnsArray);\n }\n\n return props;\n}\n\nfunction takeAll(array) {\n if (array === void 0) {\n array = [];\n }\n\n return array.splice(0, array.length);\n}\n\nfunction getDomTargetFromConfig(_ref5) {\n var domTarget = _ref5.domTarget;\n return domTarget && 'current' in domTarget ? domTarget.current : domTarget;\n}\n/**\r\n * bindings is an object which keys match ReactEventHandlerKeys.\r\n * Since a recognizer might want to bind a handler function to an event key already used by a previously\r\n * added recognizer, we need to make sure that each event key is an array of all the functions mapped for\r\n * that key.\r\n */\n\n\nfunction addBindings(bindings, name, fn) {\n if (!bindings[name]) bindings[name] = [];\n bindings[name].push(fn);\n}\n\nfunction addListeners(el, listeners, options) {\n if (listeners === void 0) {\n listeners = [];\n }\n\n if (options === void 0) {\n options = {};\n }\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(listeners), _step2; !(_step2 = _iterator2()).done;) {\n var _step2$value = _step2.value,\n eventName = _step2$value[0],\n eventHandler = _step2$value[1];\n el.addEventListener(eventName, eventHandler, options);\n }\n}\n\nfunction removeListeners(el, listeners, options) {\n if (listeners === void 0) {\n listeners = [];\n }\n\n if (options === void 0) {\n options = {};\n }\n\n for (var _iterator3 = _createForOfIteratorHelperLoose(listeners), _step3; !(_step3 = _iterator3()).done;) {\n var _step3$value = _step3.value,\n eventName = _step3$value[0],\n eventHandler = _step3$value[1];\n el.removeEventListener(eventName, eventHandler, options);\n }\n}\n\n/* eslint-disable react-hooks/exhaustive-deps */\n/**\r\n * Utility hook called by all gesture hooks and that will be responsible for the internals.\r\n *\r\n * @param handlers\r\n * @param classes\r\n * @param config\r\n * @param nativeHandlers - native handlers such as onClick, onMouseDown, etc.\r\n */\n\nfunction useRecognizers(handlers, config, nativeHandlers) {\n if (nativeHandlers === void 0) {\n nativeHandlers = {};\n }\n\n var classes = resolveClasses(handlers);\n var controller = React.useMemo(function () {\n return new Controller(classes);\n }, []);\n controller.config = config;\n controller.handlers = handlers;\n controller.nativeRefs = nativeHandlers;\n React.useEffect(controller.effect, []); // @ts-ignore\n\n if (controller.config.domTarget) return deprecationNoticeForDomTarget; // @ts-ignore\n\n return controller.bind;\n}\n\nfunction deprecationNoticeForDomTarget() {\n if (process.env.NODE_ENV === 'development') {\n console.warn(\"Deprecation notice: When the `domTarget` option is specified, you don't need to write `useEffect(bind, [bind])` anymore: event binding is now made handled internally to this lib.\\n\\nNext version won't return anything when `domTarget` is provided, therefore your code will break if you try to call `useEffect`.\");\n }\n}\n\nfunction resolveClasses(internalHandlers) {\n var classes = new Set();\n if (internalHandlers.drag) classes.add(RecognizersMap.get('drag'));\n if (internalHandlers.wheel) classes.add(RecognizersMap.get('wheel'));\n if (internalHandlers.scroll) classes.add(RecognizersMap.get('scroll'));\n if (internalHandlers.move) classes.add(RecognizersMap.get('move'));\n if (internalHandlers.pinch) classes.add(RecognizersMap.get('pinch'));\n if (internalHandlers.hover) classes.add(RecognizersMap.get('hover'));\n return classes;\n}\n\n/**\r\n * @private\r\n * Abstract class for coordinates-based gesture recongizers\r\n */\n\nvar CoordinatesRecognizer = /*#__PURE__*/function (_Recognizer) {\n _inheritsLoose(CoordinatesRecognizer, _Recognizer);\n\n function CoordinatesRecognizer() {\n return _Recognizer.apply(this, arguments) || this;\n }\n\n var _proto = CoordinatesRecognizer.prototype;\n\n /**\r\n * Returns the real movement (without taking intentionality into acount)\r\n */\n _proto.getInternalMovement = function getInternalMovement(values, state) {\n return subV(values, state.initial);\n }\n /**\r\n * In coordinates-based gesture, this function will detect the first intentional axis,\r\n * lock the gesture axis if lockDirection is specified in the config, block the gesture\r\n * if the first intentional axis doesn't match the specified axis in config.\r\n */\n ;\n\n _proto.checkIntentionality = function checkIntentionality(_intentional, _movement) {\n if (_intentional[0] === false && _intentional[1] === false) {\n return {\n _intentional: _intentional,\n axis: this.state.axis\n };\n }\n\n var _movement$map = _movement.map(Math.abs),\n absX = _movement$map[0],\n absY = _movement$map[1];\n\n var axis = this.state.axis || (absX > absY ? 'x' : absX < absY ? 'y' : undefined);\n if (!this.config.axis && !this.config.lockDirection) return {\n _intentional: _intentional,\n _blocked: false,\n axis: axis\n };\n if (!axis) return {\n _intentional: [false, false],\n _blocked: false,\n axis: axis\n };\n if (!!this.config.axis && axis !== this.config.axis) return {\n _intentional: _intentional,\n _blocked: true,\n axis: axis\n };\n _intentional[axis === 'x' ? 1 : 0] = false;\n return {\n _intentional: _intentional,\n _blocked: false,\n axis: axis\n };\n };\n\n _proto.getKinematics = function getKinematics(values, event) {\n var state = this.getMovement(values);\n\n if (!state._blocked) {\n var dt = event.timeStamp - this.state.timeStamp;\n Object.assign(state, calculateAllKinematics(state.movement, state.delta, dt));\n }\n\n return state;\n };\n\n _proto.mapStateValues = function mapStateValues(state) {\n return {\n xy: state.values,\n vxvy: state.velocities\n };\n };\n\n return CoordinatesRecognizer;\n}(Recognizer);\n\nvar WEBKIT_DISTANCE_SCALE_FACTOR = 260;\n/**\r\n * Whether the browser supports GestureEvent (ie Safari)\r\n * @returns true if the browser supports gesture event\r\n */\n\nfunction supportsGestureEvents() {\n try {\n // TODO [TS] possibly find GestureEvent definitions?\n // @ts-ignore: no type definitions for webkit GestureEvents\n return 'constructor' in GestureEvent;\n } catch (e) {\n return false;\n }\n}\nfunction supportsTouchEvents() {\n return typeof window !== 'undefined' && window.ontouchstart === null;\n}\n\nfunction getTouchEvents(event) {\n if ('touches' in event) {\n var targetTouches = event.targetTouches,\n changedTouches = event.changedTouches;\n return targetTouches.length > 0 ? targetTouches : changedTouches;\n }\n\n return null;\n}\n\nfunction getGenericEventData(event) {\n var buttons = 'buttons' in event ? event.buttons : 0;\n var touchEvents = getTouchEvents(event);\n var touches = touchEvents && touchEvents.length || 0;\n var down = touches > 0 || buttons > 0;\n var shiftKey = event.shiftKey,\n altKey = event.altKey,\n metaKey = event.metaKey,\n ctrlKey = event.ctrlKey; // TODO check if this might create some overrides?\n\n return {\n touches: touches,\n down: down,\n buttons: buttons,\n shiftKey: shiftKey,\n altKey: altKey,\n metaKey: metaKey,\n ctrlKey: ctrlKey\n };\n}\n/**\r\n * Gets pointer event values.\r\n * @param event\r\n * @returns pointer event values\r\n */\n\nfunction getPointerEventValues(event) {\n var touchEvents = getTouchEvents(event);\n\n var _ref = touchEvents ? touchEvents[0] : event,\n clientX = _ref.clientX,\n clientY = _ref.clientY;\n\n return [clientX, clientY];\n}\n/**\r\n * Gets scroll event values\r\n * @param event\r\n * @returns scroll event values\r\n */\n\nfunction getScrollEventValues(event) {\n // If the currentTarget is the window then we return the scrollX/Y position.\n // If not (ie the currentTarget is a DOM element), then we return scrollLeft/Top\n var _event$currentTarget = event.currentTarget,\n scrollX = _event$currentTarget.scrollX,\n scrollY = _event$currentTarget.scrollY,\n scrollLeft = _event$currentTarget.scrollLeft,\n scrollTop = _event$currentTarget.scrollTop;\n return [scrollX || scrollLeft || 0, scrollY || scrollTop || 0];\n}\n/**\r\n * Gets wheel event values.\r\n * @param event\r\n * @returns wheel event values\r\n */\n\nfunction getWheelEventValues(event) {\n var deltaX = event.deltaX,\n deltaY = event.deltaY; //TODO implement polyfill ?\n // https://developer.mozilla.org/en-US/docs/Web/Events/wheel#Polyfill\n\n return [deltaX, deltaY];\n}\n/**\r\n * Gets webkit gesture event values.\r\n * @param event\r\n * @returns webkit gesture event values\r\n */\n\nfunction getWebkitGestureEventValues(event) {\n return [event.scale * WEBKIT_DISTANCE_SCALE_FACTOR, event.rotation];\n}\n/**\r\n * Gets two touches event data\r\n * @param event\r\n * @returns two touches event data\r\n */\n\nfunction getTwoTouchesEventData(event) {\n var _e$rotation;\n\n var targetTouches = event.targetTouches;\n var A = targetTouches[0],\n B = targetTouches[1];\n var dx = B.clientX - A.clientX;\n var dy = B.clientY - A.clientY;\n var cx = (B.clientX + A.clientX) / 2;\n var cy = (B.clientY + A.clientY) / 2;\n var e = 'nativeEvent' in event ? event.nativeEvent : event;\n var distance = Math.hypot(dx, dy);\n var angle = (_e$rotation = e.rotation) != null ? _e$rotation : -(Math.atan2(dx, dy) * 180) / Math.PI;\n var values = [distance, angle];\n var origin = [cx, cy];\n return {\n values: values,\n origin: origin\n };\n}\n\nvar TAP_DISTANCE_THRESHOLD = 3;\nvar SWIPE_MAX_ELAPSED_TIME = 220;\nvar DragRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {\n _inheritsLoose(DragRecognizer, _CoordinatesRecognize);\n\n function DragRecognizer() {\n var _this;\n\n _this = _CoordinatesRecognize.apply(this, arguments) || this;\n _this.ingKey = 'dragging';\n _this.stateKey = 'drag';\n /**\r\n * TODO add back when setPointerCapture is widely wupported\r\n * https://caniuse.com/#search=setPointerCapture\r\n * private setPointers = (event: UseGestureEvent) => {\r\n * const { currentTarget, pointerId } = event\r\n * if (currentTarget) currentTarget.setPointerCapture(pointerId)\r\n * this.updateGestureState({ currentTarget, pointerId })\r\n * }\r\n * private removePointers = () => {\r\n * const { currentTarget, pointerId } = this.state\r\n * if (currentTarget && pointerId) currentTarget.releasePointerCapture(pointerId)\r\n * }\r\n */\n\n _this.onDragStart = function (event) {\n if (!_this.enabled || _this.state._active) return;\n /**\r\n * TODO add back when setPointerCapture is widely supported\r\n * this.setPointers(event as PointerEvent)\r\n */\n\n updateWindowListeners(_this.controller, _this.stateKey, [['pointermove', _this.onDragChange], ['pointerup', _this.onDragEnd], ['pointercancel', _this.onDragEnd]]); // We set the state pointerId to the event.pointerId so we can make sure\n // that we lock the drag to the event initiating the gesture\n\n _this.updateGestureState({\n _pointerId: event.pointerId\n });\n\n if (_this.config.delay > 0) {\n _this.state._delayedEvent = true; // If it's a React SyntheticEvent we need to persist it so that we can use it async\n\n if ('persist' in event && typeof event.persist === 'function') event.persist();\n\n _this.setTimeout(_this.startDrag.bind(_assertThisInitialized(_this)), _this.config.delay, event);\n } else {\n _this.startDrag(event);\n }\n };\n\n _this.onDragChange = function (event) {\n // If the gesture was canceled don't respond to the event.\n if (_this.state.canceled) return; // If the event pointerId doesn't match the initiating pointerId\n // don't respond to the event.\n\n if (event.pointerId !== _this.state._pointerId) return; // If the gesture isn't active then respond to the event only if\n // it's been delayed via the `delay` option, in which case start\n // the gesture immediately.\n\n if (!_this.state._active) {\n if (_this.state._delayedEvent) {\n _this.clearTimeout();\n\n _this.startDrag(event);\n }\n\n return;\n }\n\n var genericEventData = getGenericEventData(event); // If the event doesn't have any button / touches left we should cancel\n // the gesture. This may happen if the drag release happens outside the browser\n // window.\n\n if (!genericEventData.down) {\n _this.onDragEnd(event);\n\n return;\n }\n\n _this.updateSharedState(genericEventData);\n\n var values = getPointerEventValues(event);\n\n var kinematics = _this.getKinematics(values, event);\n\n var genericPayload = getGenericPayload(_assertThisInitialized(_this), event); // This verifies if the drag can be assimilated to a tap by checking\n // if the real distance of the drag (ie not accounting for the threshold) is\n // greater than the TAP_DISTANCE_THRESHOLD.\n\n var _isTap = _this.state._isTap;\n var realDistance = calculateDistance(kinematics._movement);\n if (_isTap && realDistance >= TAP_DISTANCE_THRESHOLD) _isTap = false;\n\n _this.updateGestureState(_extends({}, genericPayload, kinematics, {\n _isTap: _isTap\n }));\n\n _this.fireGestureHandler();\n };\n\n _this.onDragEnd = function (event) {\n // If the event pointerId doesn't match the initiating pointerId\n // don't respond to the event.\n if (event.pointerId !== _this.state._pointerId) return;\n _this.state._active = false;\n\n _this.updateSharedState({\n down: false,\n buttons: 0,\n touches: 0\n });\n\n var tap = _this.state._isTap;\n var _this$state$velocitie = _this.state.velocities,\n vx = _this$state$velocitie[0],\n vy = _this$state$velocitie[1];\n var _this$state$movement = _this.state.movement,\n mx = _this$state$movement[0],\n my = _this$state$movement[1];\n var _this$state$_intentio = _this.state._intentional,\n ix = _this$state$_intentio[0],\n iy = _this$state$_intentio[1];\n var _this$config$swipeVel = _this.config.swipeVelocity,\n svx = _this$config$swipeVel[0],\n svy = _this$config$swipeVel[1];\n var _this$config$swipeDis = _this.config.swipeDistance,\n sx = _this$config$swipeDis[0],\n sy = _this$config$swipeDis[1];\n\n var endState = _extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getMovement(_this.state.values));\n\n var swipe = [0, 0];\n\n if (endState.elapsedTime < SWIPE_MAX_ELAPSED_TIME) {\n if (ix !== false && Math.abs(vx) > svx && Math.abs(mx) > sx) swipe[0] = sign(vx);\n if (iy !== false && Math.abs(vy) > svy && Math.abs(my) > sy) swipe[1] = sign(vy);\n }\n\n _this.updateGestureState(_extends({}, endState, {\n tap: tap,\n swipe: swipe\n }));\n\n _this.fireGestureHandler(tap === true);\n };\n\n _this.clean = function () {\n _CoordinatesRecognize.prototype.clean.call(_assertThisInitialized(_this));\n\n _this.state._delayedEvent = false; // can't remember if this is useful?\n\n clearWindowListeners(_this.controller, _this.stateKey); // TODO add back when setPointerCapture is widely wupported\n // this.removePointers()\n };\n\n _this.onCancel = function () {\n if (_this.state.canceled) return;\n\n _this.updateGestureState({\n canceled: true\n });\n\n _this.state._active = false;\n\n _this.updateSharedState({\n down: false,\n buttons: 0,\n touches: 0\n });\n\n requestAnimationFrame(function () {\n return _this.fireGestureHandler();\n });\n };\n\n _this.onClick = function (event) {\n if (!_this.state._isTap) event.stopPropagation();\n };\n\n return _this;\n }\n\n var _proto = DragRecognizer.prototype;\n\n _proto.startDrag = function startDrag(event) {\n var values = getPointerEventValues(event);\n this.updateSharedState(getGenericEventData(event));\n this.updateGestureState(_extends({}, getStartGestureState(this, values, event), getGenericPayload(this, event, true), {\n _pointerId: event.pointerId,\n cancel: this.onCancel\n }));\n this.updateGestureState(this.getMovement(values));\n this.fireGestureHandler();\n };\n\n _proto.addBindings = function addBindings$1(bindings) {\n addBindings(bindings, 'onPointerDown', this.onDragStart);\n\n if (this.config.filterTaps) {\n var handler = this.controller.config.eventOptions.capture ? 'onClick' : 'onClickCapture';\n\n addBindings(bindings, handler, this.onClick);\n } // TODO add back when setPointerCapture is widely wupported\n // addBindings(bindings, 'onPointerMove', this.onDragChange)\n // addBindings(bindings, 'onPointerUp', this.onDragEnd)\n // addBindings(bindings, 'onPointerCancel', this.onDragEnd)\n\n };\n\n return DragRecognizer;\n}(CoordinatesRecognizer);\n\n/**\r\n * Inlined from https://github.com/alexreardon/memoize-one\r\n */\nfunction memoizeOne(resultFn, isEqual) {\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n\n function memoized() {\n for (var _len = arguments.length, newArgs = new Array(_len), _key = 0; _key < _len; _key++) {\n newArgs[_key] = arguments[_key];\n }\n\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n\n return memoized;\n}\n\n/**\r\n * Taken from https://github.com/FormidableLabs/react-fast-compare\r\n *\r\n * Dropped comments and ArrayBuffer handling\r\n */\nfunction equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n }\n\n var it;\n\n if (typeof Map === 'function' && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n }\n\n return true;\n }\n\n if (typeof Set === 'function' && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n }\n\n if (typeof Element !== 'undefined' && a instanceof Element) return false;\n\n for (i = length; i-- !== 0;) {\n if (keys[i] === '_owner' && a.$$typeof) continue;\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n\n return true;\n } // true if both NaN, false otherwise — NaN !== NaN → true\n // eslint-disable-next-line no-self-compare\n\n\n return a !== a && b !== b;\n}\n\nfunction isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n\n throw error;\n }\n}\n\n/**\r\n * Drag hook.\r\n *\r\n * @param handler - the function fired every time the drag gesture updates\r\n * @param [config={}] - the config object including generic options and drag options\r\n */\n\nfunction useDrag(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('drag', DragRecognizer);\n var buildDragConfig = useRef();\n\n if (!buildDragConfig.current) {\n buildDragConfig.current = memoizeOne(_buildDragConfig, isEqual);\n }\n\n return useRecognizers({\n drag: handler\n }, buildDragConfig.current(config));\n}\n\n/**\r\n * @private\r\n * Abstract class for distance/angle-based gesture recongizers\r\n */\n\nvar DistanceAngleRecognizer = /*#__PURE__*/function (_Recognizer) {\n _inheritsLoose(DistanceAngleRecognizer, _Recognizer);\n\n function DistanceAngleRecognizer() {\n return _Recognizer.apply(this, arguments) || this;\n }\n\n var _proto = DistanceAngleRecognizer.prototype;\n\n _proto.getInternalMovement = function getInternalMovement(values, state) {\n var prev_a = state.values[1]; // not be defined if ctrl+wheel is used for zoom only\n\n var d = values[0],\n _values$ = values[1],\n a = _values$ === void 0 ? prev_a : _values$;\n var delta_a = a - prev_a;\n var next_turns = state.turns;\n if (Math.abs(delta_a) > 270) next_turns += sign(delta_a);\n return subV([d, a - 360 * next_turns], state.initial);\n };\n\n _proto.getKinematics = function getKinematics(values, event) {\n var state = this.getMovement(values);\n var turns = (values[1] - state.movement[1] - this.state.initial[1]) / 360;\n var dt = event.timeStamp - this.state.timeStamp;\n var kinematics = calculateAllKinematics(state.movement, state.delta, dt);\n return _extends({\n turns: turns\n }, state, kinematics);\n };\n\n _proto.mapStateValues = function mapStateValues(state) {\n return {\n da: state.values,\n vdva: state.velocities\n };\n };\n\n return DistanceAngleRecognizer;\n}(Recognizer);\n\nvar PinchRecognizer = /*#__PURE__*/function (_DistanceAngleRecogni) {\n _inheritsLoose(PinchRecognizer, _DistanceAngleRecogni);\n\n function PinchRecognizer() {\n var _this;\n\n _this = _DistanceAngleRecogni.apply(this, arguments) || this;\n _this.ingKey = 'pinching';\n _this.stateKey = 'pinch';\n\n _this.pinchShouldStart = function (event) {\n var _getGenericEventData = getGenericEventData(event),\n touches = _getGenericEventData.touches;\n\n return _this.enabled && touches === 2;\n };\n\n _this.onPinchStart = function (event) {\n if (!_this.pinchShouldStart(event)) return;\n\n var _getTwoTouchesEventDa = getTwoTouchesEventData(event),\n values = _getTwoTouchesEventDa.values,\n origin = _getTwoTouchesEventDa.origin;\n\n _this.updateSharedState(getGenericEventData(event));\n\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true), {\n cancel: _this.onCancel,\n origin: origin\n }));\n\n _this.updateGestureState(_this.getMovement(values));\n\n _this.fireGestureHandler();\n };\n\n _this.onPinchChange = function (event) {\n var _this$state = _this.state,\n canceled = _this$state.canceled,\n _active = _this$state._active;\n if (canceled || !_active) return;\n var genericEventData = getGenericEventData(event);\n\n _this.updateSharedState(genericEventData);\n\n var _getTwoTouchesEventDa2 = getTwoTouchesEventData(event),\n values = _getTwoTouchesEventDa2.values,\n origin = _getTwoTouchesEventDa2.origin; // @ts-ignore\n\n\n var kinematics = _this.getKinematics(values, event);\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), kinematics, {\n origin: origin\n }));\n\n _this.fireGestureHandler();\n };\n\n _this.onPinchEnd = function (event) {\n if (!_this.state.active) return;\n _this.state._active = false;\n\n _this.updateSharedState({\n down: false,\n touches: 0\n });\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getMovement(_this.state.values)));\n\n _this.fireGestureHandler();\n };\n\n _this.onCancel = function () {\n if (_this.state.canceled) return;\n _this.state._active = false;\n\n _this.updateGestureState({\n canceled: true\n });\n\n _this.updateSharedState({\n down: false,\n touches: 0\n });\n\n requestAnimationFrame(function () {\n return _this.fireGestureHandler();\n });\n };\n /**\r\n * PINCH WITH WEBKIT GESTURES\r\n */\n\n\n _this.onGestureStart = function (event) {\n if (!_this.enabled) return;\n event.preventDefault(); // useless\n\n var values = getWebkitGestureEventValues(event);\n\n _this.updateSharedState(getGenericEventData(event));\n\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true), {\n origin: [event.clientX, event.clientY],\n cancel: _this.onCancel\n }));\n\n _this.updateGestureState(_this.getMovement(values));\n\n _this.fireGestureHandler();\n };\n\n _this.onGestureChange = function (event) {\n var _this$state2 = _this.state,\n canceled = _this$state2.canceled,\n _active = _this$state2._active;\n if (canceled || !_active) return;\n event.preventDefault();\n var genericEventData = getGenericEventData(event);\n\n _this.updateSharedState(genericEventData);\n\n var values = getWebkitGestureEventValues(event);\n\n var kinematics = _this.getKinematics(values, event);\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), kinematics, {\n origin: [event.clientX, event.clientY]\n }));\n\n _this.fireGestureHandler();\n };\n\n _this.onGestureEnd = function (event) {\n event.preventDefault();\n if (!_this.state.active) return;\n _this.state._active = false;\n\n _this.updateSharedState({\n down: false,\n touches: 0\n });\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getMovement(_this.state.values), {\n origin: [event.clientX, event.clientY]\n }));\n\n _this.fireGestureHandler();\n };\n /**\r\n * PINCH WITH WHEEL\r\n */\n\n\n _this.wheelShouldRun = function (event) {\n return _this.enabled && event.ctrlKey;\n };\n\n _this.getWheelValuesFromEvent = function (event) {\n var _getWheelEventValues = getWheelEventValues(event),\n delta_d = _getWheelEventValues[1];\n\n var _this$state$values = _this.state.values,\n prev_d = _this$state$values[0],\n prev_a = _this$state$values[1];\n var d = prev_d - delta_d;\n var a = prev_a !== void 0 ? prev_a : 0;\n return {\n values: [d, a],\n origin: [event.clientX, event.clientY],\n delta: [0, delta_d]\n };\n };\n\n _this.onWheel = function (event) {\n if (!_this.wheelShouldRun(event)) return;\n\n _this.setTimeout(_this.onWheelEnd);\n\n if (!_this.state._active) _this.onWheelStart(event);else _this.onWheelChange(event);\n };\n\n _this.onWheelStart = function (event) {\n var _this$getWheelValuesF = _this.getWheelValuesFromEvent(event),\n values = _this$getWheelValuesF.values,\n delta = _this$getWheelValuesF.delta,\n origin = _this$getWheelValuesF.origin;\n\n if (event.cancelable) event.preventDefault();else if (process.env.NODE_ENV === 'development') {\n console.warn('To properly support zoom on trackpads, try using the `domTarget` option and `config.eventOptions.passive` set to `false`. This message will only appear in development mode.');\n }\n\n _this.updateSharedState(getGenericEventData(event));\n\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true), {\n initial: _this.state.values,\n offset: values,\n delta: delta,\n origin: origin\n }));\n\n _this.updateGestureState(_this.getMovement(values));\n\n _this.fireGestureHandler();\n };\n\n _this.onWheelChange = function (event) {\n _this.updateSharedState(getGenericEventData(event));\n\n var _this$getWheelValuesF2 = _this.getWheelValuesFromEvent(event),\n values = _this$getWheelValuesF2.values,\n origin = _this$getWheelValuesF2.origin,\n delta = _this$getWheelValuesF2.delta;\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getKinematics(values, event), {\n origin: origin,\n delta: delta\n }));\n\n _this.fireGestureHandler();\n };\n\n _this.onWheelEnd = function () {\n _this.state._active = false;\n\n _this.updateGestureState(_this.getMovement(_this.state.values));\n\n _this.fireGestureHandler();\n };\n\n return _this;\n }\n\n var _proto = PinchRecognizer.prototype;\n\n _proto.addBindings = function addBindings$1(bindings) {\n // Only try to use gesture events when they are supported and domTarget is set\n // as React doesn't support gesture handlers.\n if (this.controller.config.domTarget && !supportsTouchEvents() && supportsGestureEvents()) {\n addBindings(bindings, 'onGestureStart', this.onGestureStart);\n\n addBindings(bindings, 'onGestureChange', this.onGestureChange);\n\n addBindings(bindings, 'onGestureEnd', this.onGestureEnd);\n } else {\n addBindings(bindings, 'onTouchStart', this.onPinchStart);\n\n addBindings(bindings, 'onTouchMove', this.onPinchChange);\n\n addBindings(bindings, 'onTouchEnd', this.onPinchEnd);\n\n addBindings(bindings, 'onTouchCancel', this.onPinchEnd);\n\n addBindings(bindings, 'onWheel', this.onWheel);\n }\n };\n\n return PinchRecognizer;\n}(DistanceAngleRecognizer);\n\n/**\r\n * Pinch hook.\r\n *\r\n * @param handler - the function fired every time the pinch gesture updates\r\n * @param [config={}] - the config object including generic options and pinch options\r\n */\n\nfunction usePinch(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('pinch', PinchRecognizer);\n var buildPinchConfig = useRef();\n\n if (!buildPinchConfig.current) {\n buildPinchConfig.current = memoizeOne(_buildPinchConfig, isEqual);\n }\n\n return useRecognizers({\n pinch: handler\n }, buildPinchConfig.current(config));\n}\n\nvar WheelRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {\n _inheritsLoose(WheelRecognizer, _CoordinatesRecognize);\n\n function WheelRecognizer() {\n var _this;\n\n _this = _CoordinatesRecognize.apply(this, arguments) || this;\n _this.ingKey = 'wheeling';\n _this.stateKey = 'wheel';\n _this.debounced = true;\n\n _this.handleEvent = function (event) {\n if (event.ctrlKey && 'pinch' in _this.controller.handlers) return;\n if (!_this.enabled) return;\n\n _this.setTimeout(_this.onEnd);\n\n _this.updateSharedState(getGenericEventData(event));\n\n var values = addV(getWheelEventValues(event), _this.state.values);\n\n if (!_this.state._active) {\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true), {\n initial: _this.state.values\n }));\n\n var movement = _this.getMovement(values);\n\n var geometry = calculateAllGeometry(movement.delta);\n\n _this.updateGestureState(movement);\n\n _this.updateGestureState(geometry);\n } else {\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getKinematics(values, event)));\n }\n\n _this.fireGestureHandler();\n };\n\n _this.onEnd = function () {\n var movement = _this.getMovement(_this.state.values);\n\n _this.updateGestureState(movement);\n\n _this.updateGestureState({\n _active: false,\n velocities: [0, 0],\n velocity: 0\n });\n\n _this.fireGestureHandler();\n };\n\n return _this;\n }\n\n var _proto = WheelRecognizer.prototype;\n\n _proto.addBindings = function addBindings$1(bindings) {\n addBindings(bindings, 'onWheel', this.handleEvent);\n };\n\n return WheelRecognizer;\n}(CoordinatesRecognizer);\n\n/**\r\n * Wheel hook.\r\n *\r\n * @param handler - the function fired every time the wheel gesture updates\r\n * @param the config object including generic options and wheel options\r\n */\n\nfunction useWheel(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('wheel', WheelRecognizer);\n var buildWheelConfig = useRef();\n\n if (!buildWheelConfig.current) {\n buildWheelConfig.current = memoizeOne(_buildWheelConfig, isEqual);\n }\n\n return useRecognizers({\n wheel: handler\n }, buildWheelConfig.current(config));\n}\n\nvar MoveRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {\n _inheritsLoose(MoveRecognizer, _CoordinatesRecognize);\n\n function MoveRecognizer() {\n var _this;\n\n _this = _CoordinatesRecognize.apply(this, arguments) || this;\n _this.ingKey = 'moving';\n _this.stateKey = 'move';\n _this.debounced = true;\n\n _this.onMove = function (event) {\n if (!_this.enabled) return;\n\n _this.setTimeout(_this.onMoveEnd);\n\n if (!_this.state._active) _this.onMoveStart(event);else _this.onMoveChange(event);\n };\n\n _this.onMoveStart = function (event) {\n _this.updateSharedState(getGenericEventData(event));\n\n var values = getPointerEventValues(event);\n\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true)));\n\n _this.updateGestureState(_this.getMovement(values));\n\n _this.fireGestureHandler();\n };\n\n _this.onMoveChange = function (event) {\n _this.updateSharedState(getGenericEventData(event));\n\n var values = getPointerEventValues(event);\n\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getKinematics(values, event)));\n\n _this.fireGestureHandler();\n };\n\n _this.onMoveEnd = function () {\n var values = _this.state.values;\n\n _this.updateGestureState(_this.getMovement(values));\n\n _this.updateGestureState({\n velocities: [0, 0],\n velocity: 0,\n _active: false\n });\n\n _this.fireGestureHandler();\n };\n\n _this.onPointerEnter = function (event) {\n _this.controller.state.shared.hovering = true;\n if (!_this.controller.config.enabled) return;\n\n if (_this.controller.config.hover.enabled) {\n var values = getPointerEventValues(event);\n\n var state = _extends({}, _this.controller.state.shared, _this.state, getGenericPayload(_assertThisInitialized(_this), event, true), {\n values: values,\n active: true,\n hovering: true\n });\n\n _this.controller.handlers.hover(_extends({}, state, _this.mapStateValues(state)));\n }\n\n if ('move' in _this.controller.handlers) _this.onMoveStart(event);\n };\n\n _this.onPointerLeave = function (event) {\n _this.controller.state.shared.hovering = false;\n if ('move' in _this.controller.handlers) _this.onMoveEnd();\n if (!_this.controller.config.hover.enabled) return;\n var values = getPointerEventValues(event);\n\n var state = _extends({}, _this.controller.state.shared, _this.state, getGenericPayload(_assertThisInitialized(_this), event), {\n values: values,\n active: false\n });\n\n _this.controller.handlers.hover(_extends({}, state, _this.mapStateValues(state)));\n };\n\n return _this;\n }\n\n var _proto = MoveRecognizer.prototype;\n\n _proto.addBindings = function addBindings$1(bindings) {\n if ('move' in this.controller.handlers) {\n addBindings(bindings, 'onPointerMove', this.onMove);\n }\n\n if ('hover' in this.controller.handlers) {\n addBindings(bindings, 'onPointerEnter', this.onPointerEnter);\n\n addBindings(bindings, 'onPointerLeave', this.onPointerLeave);\n }\n };\n\n return MoveRecognizer;\n}(CoordinatesRecognizer);\n\n/**\r\n * Move hook.\r\n *\r\n * @param handler - the function fired every time the move gesture updates\r\n * @param [config={}] - the config object including generic options and move options\r\n */\n\nfunction useMove(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('move', MoveRecognizer);\n var buildMoveConfig = useRef();\n\n if (!buildMoveConfig.current) {\n buildMoveConfig.current = memoizeOne(_buildMoveConfig, isEqual);\n }\n\n return useRecognizers({\n move: handler\n }, buildMoveConfig.current(config));\n}\n\n/**\r\n * Hover hook.\r\n *\r\n * @param handler - the function fired every time the hover gesture updates\r\n * @param [config={}] - the config object including generic options and hover options\r\n */\n\nfunction useHover(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('hover', MoveRecognizer);\n var buildHoverConfig = useRef();\n\n if (!buildHoverConfig.current) {\n buildHoverConfig.current = memoizeOne(_buildHoverConfig, isEqual);\n }\n\n return useRecognizers({\n hover: handler\n }, buildHoverConfig.current(config));\n}\n\nvar ScrollRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {\n _inheritsLoose(ScrollRecognizer, _CoordinatesRecognize);\n\n function ScrollRecognizer() {\n var _this;\n\n _this = _CoordinatesRecognize.apply(this, arguments) || this;\n _this.ingKey = 'scrolling';\n _this.stateKey = 'scroll';\n _this.debounced = true;\n\n _this.handleEvent = function (event) {\n if (!_this.enabled) return;\n\n _this.clearTimeout();\n\n _this.setTimeout(_this.onEnd);\n\n var values = getScrollEventValues(event);\n\n _this.updateSharedState(getGenericEventData(event));\n\n if (!_this.state._active) {\n _this.updateGestureState(_extends({}, getStartGestureState(_assertThisInitialized(_this), values, event), getGenericPayload(_assertThisInitialized(_this), event, true), {\n initial: _this.state.values\n }));\n\n var movementDetection = _this.getMovement(values);\n\n var geometry = calculateAllGeometry(movementDetection.delta);\n\n _this.updateGestureState(movementDetection);\n\n _this.updateGestureState(geometry);\n } else {\n _this.updateGestureState(_extends({}, getGenericPayload(_assertThisInitialized(_this), event), _this.getKinematics(values, event)));\n }\n\n _this.fireGestureHandler();\n };\n\n _this.onEnd = function () {\n _this.state._active = false;\n\n _this.updateGestureState(_extends({}, _this.getMovement(_this.state.values), {\n velocities: [0, 0],\n velocity: 0\n }));\n\n _this.fireGestureHandler();\n };\n\n return _this;\n }\n\n var _proto = ScrollRecognizer.prototype;\n\n _proto.addBindings = function addBindings$1(bindings) {\n addBindings(bindings, 'onScroll', this.handleEvent);\n };\n\n return ScrollRecognizer;\n}(CoordinatesRecognizer);\n\n/**\r\n * Scroll hook.\r\n *\r\n * @param handler - the function fired every time the scroll gesture updates\r\n * @param [config={}] - the config object including generic options and scroll options\r\n */\n\nfunction useScroll(handler, config) {\n if (config === void 0) {\n config = {};\n }\n\n RecognizersMap.set('scroll', ScrollRecognizer);\n var buildScrollConfig = useRef();\n\n if (!buildScrollConfig.current) {\n buildScrollConfig.current = memoizeOne(_buildScrollConfig, isEqual);\n }\n\n return useRecognizers({\n scroll: handler\n }, buildScrollConfig.current(config));\n}\n\nvar RE_NOT_NATIVE = /^on(Drag|Wheel|Scroll|Move|Pinch|Hover)/;\n\nfunction sortHandlers(handlers) {\n var _native = {};\n var handle = {};\n var actions = new Set();\n\n for (var key in handlers) {\n if (RE_NOT_NATIVE.test(key)) {\n actions.add(RegExp.lastMatch);\n handle[key] = handlers[key];\n } else {\n _native[key] = handlers[key];\n }\n }\n\n return [handle, _native, actions];\n}\n/**\r\n * @public\r\n *\r\n * The most complete gesture hook, allowing support for multiple gestures.\r\n *\r\n * @param {Handlers} handlers - an object with on[Gesture] keys containg gesture handlers\r\n * @param {UseGestureConfig} [config={}] - the full config object\r\n * @returns {(...args: any[]) => HookReturnType}\r\n */\n\n\nfunction useGesture(_handlers, config) {\n if (config === void 0) {\n config = {};\n }\n\n var _sortHandlers = sortHandlers(_handlers),\n handlers = _sortHandlers[0],\n nativeHandlers = _sortHandlers[1],\n actions = _sortHandlers[2];\n\n RecognizersMap.set('drag', DragRecognizer);\n RecognizersMap.set('hover', MoveRecognizer);\n RecognizersMap.set('move', MoveRecognizer);\n RecognizersMap.set('pinch', PinchRecognizer);\n RecognizersMap.set('scroll', ScrollRecognizer);\n RecognizersMap.set('wheel', WheelRecognizer);\n var mergedConfig = buildComplexConfig(config, actions);\n var internalHandlers = {};\n if (actions.has('onDrag')) internalHandlers.drag = includeStartEndHandlers(handlers, 'onDrag');\n if (actions.has('onWheel')) internalHandlers.wheel = includeStartEndHandlers(handlers, 'onWheel');\n if (actions.has('onScroll')) internalHandlers.scroll = includeStartEndHandlers(handlers, 'onScroll');\n if (actions.has('onMove')) internalHandlers.move = includeStartEndHandlers(handlers, 'onMove');\n if (actions.has('onPinch')) internalHandlers.pinch = includeStartEndHandlers(handlers, 'onPinch');\n if (actions.has('onHover')) internalHandlers.hover = handlers.onHover;\n return useRecognizers(internalHandlers, mergedConfig, nativeHandlers);\n}\n\nfunction includeStartEndHandlers(handlers, handlerKey) {\n var startKey = handlerKey + 'Start';\n var endKey = handlerKey + 'End';\n\n var fn = function fn(state) {\n var memo = undefined;\n if (state.first && startKey in handlers) handlers[startKey](state);\n if (handlerKey in handlers) memo = handlers[handlerKey](state);\n if (state.last && endKey in handlers) handlers[endKey](state);\n return memo;\n };\n\n return fn;\n}\n\nexport { addV, rubberbandIfOutOfBounds, subV, useDrag, useGesture, useHover, useMove, usePinch, useScroll, useWheel };\n//# sourceMappingURL=react-use-gesture.esm.js.map\n","/*!\n* tabbable 5.3.3\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\nvar candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]:not(slot)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])', 'details>summary:first-of-type', 'details'];\nvar candidateSelector = /* #__PURE__ */candidateSelectors.join(',');\nvar NoElement = typeof Element === 'undefined';\nvar matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {\n return element.getRootNode();\n} : function (element) {\n return element.ownerDocument;\n};\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\n\nvar getCandidates = function getCandidates(el, includeContainer, filter) {\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n\n candidates = candidates.filter(filter);\n return candidates;\n};\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidatesScope\n * @property {Element} scope contains inner candidates\n * @property {Element[]} candidates\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidatesScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.}\n */\n\n\nvar getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively(content, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: nestedCandidates\n });\n }\n } else {\n // check candidate element\n var validCandidate = matches.call(element, candidateSelector);\n\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n } // iterate over shadow content if possible\n\n\n var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);\n var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element);\n\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scope: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n\n return candidates;\n};\n\nvar getTabindex = function getTabindex(node, isScope) {\n if (node.tabIndex < 0) {\n // in Chrome,
,