{"version":3,"file":"static/js/main.3bc080f8.js","mappings":"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+FAEF,kCACE,wDACF,uBACE,0DACF,yBACE,gKAGF,sBAAkC,+BAClC,0BACE,mFACF,iBAAgC,sCAChC,yBACE,sIAEF,iBACE,qEACF,qBACE,sLAGF,qBAAoC,sCACpC,4BACE,wLAGF,uBACE,uDACF,gCACE,gOAIF,uBACE,wEACF,8BACE,4FACF,gBAA+B,wCAC/B,0BACE,qEACF,kBACE,sEACF,oBACE,kDACF,qBACE,4DACF,0BACE,+KAEF,+BACE,iFACF,yBACE,uGAEF,0BACE,0FAEF,sBACE,+IAEF,sBACE,2GAEF,iBACE,gEACF,2BACE,oFACF,uBACE,gPAIF,sBACE,wCACF,0BACE,4GAEF,iBACE,6KAEF,0BACE,2EACF,oBACE,4CACF,gBACE,4DACF,2BACE,2FACF,8BACE,8HAEF,yBACE,gIAEF,4BACE,6EACF,uBACE,kDACF,uBAAsC,sCACtC,wBACE,oEACF,2BACE,oKAGF,mBAAkC,wCAClC,4BACE,2CACF,+BACE,mEACF,uBACE,wEACF,0BACE,uEACF,cACE,iDACF,8BACE,2EACF,6BACE,yEACF,2CACE,wJAGF,yBACE,kGACF,gBAA+B,sCAC/B,mBACE,6DACF,YACE,0GAEF,wBACE,yJAGF,8CACE,kLAGF,gBACE,4FACF,uBACE,yEACF,0BACE,kEACF,iBACE,4DACF,6BACE,2EACF,6BACE,mDACF,sBACE,6DACF,+BACE,yDACF,uCACE,4EACF,qBACE,sEACF,QAAyB,+BACzB,qBACE,yEACF,oBACE,0FAEF,4BACE,2GAEF,2BACE,sHACF,+BACE,2EACF,+BACE,6DACF,mBACE,2CACF,iBACE,wEACF,iBACE,4FAEF,gBACE,0DACF,gBACE,+EACF,kBAAiC,GACjC,gBACE,kDACF,0BACE,+EACF,sBACE,oOAIF,0BACE,sEACF,0BACE,sEACF,2BACE,uEACF,wBACE,oEACF,sBACE,4EACF,4BACE,wEACF,mBAAkC,8BAClC,4BACE,wEAEN,EAkCaC,GAA6BF,GAuD7BG,GAA8B,IAAIxQ,GAG7C,OAAQ,WAlFD,CACL,wCACE,4LCvXAyQ,GA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","sources":["../node_modules/classnames/index.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/enquire.js/src/Util.js","../node_modules/enquire.js/src/index.js","../node_modules/invariant/browser.js","../node_modules/json2mq/index.js","../node_modules/lodash.debounce/index.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arrayReduce.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_asciiWords.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseHas.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_basePropertyOf.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_createCompounder.js","../node_modules/lodash/_deburrLetter.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_hasUnicodeWord.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/_unicodeWords.js","../node_modules/lodash/camelCase.js","../node_modules/lodash/capitalize.js","../node_modules/lodash/deburr.js","../node_modules/lodash/eq.js","../node_modules/lodash/get.js","../node_modules/lodash/has.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/mapKeys.js","../node_modules/lodash/mapValues.js","../node_modules/lodash/memoize.js","../node_modules/lodash/property.js","../node_modules/lodash/snakeCase.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/toString.js","../node_modules/lodash/upperFirst.js","../node_modules/lodash/words.js","../node_modules/mixpanel-browser/dist/mixpanel.cjs.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/property-expr/index.js","../node_modules/rc-util/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/rc-util/node_modules/react-is/index.js","../node_modules/react-device-detect/dist/lib.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-ga4/dist/format.js","../node_modules/react-ga4/dist/ga4.js","../node_modules/react-ga4/dist/gtag.js","../node_modules/react-ga4/dist/index.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-slick/lib/default-props.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/redux-persist/lib/storage/createWebStorage.js","../node_modules/redux-persist/lib/storage/getStorage.js","../node_modules/redux-persist/lib/storage/index.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/toposort/index.js","../node_modules/ua-parser-js/dist/ua-parser.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.min.js","../node_modules/use-sync-external-store/with-selector.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../node_modules/antd/es/config-provider/context.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/antd/es/_util/styleChecker.js","../node_modules/antd/es/_util/hooks/useFlexGapSupport.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/es/isEqual.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@ant-design/cssinjs/es/Cache.js","../node_modules/@ant-design/cssinjs/es/StyleContext.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@ant-design/cssinjs/es/hooks/useHMR.js","../node_modules/@ant-design/cssinjs/es/hooks/useGlobalCache.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/@ant-design/cssinjs/es/util.js","../node_modules/@ant-design/cssinjs/es/hooks/useCacheToken.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@ant-design/cssinjs/node_modules/stylis/src/Enum.js","../node_modules/@ant-design/cssinjs/node_modules/stylis/src/Utility.js","../node_modules/@ant-design/cssinjs/node_modules/stylis/src/Serializer.js","../node_modules/@ant-design/cssinjs/node_modules/stylis/src/Tokenizer.js","../node_modules/@ant-design/cssinjs/node_modules/stylis/src/Parser.js","../node_modules/@ant-design/cssinjs/es/hooks/useStyleRegister.js","../node_modules/@ant-design/cssinjs/es/Keyframes.js","../node_modules/@ant-design/cssinjs/es/theme/ThemeCache.js","../node_modules/@ant-design/cssinjs/es/theme/Theme.js","../node_modules/@ant-design/cssinjs/es/theme/createTheme.js","../node_modules/@ant-design/cssinjs/es/transformers/legacyLogicalProperties.js","../node_modules/@ant-design/cssinjs/es/transformers/px2rem.js","../node_modules/antd/es/version/index.js","../node_modules/antd/es/version/version.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ant-design/colors/es/generate.js","../node_modules/@ant-design/colors/es/index.js","../node_modules/antd/es/theme/themes/shared/genControlHeight.js","../node_modules/antd/es/theme/themes/seed.js","../node_modules/@ctrl/tinycolor/dist/module/index.js","../node_modules/antd/es/theme/themes/shared/genColorMapToken.js","../node_modules/antd/es/theme/themes/shared/genRadius.js","../node_modules/antd/es/theme/themes/default/colorAlgorithm.js","../node_modules/antd/es/theme/themes/default/colors.js","../node_modules/antd/es/theme/themes/shared/genFontMapToken.js","../node_modules/antd/es/theme/themes/shared/genFontSizes.js","../node_modules/antd/es/theme/themes/default/index.js","../node_modules/antd/es/theme/themes/shared/genSizeMapToken.js","../node_modules/antd/es/theme/themes/shared/genCommonMapToken.js","../node_modules/antd/es/theme/util/getAlphaColor.js","../node_modules/antd/es/theme/util/alias.js","../node_modules/antd/es/theme/internal.js","../node_modules/antd/es/_util/responsiveObserver.js","../node_modules/antd/es/grid/RowContext.js","../node_modules/antd/es/style/index.js","../node_modules/antd/es/theme/util/statistic.js","../node_modules/antd/es/theme/util/genComponentStyleHook.js","../node_modules/antd/es/grid/style/index.js","../node_modules/antd/es/grid/row.js","../node_modules/antd/es/row/index.js","../node_modules/antd/es/grid/col.js","../node_modules/antd/es/col/index.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/rc-util/es/React/render.js","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/rc-field-form/es/FieldContext.js","../node_modules/rc-field-form/es/utils/typeUtil.js","../node_modules/src/util.ts","../node_modules/src/rule/required.ts","../node_modules/src/rule/url.ts","../node_modules/src/rule/type.ts","../node_modules/src/rule/enum.ts","../node_modules/src/rule/index.ts","../node_modules/src/rule/whitespace.ts","../node_modules/src/rule/range.ts","../node_modules/src/rule/pattern.ts","../node_modules/src/validator/type.ts","../node_modules/src/validator/index.ts","../node_modules/src/validator/string.ts","../node_modules/src/validator/method.ts","../node_modules/src/validator/number.ts","../node_modules/src/validator/boolean.ts","../node_modules/src/validator/regexp.ts","../node_modules/src/validator/integer.ts","../node_modules/src/validator/float.ts","../node_modules/src/validator/array.ts","../node_modules/src/validator/object.ts","../node_modules/src/validator/enum.ts","../node_modules/src/validator/pattern.ts","../node_modules/src/validator/date.ts","../node_modules/src/validator/required.ts","../node_modules/src/validator/any.ts","../node_modules/src/messages.ts","../node_modules/src/index.ts","../node_modules/rc-field-form/es/utils/messages.js","../node_modules/rc-util/es/utils/get.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/rc-util/es/utils/set.js","../node_modules/rc-field-form/es/utils/cloneDeep.js","../node_modules/rc-field-form/es/utils/valueUtil.js","../node_modules/rc-field-form/es/utils/validateUtil.js","../node_modules/rc-field-form/es/Field.js","../node_modules/rc-field-form/es/ListContext.js","../node_modules/rc-field-form/es/List.js","../node_modules/rc-field-form/es/utils/NameMap.js","../node_modules/rc-field-form/es/useForm.js","../node_modules/rc-field-form/es/utils/asyncUtil.js","../node_modules/rc-field-form/es/FormContext.js","../node_modules/rc-field-form/es/Form.js","../node_modules/rc-field-form/es/useWatch.js","../node_modules/rc-field-form/es/index.js","../node_modules/rc-pagination/es/locale/en_US.js","../node_modules/rc-picker/es/locale/en_US.js","../node_modules/antd/es/time-picker/locale/en_US.js","../node_modules/antd/es/date-picker/locale/en_US.js","../node_modules/antd/es/locale/en_US.js","../node_modules/antd/es/modal/locale.js","../node_modules/antd/es/locale/context.js","../node_modules/antd/es/locale/index.js","../node_modules/antd/es/config-provider/cssVariables.js","../node_modules/antd/es/config-provider/DisabledContext.js","../node_modules/antd/es/config-provider/SizeContext.js","../node_modules/antd/es/config-provider/hooks/useConfig.js","../node_modules/antd/es/config-provider/style/index.js","../node_modules/antd/es/config-provider/index.js","../node_modules/antd/es/config-provider/hooks/useTheme.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleFilled.js","../node_modules/@ant-design/icons/es/icons/ExclamationCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CloseCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CheckCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleFilled.js","../node_modules/@ant-design/icons/es/icons/InfoCircleFilled.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-util/es/ref.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-util/es/raf.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/rc-motion/es/index.js","../node_modules/rc-util/es/KeyCode.js","../node_modules/rc-notification/es/Notice.js","../node_modules/rc-notification/es/Notifications.js","../node_modules/rc-notification/es/useNotification.js","../node_modules/antd/es/message/style/index.js","../node_modules/antd/es/message/PurePanel.js","../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseOutlined.js","../node_modules/antd/es/message/util.js","../node_modules/antd/es/message/useMessage.js","../node_modules/antd/es/message/index.js","../node_modules/rc-util/es/omit.js","../node_modules/antd/es/form/context.js","../node_modules/antd/es/_util/motion.js","../node_modules/antd/es/form/hooks/useDebounce.js","../node_modules/antd/es/style/motion/motion.js","../node_modules/antd/es/style/motion/zoom.js","../node_modules/antd/es/style/motion/collapse.js","../node_modules/antd/es/form/style/explain.js","../node_modules/antd/es/form/style/index.js","../node_modules/antd/es/form/ErrorList.js","../node_modules/compute-scroll-into-view/src/index.ts","../node_modules/scroll-into-view-if-needed/src/index.ts","../node_modules/antd/es/form/util.js","../node_modules/antd/es/form/hooks/useForm.js","../node_modules/antd/es/form/Form.js","../node_modules/antd/es/form/hooks/useFormItemStatus.js","../node_modules/antd/es/_util/reactNode.js","../node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-util/es/Dom/isVisible.js","../node_modules/antd/es/form/FormItemInput.js","../node_modules/@ant-design/icons-svg/es/asn/QuestionCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/QuestionCircleOutlined.js","../node_modules/antd/es/locale/useLocale.js","../node_modules/@rc-component/portal/es/Context.js","../node_modules/@rc-component/portal/es/useDom.js","../node_modules/rc-util/es/getScrollBarSize.js","../node_modules/@rc-component/portal/es/useScrollLocker.js","../node_modules/@rc-component/portal/es/util.js","../node_modules/@rc-component/portal/es/mock.js","../node_modules/@rc-component/portal/es/Portal.js","../node_modules/@rc-component/portal/es/index.js","../node_modules/rc-resize-observer/es/utils/observerUtil.js","../node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js","../node_modules/rc-resize-observer/es/Collection.js","../node_modules/rc-resize-observer/es/SingleObserver/index.js","../node_modules/rc-resize-observer/es/index.js","../node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-util/es/hooks/useId.js","../node_modules/rc-util/es/isMobile.js","../node_modules/@rc-component/trigger/es/context.js","../node_modules/@rc-component/trigger/es/hooks/useAction.js","../node_modules/@rc-component/trigger/es/util.js","../node_modules/@rc-component/trigger/es/hooks/useAlign.js","../node_modules/@rc-component/trigger/es/Popup/Arrow.js","../node_modules/@rc-component/trigger/es/Popup/Mask.js","../node_modules/@rc-component/trigger/es/Popup/index.js","../node_modules/@rc-component/trigger/es/TriggerWrapper.js","../node_modules/@rc-component/trigger/es/index.js","../node_modules/@rc-component/trigger/es/hooks/useWatch.js","../node_modules/rc-tooltip/es/placements.js","../node_modules/rc-tooltip/es/Popup.js","../node_modules/rc-tooltip/es/Tooltip.js","../node_modules/rc-tooltip/es/index.js","../node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/antd/es/style/roundedArrow.js","../node_modules/antd/es/style/placementArrow.js","../node_modules/antd/es/_util/placements.js","../node_modules/antd/es/theme/themes/dark/colorAlgorithm.js","../node_modules/antd/es/theme/themes/dark/colors.js","../node_modules/antd/es/theme/themes/dark/index.js","../node_modules/antd/es/theme/themes/compact/index.js","../node_modules/antd/es/theme/themes/compact/genCompactSizeMapToken.js","../node_modules/antd/es/theme/index.js","../node_modules/antd/es/theme/interface/presetColors.js","../node_modules/antd/es/theme/util/genPresetColor.js","../node_modules/antd/es/tooltip/style/index.js","../node_modules/antd/es/_util/colors.js","../node_modules/antd/es/tooltip/util.js","../node_modules/antd/es/tooltip/index.js","../node_modules/antd/es/tooltip/PurePanel.js","../node_modules/antd/es/form/FormItemLabel.js","../node_modules/antd/es/form/FormItem/ItemHolder.js","../node_modules/antd/es/form/FormItem/index.js","../node_modules/antd/es/form/hooks/useFrameState.js","../node_modules/antd/es/form/hooks/useItemRef.js","../node_modules/antd/es/form/FormList.js","../node_modules/antd/es/form/index.js","../node_modules/antd/es/form/hooks/useFormInstance.js","../node_modules/@ant-design/icons-svg/es/asn/EyeOutlined.js","../node_modules/@ant-design/icons/es/icons/EyeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EyeInvisibleOutlined.js","../node_modules/@ant-design/icons/es/icons/EyeInvisibleOutlined.js","../node_modules/antd/es/style/compact-item.js","../node_modules/antd/es/input/style/index.js","../node_modules/antd/es/input/Group.js","../node_modules/rc-input/es/utils/commonUtils.js","../node_modules/rc-input/es/BaseInput.js","../node_modules/rc-input/es/Input.js","../node_modules/rc-input/es/index.js","../node_modules/antd/es/space/style/compact.js","../node_modules/antd/es/space/style/index.js","../node_modules/antd/es/space/Compact.js","../node_modules/antd/es/_util/statusUtils.js","../node_modules/antd/es/input/hooks/useRemovePasswordTimeout.js","../node_modules/antd/es/input/Input.js","../node_modules/antd/es/input/utils.js","../node_modules/antd/es/input/Password.js","../node_modules/@ant-design/icons-svg/es/asn/SearchOutlined.js","../node_modules/@ant-design/icons/es/icons/SearchOutlined.js","../node_modules/antd/es/_util/wave/style.js","../node_modules/antd/es/_util/wave/util.js","../node_modules/antd/es/_util/wave/WaveEffect.js","../node_modules/antd/es/_util/wave/useWave.js","../node_modules/antd/es/_util/wave/index.js","../node_modules/antd/es/button/LoadingIcon.js","../node_modules/antd/es/button/button-group.js","../node_modules/antd/es/button/buttonHelpers.js","../node_modules/antd/es/button/style/group.js","../node_modules/antd/es/style/compact-item-vertical.js","../node_modules/antd/es/button/style/index.js","../node_modules/antd/es/button/button.js","../node_modules/antd/es/button/index.js","../node_modules/antd/es/input/Search.js","../node_modules/rc-textarea/es/calculateNodeHeight.js","../node_modules/rc-textarea/es/ResizableTextArea.js","../node_modules/rc-textarea/es/TextArea.js","../node_modules/rc-textarea/es/index.js","../node_modules/antd/es/input/TextArea.js","../node_modules/antd/es/input/index.js","../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/react-hook-form/src/utils/isPlainObject.ts","../node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/react-hook-form/src/utils/compact.ts","../node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/react-hook-form/src/utils/get.ts","../node_modules/react-hook-form/src/constants.ts","../node_modules/react-hook-form/src/useFormContext.tsx","../node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/react-hook-form/src/utils/isEmptyObject.ts","../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../node_modules/react-hook-form/src/logic/shouldSubscribeByName.ts","../node_modules/react-hook-form/src/useSubscribe.ts","../node_modules/react-hook-form/src/utils/isString.ts","../node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/react-hook-form/src/utils/set.ts","../node_modules/react-hook-form/src/useController.ts","../node_modules/react-hook-form/src/useWatch.ts","../node_modules/react-hook-form/src/useFormState.ts","../node_modules/react-hook-form/src/controller.tsx","../node_modules/react-hook-form/src/logic/appendErrors.ts","../node_modules/react-hook-form/src/logic/focusFieldBy.ts","../node_modules/react-hook-form/src/logic/generateId.ts","../node_modules/react-hook-form/src/logic/getValidationModes.ts","../node_modules/react-hook-form/src/logic/isWatched.ts","../node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts","../node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/react-hook-form/src/utils/isFileInput.ts","../node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/react-hook-form/src/utils/isHTMLElement.ts","../node_modules/react-hook-form/src/utils/isMessage.ts","../node_modules/react-hook-form/src/utils/isRadioInput.ts","../node_modules/react-hook-form/src/utils/isRegex.ts","../node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../node_modules/react-hook-form/src/logic/getRadioValue.ts","../node_modules/react-hook-form/src/logic/getValidateError.ts","../node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../node_modules/react-hook-form/src/logic/validateField.ts","../node_modules/react-hook-form/src/utils/unset.ts","../node_modules/react-hook-form/src/utils/createSubject.ts","../node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../node_modules/react-hook-form/src/utils/live.ts","../node_modules/react-hook-form/src/utils/objectHasFunction.ts","../node_modules/react-hook-form/src/logic/getDirtyFields.ts","../node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../node_modules/react-hook-form/src/logic/getFieldValue.ts","../node_modules/react-hook-form/src/logic/getResolverOptions.ts","../node_modules/react-hook-form/src/logic/getRuleValue.ts","../node_modules/react-hook-form/src/logic/hasValidation.ts","../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../node_modules/react-hook-form/src/logic/skipValidation.ts","../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","../node_modules/react-hook-form/src/logic/createFormControl.ts","../node_modules/react-hook-form/src/useForm.ts","components/CommonV2/FloatInput/FloatInput.jsx","../node_modules/@hookform/resolvers/src/validateFieldsNatively.ts","../node_modules/nanoclone/src/index.js","../node_modules/@hookform/resolvers/src/toNestError.ts","../node_modules/@hookform/resolvers/yup/src/yup.ts","../node_modules/yup/es/util/printValue.js","../node_modules/yup/es/locale.js","../node_modules/yup/es/util/isSchema.js","../node_modules/yup/es/Condition.js","../node_modules/yup/es/util/toArray.js","../node_modules/yup/es/ValidationError.js","../node_modules/yup/es/util/runTests.js","../node_modules/yup/es/Reference.js","../node_modules/yup/es/util/createValidation.js","../node_modules/yup/es/util/reach.js","../node_modules/yup/es/util/ReferenceSet.js","../node_modules/yup/es/schema.js","../node_modules/yup/es/mixed.js","../node_modules/yup/es/util/isAbsent.js","../node_modules/yup/es/boolean.js","../node_modules/yup/es/string.js","../node_modules/yup/es/number.js","../node_modules/yup/es/util/isodate.js","../node_modules/yup/es/date.js","../node_modules/yup/es/util/sortByKeyOrder.js","../node_modules/yup/es/object.js","../node_modules/yup/es/util/sortFields.js","../node_modules/yup/es/array.js","Services/validations.js","../node_modules/@firebase/util/src/crypt.ts","../node_modules/@firebase/util/src/deepCopy.ts","../node_modules/@firebase/util/src/defaults.ts","../node_modules/@firebase/util/src/global.ts","../node_modules/@firebase/util/src/deferred.ts","../node_modules/@firebase/util/src/environment.ts","../node_modules/@firebase/util/src/errors.ts","../node_modules/@firebase/util/src/obj.ts","../node_modules/@firebase/util/src/query.ts","../node_modules/@firebase/util/src/subscribe.ts","../node_modules/@firebase/util/src/compat.ts","../node_modules/@firebase/component/src/component.ts","../node_modules/@firebase/component/src/constants.ts","../node_modules/@firebase/component/src/provider.ts","../node_modules/@firebase/component/src/component_container.ts","../node_modules/@firebase/logger/src/logger.ts","../node_modules/idb/build/wrap-idb-value.js","../node_modules/idb/build/index.js","../node_modules/@firebase/app/src/platformLoggerService.ts","../node_modules/@firebase/app/src/logger.ts","../node_modules/@firebase/app/src/constants.ts","../node_modules/@firebase/app/src/internal.ts","../node_modules/@firebase/app/src/errors.ts","../node_modules/@firebase/app/src/firebaseApp.ts","../node_modules/@firebase/app/src/api.ts","../node_modules/@firebase/app/src/indexeddb.ts","../node_modules/@firebase/app/src/heartbeatService.ts","../node_modules/@firebase/app/src/registerCoreComponents.ts","../node_modules/@firebase/app/src/index.ts","../node_modules/tslib/tslib.es6.mjs","../node_modules/@firebase/auth/src/model/enum_maps.ts","../node_modules/@firebase/auth/src/core/errors.ts","../node_modules/@firebase/auth/src/core/util/log.ts","../node_modules/@firebase/auth/src/core/util/assert.ts","../node_modules/@firebase/auth/src/core/util/location.ts","../node_modules/@firebase/auth/src/core/util/delay.ts","../node_modules/@firebase/auth/src/core/util/navigator.ts","../node_modules/@firebase/auth/src/core/util/emulator.ts","../node_modules/@firebase/auth/src/core/util/fetch_provider.ts","../node_modules/@firebase/auth/src/api/errors.ts","../node_modules/@firebase/auth/src/api/index.ts","../node_modules/@firebase/auth/src/core/util/time.ts","../node_modules/@firebase/auth/src/core/user/id_token_result.ts","../node_modules/@firebase/auth/src/core/user/invalidation.ts","../node_modules/@firebase/auth/src/core/user/proactive_refresh.ts","../node_modules/@firebase/auth/src/core/user/user_metadata.ts","../node_modules/@firebase/auth/src/core/user/reload.ts","../node_modules/@firebase/auth/src/api/account_management/account.ts","../node_modules/@firebase/auth/src/core/user/token_manager.ts","../node_modules/@firebase/auth/src/api/authentication/token.ts","../node_modules/@firebase/auth/src/core/user/user_impl.ts","../node_modules/@firebase/auth/src/core/util/instantiator.ts","../node_modules/@firebase/auth/src/core/persistence/in_memory.ts","../node_modules/@firebase/auth/src/core/persistence/persistence_user_manager.ts","../node_modules/@firebase/auth/src/core/util/browser.ts","../node_modules/@firebase/auth/src/core/util/version.ts","../node_modules/@firebase/auth/src/api/authentication/recaptcha.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha.ts","../node_modules/@firebase/auth/src/platform_browser/load_js.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_enterprise_verifier.ts","../node_modules/@firebase/auth/src/core/auth/middleware.ts","../node_modules/@firebase/auth/src/core/auth/auth_impl.ts","../node_modules/@firebase/auth/src/core/auth/emulator.ts","../node_modules/@firebase/auth/src/core/credentials/auth_credential.ts","../node_modules/@firebase/auth/src/api/account_management/email_and_password.ts","../node_modules/@firebase/auth/src/api/authentication/email_and_password.ts","../node_modules/@firebase/auth/src/core/credentials/email.ts","../node_modules/@firebase/auth/src/api/authentication/email_link.ts","../node_modules/@firebase/auth/src/api/authentication/idp.ts","../node_modules/@firebase/auth/src/core/credentials/oauth.ts","../node_modules/@firebase/auth/src/api/authentication/sms.ts","../node_modules/@firebase/auth/src/core/credentials/phone.ts","../node_modules/@firebase/auth/src/core/action_code_url.ts","../node_modules/@firebase/auth/src/core/providers/email.ts","../node_modules/@firebase/auth/src/core/providers/federated.ts","../node_modules/@firebase/auth/src/core/providers/oauth.ts","../node_modules/@firebase/auth/src/core/providers/facebook.ts","../node_modules/@firebase/auth/src/core/providers/google.ts","../node_modules/@firebase/auth/src/core/providers/github.ts","../node_modules/@firebase/auth/src/core/credentials/saml.ts","../node_modules/@firebase/auth/src/core/providers/saml.ts","../node_modules/@firebase/auth/src/core/providers/twitter.ts","../node_modules/@firebase/auth/src/api/authentication/sign_up.ts","../node_modules/@firebase/auth/src/core/user/user_credential_impl.ts","../node_modules/@firebase/auth/src/mfa/mfa_error.ts","../node_modules/@firebase/auth/src/core/util/providers.ts","../node_modules/@firebase/auth/src/core/user/link_unlink.ts","../node_modules/@firebase/auth/src/core/user/reauthenticate.ts","../node_modules/@firebase/auth/src/core/strategies/credential.ts","../node_modules/@firebase/auth/src/core/strategies/custom_token.ts","../node_modules/@firebase/auth/src/api/authentication/custom_token.ts","../node_modules/@firebase/auth/src/mfa/mfa_info.ts","../node_modules/@firebase/auth/src/core/strategies/action_code_settings.ts","../node_modules/@firebase/auth/src/core/strategies/email_and_password.ts","../node_modules/@firebase/auth/src/core/strategies/email.ts","../node_modules/@firebase/auth/src/api/authentication/create_auth_uri.ts","../node_modules/@firebase/auth/src/core/user/account_info.ts","../node_modules/@firebase/auth/src/api/account_management/profile.ts","../node_modules/@firebase/auth/src/core/user/additional_user_info.ts","../node_modules/@firebase/auth/src/mfa/mfa_session.ts","../node_modules/@firebase/auth/src/mfa/mfa_resolver.ts","../node_modules/@firebase/auth/src/mfa/mfa_user.ts","../node_modules/@firebase/auth/src/api/account_management/mfa.ts","../node_modules/@firebase/auth/src/core/persistence/index.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/browser.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/local_storage.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/session_storage.ts","../node_modules/@firebase/auth/src/platform_browser/messagechannel/receiver.ts","../node_modules/@firebase/auth/src/platform_browser/messagechannel/promise.ts","../node_modules/@firebase/auth/src/core/util/event_id.ts","../node_modules/@firebase/auth/src/platform_browser/messagechannel/sender.ts","../node_modules/@firebase/auth/src/platform_browser/auth_window.ts","../node_modules/@firebase/auth/src/platform_browser/util/worker.ts","../node_modules/@firebase/auth/src/platform_browser/persistence/indexed_db.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_mock.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_loader.ts","../node_modules/@firebase/auth/src/platform_browser/recaptcha/recaptcha_verifier.ts","../node_modules/@firebase/auth/src/platform_browser/strategies/phone.ts","../node_modules/@firebase/auth/src/api/authentication/mfa.ts","../node_modules/@firebase/auth/src/platform_browser/providers/phone.ts","../node_modules/@firebase/auth/src/core/util/resolver.ts","../node_modules/@firebase/auth/src/core/strategies/idp.ts","../node_modules/@firebase/auth/src/core/strategies/abstract_popup_redirect_operation.ts","../node_modules/@firebase/auth/src/platform_browser/strategies/popup.ts","../node_modules/@firebase/auth/src/core/strategies/redirect.ts","../node_modules/@firebase/auth/src/platform_browser/strategies/redirect.ts","../node_modules/@firebase/auth/src/core/auth/auth_event_manager.ts","../node_modules/@firebase/auth/src/api/project_config/get_project_config.ts","../node_modules/@firebase/auth/src/core/util/validate_origin.ts","../node_modules/@firebase/auth/src/platform_browser/iframe/gapi.ts","../node_modules/@firebase/auth/src/platform_browser/iframe/iframe.ts","../node_modules/@firebase/auth/src/platform_browser/util/popup.ts","../node_modules/@firebase/auth/src/core/util/handler.ts","../node_modules/@firebase/auth/src/platform_browser/popup_redirect.ts","../node_modules/@firebase/auth/src/mfa/mfa_assertion.ts","../node_modules/@firebase/auth/src/platform_browser/mfa/assertions/phone.ts","../node_modules/@firebase/auth/src/core/auth/firebase_internal.ts","../node_modules/@firebase/auth/src/platform_browser/index.ts","../node_modules/@firebase/auth/src/core/auth/initialize.ts","../node_modules/@firebase/auth/src/core/index.ts","../node_modules/@firebase/auth/src/core/auth/register.ts","../node_modules/@firebase/app-compat/src/firebaseApp.ts","../node_modules/@firebase/app-compat/src/errors.ts","../node_modules/@firebase/app-compat/src/firebaseNamespace.ts","../node_modules/@firebase/app-compat/src/firebaseNamespaceCore.ts","../node_modules/@firebase/app-compat/src/logger.ts","../node_modules/@firebase/app-compat/src/index.ts","../node_modules/@firebase/app-compat/src/registerCoreComponents.ts","../node_modules/@firebase/auth/src/platform_cordova/plugins.ts","../node_modules/firebase/compat/app/index.ts","../node_modules/@firebase/auth/src/platform_cordova/popup_redirect/utils.ts","../node_modules/@firebase/auth/src/platform_cordova/popup_redirect/events.ts","../node_modules/@firebase/auth/src/platform_cordova/popup_redirect/popup_redirect.ts","../node_modules/@firebase/auth-compat/src/platform.ts","../node_modules/@firebase/auth-compat/src/persistence.ts","../node_modules/@firebase/auth-compat/src/popup_redirect.ts","../node_modules/@firebase/auth-compat/src/wrap.ts","../node_modules/@firebase/auth-compat/src/user_credential.ts","../node_modules/@firebase/auth-compat/src/user.ts","../node_modules/@firebase/auth-compat/src/auth.ts","../node_modules/@firebase/auth/src/core/strategies/email_link.ts","../node_modules/@firebase/auth/internal/index.ts","../node_modules/@firebase/auth/src/core/strategies/anonymous.ts","../node_modules/@firebase/auth-compat/src/phone_auth_provider.ts","../node_modules/@firebase/auth-compat/src/recaptcha_verifier.ts","../node_modules/@firebase/auth-compat/index.ts","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/firebase/app/index.ts","config/firebaseConfig.js","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/env.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/errors.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/common.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/plugins.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/scope.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/finalize.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/proxy.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/immerClass.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/current.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/immer.ts","../node_modules/reselect/src/utils.ts","../node_modules/reselect/src/autotrackMemoize/proxy.ts","../node_modules/reselect/src/weakMapMemoize.ts","../node_modules/reselect/src/createSelectorCreator.ts","../node_modules/reselect/src/createStructuredSelector.ts","../node_modules/redux/src/utils/formatProdErrorMessage.ts","../node_modules/redux/src/utils/symbol-observable.ts","../node_modules/redux/src/utils/actionTypes.ts","../node_modules/redux/src/utils/isPlainObject.ts","../node_modules/redux/src/createStore.ts","../node_modules/redux/src/combineReducers.ts","../node_modules/redux/src/compose.ts","../node_modules/redux-thunk/dist/redux-thunk.mjs","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/createDraftSafeSelector.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/redux/src/utils/isAction.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/getDefaultEnhancers.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/utils.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/exceptions.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/combineSlices.ts","../node_modules/@reduxjs/toolkit/src/formatProdErrorMessage.ts","../node_modules/redux-persist/es/constants.js","../node_modules/redux-persist/es/stateReconciler/autoMergeLevel1.js","../node_modules/redux-persist/es/createPersistoid.js","../node_modules/redux-persist/es/getStoredState.js","../node_modules/redux-persist/es/purgeStoredState.js","../node_modules/redux-persist/es/persistReducer.js","../node_modules/redux-persist/es/persistStore.js","redux/slice/authSlice.js","redux/slice/analyticsSlice.js","redux/slice/dashboardSlice.js","redux/slice/wallSlice.js","redux/rootReducer.js","redux/store.js","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/redux/src/applyMiddleware.ts","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","Services/utils.js","constants/mixpanelEvents.js","Services/mixpanel.js","../node_modules/react-redux/src/utils/react.ts","../node_modules/react-redux/src/components/Context.ts","../node_modules/react-redux/src/utils/useSyncExternalStore.ts","../node_modules/react-redux/src/hooks/useReduxContext.ts","../node_modules/react-redux/src/hooks/useSelector.ts","../node_modules/react-redux/src/utils/react-is.ts","../node_modules/react-redux/src/utils/batch.ts","../node_modules/react-redux/src/utils/Subscription.ts","../node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.ts","../node_modules/react-redux/src/utils/hoistStatics.ts","../node_modules/react-redux/src/components/Provider.tsx","../node_modules/react-redux/src/hooks/useStore.ts","../node_modules/react-redux/src/hooks/useDispatch.ts","../node_modules/react-redux/src/index.ts","../node_modules/react-redux/src/components/connect.tsx","components/Forms/MobileForm/MobileForm.jsx","assets/icons/google.svg","config/firebaseLogin.js","components/Forms/GoogleSignIn/GoogleSignIn.jsx","components/SignUp/SignUpLeftScreen/LeftScreen.jsx","components/SignUp/SignUpRightScreen/RightScreen.jsx","components/SignUp/SignUp.jsx","../node_modules/antd/es/_util/ActionButton.js","../node_modules/rc-util/es/pickAttrs.js","../node_modules/rc-dialog/es/util.js","../node_modules/rc-dialog/es/Dialog/Content/MemoChildren.js","../node_modules/rc-dialog/es/Dialog/Content/Panel.js","../node_modules/rc-dialog/es/Dialog/Content/index.js","../node_modules/rc-dialog/es/Dialog/Mask.js","../node_modules/rc-dialog/es/Dialog/index.js","../node_modules/rc-dialog/es/DialogWrap.js","../node_modules/rc-dialog/es/index.js","../node_modules/antd/es/style/motion/fade.js","../node_modules/antd/es/modal/style/index.js","../node_modules/antd/es/modal/PurePanel.js","../node_modules/antd/es/modal/Modal.js","../node_modules/antd/es/modal/ConfirmDialog.js","../node_modules/antd/es/modal/destroyFns.js","../node_modules/antd/es/modal/confirm.js","../node_modules/antd/es/modal/useModal/HookModal.js","../node_modules/antd/es/modal/useModal/index.js","../node_modules/antd/es/_util/hooks/usePatchElement.js","../node_modules/antd/es/modal/index.js","components/common/Modal/Modal.jsx","components/Forms/InfoForm/InfoForm.jsx","components/InfoScreen/LeftScreen/LeftScreen.jsx","components/InfoScreen/RightScreen/RightScreen.jsx","components/InfoScreen/InfoScreen.jsx","components/MobileInfoScreen/index.jsx","components/ProtectedRoute.js","assets/dashboard/profileActive.svg","assets/icons/link.svg","assets/icons/dashboardInactive.svg","assets/icons/analytics.svg","assets/icons/analyticsInactive.svg","webpack://website/./src/components/Profile/DefaultImg/index.module.css?091e","components/Profile/DefaultImg/index.jsx","components/Builder/Navbar/Navbar.jsx","webpack://website/./src/components/Builder/index.module.css?d376","webpack://website/./src/components/Builder/LeftContainer/index.module.css?e2ad","assets/icons/popupInfo.svg","components/CommonV2/Tooltip/index.jsx","webpack://website/./src/components/Builder/LeftContainer/ProfileAndTheme/index.module.css?f00f","../Advanced Cropper/advanced-cropper/dist/utils/index.js","../Advanced Cropper/advanced-cropper/dist/constants/index.js","../Advanced Cropper/advanced-cropper/dist/types/index.js","../Advanced Cropper/advanced-cropper/dist/state/setCoordinates.js","../Advanced Cropper/advanced-cropper/dist/service/utils.js","../Advanced Cropper/advanced-cropper/dist/service/helpers.js","../Advanced Cropper/advanced-cropper/dist/service/sizeRestrictions.js","../Advanced Cropper/advanced-cropper/dist/state/copyState.js","../Advanced Cropper/advanced-cropper/dist/service/approximateSize.js","../Advanced Cropper/advanced-cropper/dist/service/fitVisibleArea.js","../Advanced Cropper/advanced-cropper/dist/algorithms/moveCoordinatesAlgorithm.js","../Advanced Cropper/advanced-cropper/dist/service/fitCoordinates.js","../Advanced Cropper/advanced-cropper/dist/state/setVisibleArea.js","../Advanced Cropper/advanced-cropper/dist/state/createState.js","../Advanced Cropper/advanced-cropper/dist/state/moveCoordinates.js","../Advanced Cropper/advanced-cropper/dist/algorithms/resizeCoordinatesAlgorithm.js","../Advanced Cropper/advanced-cropper/dist/state/resizeCoordinates.js","../Advanced Cropper/advanced-cropper/dist/state/setBoundary.js","../Advanced Cropper/advanced-cropper/dist/state/transformImage.js","../Advanced Cropper/advanced-cropper/dist/algorithms/rotateImageAlgorithm.js","../Advanced Cropper/advanced-cropper/dist/algorithms/flipImageAlgorithm.js","../Advanced Cropper/advanced-cropper/dist/algorithms/transformImageAlgorithm.js","../Advanced Cropper/advanced-cropper/dist/state/reconcileState.js","../Advanced Cropper/advanced-cropper/dist/service/normalize.js","../Advanced Cropper/advanced-cropper/dist/service/imageTransforms.js","../Advanced Cropper/advanced-cropper/dist/service/interactions.js","../Advanced Cropper/advanced-cropper/dist/defaults/defaultPositionRestrictions.js","../Advanced Cropper/advanced-cropper/dist/defaults/defaultSize.js","../Advanced Cropper/advanced-cropper/dist/defaults/defaultSizeRestrictions.js","../Advanced Cropper/advanced-cropper/dist/defaults/defaultPosition.js","../Advanced Cropper/advanced-cropper/dist/defaults/defaultAreaPositionRestrictions.js","../Advanced Cropper/advanced-cropper/dist/defaults/defaultAreaSizeRestrictions.js","../Advanced Cropper/advanced-cropper/dist/defaults/defaultBoundary.js","../Advanced Cropper/advanced-cropper/dist/defaults/defaultStencilConstraints.js","../Advanced Cropper/advanced-cropper/dist/defaults/index.js","../Advanced Cropper/advanced-cropper/dist/defaults/defaultVisibleArea.js","../Advanced Cropper/advanced-cropper/dist/instance/AbstractCropperInstance.js","../Advanced Cropper/advanced-cropper/dist/animation/index.js","../Advanced Cropper/advanced-cropper/dist/canvas/index.js","../Advanced Cropper/advanced-cropper/dist/boundary/index.js","../Advanced Cropper/advanced-cropper/dist/image/index.js","../node_modules/react-advanced-cropper/src/deprecated/hybridAutoZoom.ts","../node_modules/react-advanced-cropper/src/hooks/useDeprecationWarning.ts","../node_modules/react-advanced-cropper/src/hooks/useUpdateEffect.ts","../node_modules/react-advanced-cropper/src/hooks/useFirstMountState.ts","../node_modules/react-advanced-cropper/src/instance/CropperInstance.ts","../node_modules/react-advanced-cropper/src/hooks/useForceRerender.ts","../node_modules/react-advanced-cropper/src/hooks/useCropperInstance.ts","../node_modules/react-advanced-cropper/src/hooks/usePersistentFunction.ts","../node_modules/react-advanced-cropper/src/hooks/useWindowResize.ts","../node_modules/react-advanced-cropper/src/hooks/useAbstractCropper.ts","../node_modules/react-advanced-cropper/src/hooks/useStateWithCallback.ts","../node_modules/react-advanced-cropper/src/hooks/useCropperImage.ts","../node_modules/react-advanced-cropper/src/hooks/useCropperAutoReconcile.ts","../node_modules/react-advanced-cropper/src/components/service/StretchableBoundary.tsx","../node_modules/react-advanced-cropper/src/components/service/CropperFade.tsx","../node_modules/react-advanced-cropper/src/components/service/CropperWrapper.tsx","../node_modules/react-advanced-cropper/src/service/events.ts","../node_modules/react-advanced-cropper/src/components/service/CropperBackgroundImage.tsx","../node_modules/react-advanced-cropper/src/components/service/CropperCanvas.tsx","../node_modules/react-advanced-cropper/src/components/service/DraggableElement.tsx","../node_modules/react-advanced-cropper/src/components/service/LineWrapper.tsx","../node_modules/react-advanced-cropper/src/components/lines/SimpleLine.tsx","../node_modules/react-advanced-cropper/src/components/service/HandlerWrapper.tsx","../node_modules/react-advanced-cropper/src/components/handlers/SimpleHandler.tsx","../node_modules/react-advanced-cropper/src/components/service/BoundingBox.tsx","../node_modules/react-advanced-cropper/src/components/service/StencilOverlay.tsx","../node_modules/react-advanced-cropper/src/components/service/ArtificialTransition.tsx","../node_modules/react-advanced-cropper/src/hooks/useTransition.ts","../node_modules/react-advanced-cropper/src/components/service/StencilWrapper.tsx","../node_modules/react-advanced-cropper/src/components/service/StencilGrid.tsx","../node_modules/react-advanced-cropper/src/components/stencils/RectangleStencil.tsx","../node_modules/react-advanced-cropper/src/components/service/TransformableImage.tsx","../node_modules/react-advanced-cropper/src/service/cropper.ts","../node_modules/react-advanced-cropper/src/components/service/CropperBackgroundWrapper.tsx","../node_modules/react-advanced-cropper/src/hooks/useRotateImageOptions.ts","../node_modules/react-advanced-cropper/src/hooks/useScaleImageOptions.ts","../node_modules/react-advanced-cropper/src/hooks/useMoveImageOptions.ts","../node_modules/react-advanced-cropper/src/components/AbstractCropper.tsx","../node_modules/react-advanced-cropper/src/service/constants.ts","../node_modules/react-advanced-cropper/src/hooks/useAbstractCropperProps.ts","../Advanced Cropper/advanced-cropper/dist/extensions/stencil-size/index.js","../node_modules/react-advanced-cropper/src/components/croppers/FixedCropper.tsx","../node_modules/react-advanced-cropper/src/components/croppers/Cropper.tsx","../node_modules/react-advanced-cropper/src/components/stencils/CircleStencil.tsx","../node_modules/react-advanced-cropper/src/components/service/CropperSource.tsx","../node_modules/react-advanced-cropper/src/components/helpers/CropperPreviewWrapper.tsx","../node_modules/react-advanced-cropper/src/components/helpers/CropperPreviewBackground.tsx","../node_modules/react-advanced-cropper/src/components/helpers/CropperPreview.tsx","webpack://website/./src/components/Profile/cropper/CropperModal.module.css?6eea","components/Profile/cropper/CropperModal.jsx","webpack://website/./src/components/CommonV2/Modal/index.module.css?b175","components/CommonV2/Modal/index.jsx","customHooks/useImageUploader.js","assets/icons/section-icons/heart.svg","assets/icons/section-icons/heart_filled.svg","assets/icons/section-icons/apps.svg","assets/icons/section-icons/apps_filled.svg","assets/icons/section-icons/affiliate.svg","assets/icons/section-icons/affiliate_filled.svg","assets/icons/section-icons/instagram_reels.svg","assets/icons/section-icons/instagram_reels_filled.svg","assets/leftStoreIcon.svg","assets/icons/section-icons/others.svg","assets/icons/section-icons/others_filled.svg","assets/icons/section-icons/youtube_shorts.svg","assets/icons/section-icons/youtube_shorts_filled.svg","assets/plugins.svg","assets/pluginsFilled.svg","assets/storeFilled.svg","Services/apiServices/dashboardService.js","components/Builder/builderServices/utils.js","components/Builder/LeftContainer/ProfileAndTheme/index.jsx","webpack://website/./src/components/CommonV2/Accordion/index.module.css?b589","assets/icons/headlineInput.svg","webpack://website/./src/components/CommonV2/LinkItem/index.module.css?7b73","components/CommonV2/LinkItem/index.jsx","../node_modules/@babel/runtime/helpers/esm/objectSpread.js","../node_modules/react-sortable-hoc/dist/react-sortable-hoc.esm.js","../node_modules/array-move/index.js","components/CommonV2/Accordion/index.jsx","webpack://website/./src/components/Builder/LeftContainer/LinkInBio/index.module.css?9e1b","assets/sectionDrag.svg","webpack://website/./src/components/Builder/LeftContainer/MagicLink/MagicLinkInput/index.module.css?871b","enums.js","helpers/ScreenSizeChecker.js","components/Builder/LeftContainer/MagicLink/MagicLinkInput/index.jsx","webpack://website/./src/components/Builder/LeftContainer/MagicLink/MagicLinkButton/index.module.css?bddf","components/Builder/LeftContainer/MagicLink/MagicLinkButton/index.jsx","webpack://website/./src/components/Builder/LeftContainer/MagicLink/index.module.css?44da","Services/apiServices/linkService.js","components/Builder/LeftContainer/MagicLink/index.jsx","components/Builder/LeftContainer/LinkInBio/index.jsx","webpack://website/./src/components/Builder/LeftContainer/Posts/index.module.css?fc71","components/Builder/LeftContainer/Posts/index.jsx","webpack://website/./src/components/Builder/LeftContainer/Collections/index.module.css?cef3","webpack://website/./src/components/CommonV2/Loader/index.module.css?71a9","components/CommonV2/Loader/index.jsx","components/Builder/LeftContainer/Collections/index.jsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","webpack://website/./src/components/Builder/LeftContainer/Plugins/index.module.css?ea60","components/Builder/LeftContainer/Plugins/inbox/index.jsx","components/Builder/LeftContainer/Plugins/index.jsx","webpack://website/./src/components/Builder/LeftContainer/StoreLinkInBioNavBar/index.module.css?abc0","components/Builder/LeftContainer/StoreLinkInBioNavBar/index.jsx","components/Builder/LeftContainer/index.jsx","webpack://website/./src/components/Builder/RightContainer/index.module.css?f08b","webpack://website/./src/components/Builder/RightContainer/Preview/index.module.css?a279","webpack://website/./src/components/Builder/RightContainer/Preview/LinkInBio/Headers/Sublime/index.module.css?d413","components/Builder/RightContainer/Preview/LinkInBio/Headers/Sublime/index.jsx","webpack://website/./src/components/Builder/RightContainer/Preview/LinkInBio/Headers/Matrix/index.module.css?6d66","components/Builder/RightContainer/Preview/LinkInBio/Headers/Matrix/index.jsx","webpack://website/./src/components/Builder/RightContainer/Preview/LinkInBio/Headers/Breeze/index.module.css?adc0","components/Builder/RightContainer/Preview/LinkInBio/Headers/Breeze/index.jsx","webpack://website/./src/components/Builder/RightContainer/Preview/LinkInBio/index.module.css?8ff9","assets/wall-icons/arrow.svg","assets/wall-icons/black-arrow.svg","webpack://website/./src/components/Builder/RightContainer/Preview/LinkInBio/LinksComponents/SocialMediaLinks/index.module.css?f2ad","components/Builder/RightContainer/Preview/LinkInBio/LinksComponents/SocialMediaLinks/index.jsx","webpack://website/./src/components/Builder/RightContainer/Preview/LinkInBio/LinksComponents/ShortsAndReelsLinks/index.module.css?6500","components/Builder/RightContainer/Preview/LinkInBio/LinksComponents/ShortsAndReelsLinks/index.jsx","webpack://website/./src/components/Builder/RightContainer/Preview/LinkInBio/LinksComponents/AppsLinks/index.module.css?4896","assets/wall-icons/star.svg","components/Builder/RightContainer/Preview/LinkInBio/LinksComponents/AppsLinks/index.jsx","components/Builder/RightContainer/Preview/LinkInBio/index.jsx","webpack://website/./src/components/Builder/RightContainer/Preview/Store/index.module.css?ae18","webpack://website/./src/components/Builder/RightContainer/Preview/Store/Collections/index.module.css?0f86","webpack://website/./src/components/Builder/RightContainer/Preview/Store/ImageRenderer/index.module.css?c919","components/Builder/RightContainer/Preview/Store/ImageRenderer/index.jsx","components/Builder/RightContainer/Preview/Store/Collections/index.jsx","webpack://website/./src/components/Builder/RightContainer/Preview/Store/Reel/index.module.css?413a","components/Builder/RightContainer/Preview/Store/Reel/index.jsx","webpack://website/./src/components/Builder/RightContainer/Preview/Store/SingleReel/index.module.css?5be6","components/Builder/RightContainer/Preview/Store/SingleReel/index.jsx","components/Builder/RightContainer/Preview/Store/index.jsx","webpack://website/./src/components/Builder/RightContainer/Preview/BottomNav/index.module.css?5f2f","components/Builder/RightContainer/Preview/BottomNav/index.jsx","webpack://website/./src/components/Builder/RightContainer/Preview/Store/CollectionPage/index.module.css?0e56","webpack://website/./src/components/Builder/RightContainer/Preview/Store/Product/index.module.css?8a4f","components/Builder/RightContainer/Preview/utils.js","components/Builder/RightContainer/Preview/Store/Product/index.jsx","components/Builder/RightContainer/Preview/Store/CollectionPage/index.jsx","components/Builder/RightContainer/Preview/index.jsx","Services/apiServices/userService.js","Services/apiServices/publishService.js","components/Builder/RightContainer/index.jsx","Services/apiServices/themesService.js","Services/apiServices/pluginsService.js","components/Builder/index.jsx","components/Builder/MobileDashboard.jsx","components/Analytics/Summary/index.jsx","../node_modules/rc-select/es/hooks/useBaseProps.js","../node_modules/rc-select/es/hooks/useLock.js","../node_modules/rc-overflow/es/Item.js","../node_modules/rc-overflow/es/hooks/useEffectState.js","../node_modules/rc-overflow/es/hooks/channelUpdate.js","../node_modules/rc-overflow/es/RawItem.js","../node_modules/rc-overflow/es/Overflow.js","../node_modules/rc-overflow/es/index.js","../node_modules/rc-select/es/TransBtn.js","../node_modules/rc-select/es/Selector/Input.js","../node_modules/rc-select/es/utils/commonUtil.js","../node_modules/rc-select/es/Selector/MultipleSelector.js","../node_modules/rc-select/es/hooks/useLayoutEffect.js","../node_modules/rc-select/es/Selector/SingleSelector.js","../node_modules/rc-select/es/Selector/index.js","../node_modules/rc-select/es/utils/keyUtil.js","../node_modules/rc-select/es/SelectTrigger.js","../node_modules/rc-select/es/utils/valueUtil.js","../node_modules/rc-select/es/BaseSelect.js","../node_modules/rc-select/es/hooks/useDelayReset.js","../node_modules/rc-select/es/hooks/useSelectTriggerControl.js","../node_modules/rc-select/es/hooks/useFilterOptions.js","../node_modules/rc-select/es/hooks/useId.js","../node_modules/rc-select/es/utils/legacyUtil.js","../node_modules/rc-select/es/hooks/useRefFunc.js","../node_modules/rc-select/es/OptGroup.js","../node_modules/rc-select/es/Option.js","../node_modules/rc-virtual-list/es/Filler.js","../node_modules/rc-virtual-list/es/ScrollBar.js","../node_modules/rc-virtual-list/es/Item.js","../node_modules/rc-virtual-list/es/utils/CacheMap.js","../node_modules/rc-virtual-list/es/hooks/useDiffItem.js","../node_modules/rc-virtual-list/es/utils/algorithmUtil.js","../node_modules/rc-virtual-list/es/utils/isFirefox.js","../node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","../node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","../node_modules/rc-virtual-list/es/List.js","../node_modules/rc-virtual-list/es/hooks/useHeights.js","../node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","../node_modules/rc-virtual-list/es/hooks/useScrollTo.js","../node_modules/rc-virtual-list/es/hooks/useChildren.js","../node_modules/rc-virtual-list/es/index.js","../node_modules/rc-select/es/SelectContext.js","../node_modules/rc-select/es/OptionList.js","../node_modules/rc-select/es/utils/platformUtil.js","../node_modules/rc-select/es/Select.js","../node_modules/rc-select/es/hooks/useOptions.js","../node_modules/rc-select/es/hooks/useCache.js","../node_modules/rc-select/es/index.js","../node_modules/antd/es/_util/PurePanel.js","../node_modules/antd/es/empty/empty.js","../node_modules/antd/es/empty/simple.js","../node_modules/antd/es/empty/style/index.js","../node_modules/antd/es/empty/index.js","../node_modules/antd/es/config-provider/defaultRenderEmpty.js","../node_modules/antd/es/style/motion/slide.js","../node_modules/antd/es/style/motion/move.js","../node_modules/antd/es/select/style/dropdown.js","../node_modules/antd/es/select/style/multiple.js","../node_modules/antd/es/select/style/single.js","../node_modules/antd/es/select/style/index.js","../node_modules/antd/es/select/useBuiltinPlacements.js","../node_modules/@ant-design/icons-svg/es/asn/CheckOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DownOutlined.js","../node_modules/@ant-design/icons/es/icons/DownOutlined.js","../node_modules/antd/es/select/index.js","../node_modules/antd/es/select/useShowArrow.js","../node_modules/antd/es/select/utils/iconUtil.js","../node_modules/rc-table/es/constant.js","../node_modules/@rc-component/context/es/context.js","../node_modules/@rc-component/context/es/Immutable.js","../node_modules/rc-table/es/context/TableContext.js","../node_modules/rc-table/es/hooks/useRenderTimes.js","../node_modules/rc-table/es/context/PerfContext.js","../node_modules/rc-table/es/utils/valueUtil.js","../node_modules/rc-table/es/Cell/useCellRender.js","../node_modules/rc-table/es/Cell/index.js","../node_modules/rc-table/es/Cell/useHoverState.js","../node_modules/rc-table/es/utils/fixUtil.js","../node_modules/rc-table/es/Footer/SummaryContext.js","../node_modules/rc-table/es/Footer/Row.js","../node_modules/rc-table/es/Footer/Summary.js","../node_modules/rc-table/es/Footer/Cell.js","../node_modules/rc-table/es/Footer/index.js","../node_modules/rc-util/es/Dom/styleChecker.js","../node_modules/rc-table/es/hooks/useFlattenRecords.js","../node_modules/rc-table/es/Body/ExpandedRow.js","../node_modules/rc-table/es/Body/BodyRow.js","../node_modules/rc-table/es/Body/MeasureCell.js","../node_modules/rc-table/es/Body/MeasureRow.js","../node_modules/rc-table/es/Body/index.js","../node_modules/rc-table/es/utils/legacyUtil.js","../node_modules/rc-table/es/ColGroup.js","../node_modules/rc-table/es/FixedHolder/index.js","../node_modules/rc-table/es/Header/HeaderRow.js","../node_modules/rc-table/es/Header/Header.js","../node_modules/rc-table/es/hooks/useColumns.js","../node_modules/rc-table/es/utils/expandUtil.js","../node_modules/rc-table/es/hooks/useExpand.js","../node_modules/rc-table/es/hooks/useFrame.js","../node_modules/rc-table/es/hooks/useSticky.js","../node_modules/rc-table/es/hooks/useStickyOffsets.js","../node_modules/rc-table/es/Panel/index.js","../node_modules/rc-util/es/Dom/addEventListener.js","../node_modules/rc-util/es/Dom/css.js","../node_modules/rc-table/es/stickyScrollBar.js","../node_modules/rc-table/es/sugar/Column.js","../node_modules/rc-table/es/sugar/ColumnGroup.js","../node_modules/rc-table/es/Table.js","../node_modules/rc-table/es/hooks/useHover.js","../node_modules/rc-table/es/hooks/useFixedInfo.js","../node_modules/antd/es/table/Column.js","../node_modules/antd/es/table/ColumnGroup.js","../node_modules/antd/es/_util/getScroll.js","../node_modules/antd/es/_util/scrollTo.js","../node_modules/antd/es/_util/easings.js","../node_modules/antd/es/_util/hooks/useForceUpdate.js","../node_modules/antd/es/grid/hooks/useBreakpoint.js","../node_modules/@ant-design/icons-svg/es/asn/DoubleLeftOutlined.js","../node_modules/@ant-design/icons/es/icons/DoubleLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DoubleRightOutlined.js","../node_modules/@ant-design/icons/es/icons/DoubleRightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","../node_modules/@ant-design/icons/es/icons/LeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","../node_modules/@ant-design/icons/es/icons/RightOutlined.js","../node_modules/rc-pagination/es/KeyCode.js","../node_modules/rc-pagination/es/Options.js","../node_modules/rc-pagination/es/Pager.js","../node_modules/rc-pagination/es/Pagination.js","../node_modules/rc-pagination/es/locale/zh_CN.js","../node_modules/antd/es/pagination/Select.js","../node_modules/antd/es/pagination/style/index.js","../node_modules/antd/es/pagination/Pagination.js","../node_modules/antd/es/pagination/index.js","../node_modules/throttle-debounce/debounce.js","../node_modules/throttle-debounce/throttle.js","../node_modules/antd/es/spin/style/index.js","../node_modules/antd/es/spin/index.js","../node_modules/antd/es/table/ExpandIcon.js","../node_modules/antd/es/table/RcTable.js","../node_modules/antd/es/table/util.js","../node_modules/@ant-design/icons-svg/es/asn/FilterFilled.js","../node_modules/@ant-design/icons/es/icons/FilterFilled.js","../node_modules/rc-checkbox/es/index.js","../node_modules/antd/es/checkbox/style/index.js","../node_modules/antd/es/checkbox/Group.js","../node_modules/antd/es/checkbox/Checkbox.js","../node_modules/antd/es/checkbox/index.js","../node_modules/rc-util/es/Portal.js","../node_modules/rc-trigger/es/utils/alignUtil.js","../node_modules/rc-trigger/es/utils/legacyUtil.js","../node_modules/rc-trigger/es/Popup/Mask.js","../node_modules/src/propertyUtils.js","../node_modules/src/utils.js","../node_modules/src/getOffsetParent.js","../node_modules/src/isAncestorFixed.js","../node_modules/src/getVisibleRectForElement.js","../node_modules/src/getRegion.js","../node_modules/src/getAlignOffset.js","../node_modules/src/getElFuturePos.js","../node_modules/src/align/align.js","../node_modules/src/adjustForViewport.js","../node_modules/src/align/alignElement.js","../node_modules/rc-align/es/util.js","../node_modules/rc-align/es/Align.js","../node_modules/rc-align/es/hooks/useBuffer.js","../node_modules/src/align/alignPoint.js","../node_modules/rc-align/es/index.js","../node_modules/rc-trigger/es/Popup/useVisibleStatus.js","../node_modules/rc-trigger/es/Popup/PopupInner.js","../node_modules/rc-trigger/es/Popup/useStretchStyle.js","../node_modules/rc-trigger/es/Popup/MobilePopupInner.js","../node_modules/rc-trigger/es/Popup/index.js","../node_modules/rc-trigger/es/context.js","../node_modules/rc-trigger/es/index.js","../node_modules/rc-dropdown/es/placements.js","../node_modules/rc-util/es/Dom/focus.js","../node_modules/rc-dropdown/es/hooks/useAccessibility.js","../node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-dropdown/es/index.js","../node_modules/rc-menu/es/context/IdContext.js","../node_modules/rc-menu/es/context/MenuContext.js","../node_modules/rc-menu/es/context/PathContext.js","../node_modules/rc-menu/es/context/PrivateContext.js","../node_modules/rc-menu/es/hooks/useAccessibility.js","../node_modules/rc-menu/es/hooks/useKeyRecords.js","../node_modules/rc-menu/es/utils/timeUtil.js","../node_modules/rc-menu/es/hooks/useMemoCallback.js","../node_modules/rc-menu/es/hooks/useUUID.js","../node_modules/rc-menu/es/hooks/useActive.js","../node_modules/rc-menu/es/hooks/useDirectionStyle.js","../node_modules/rc-menu/es/Icon.js","../node_modules/rc-menu/es/utils/warnUtil.js","../node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-menu/es/SubMenu/SubMenuList.js","../node_modules/rc-menu/es/utils/nodeUtil.js","../node_modules/rc-menu/es/placements.js","../node_modules/rc-menu/es/utils/motionUtil.js","../node_modules/rc-menu/es/SubMenu/PopupTrigger.js","../node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","../node_modules/rc-menu/es/SubMenu/index.js","../node_modules/rc-menu/es/Menu.js","../node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-menu/es/Divider.js","../node_modules/rc-menu/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","../node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","../node_modules/antd/es/menu/style/horizontal.js","../node_modules/antd/es/menu/style/rtl.js","../node_modules/antd/es/menu/style/theme.js","../node_modules/antd/es/menu/style/vertical.js","../node_modules/antd/es/menu/style/index.js","../node_modules/antd/es/menu/OverrideContext.js","../node_modules/antd/es/menu/MenuDivider.js","../node_modules/antd/es/layout/Sider.js","../node_modules/antd/es/menu/MenuContext.js","../node_modules/antd/es/menu/MenuItem.js","../node_modules/antd/es/menu/SubMenu.js","../node_modules/antd/es/menu/hooks/useItems.js","../node_modules/antd/es/menu/menu.js","../node_modules/antd/es/menu/index.js","../node_modules/antd/es/space/Item.js","../node_modules/antd/es/space/index.js","../node_modules/antd/es/dropdown/style/status.js","../node_modules/antd/es/dropdown/style/index.js","../node_modules/antd/es/dropdown/dropdown-button.js","../node_modules/antd/es/dropdown/dropdown.js","../node_modules/antd/es/dropdown/index.js","../node_modules/antd/es/radio/context.js","../node_modules/antd/es/radio/style/index.js","../node_modules/antd/es/radio/radio.js","../node_modules/antd/es/radio/group.js","../node_modules/antd/es/_util/getDataOrAriaProps.js","../node_modules/antd/es/radio/radioButton.js","../node_modules/antd/es/radio/index.js","../node_modules/rc-tree/es/contextTypes.js","../node_modules/rc-tree/es/Indent.js","../node_modules/rc-tree/es/utils/treeUtil.js","../node_modules/rc-tree/es/util.js","../node_modules/rc-tree/es/TreeNode.js","../node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../node_modules/rc-tree/es/MotionTreeNode.js","../node_modules/rc-tree/es/utils/diffUtil.js","../node_modules/rc-tree/es/NodeList.js","../node_modules/rc-tree/es/utils/conductUtil.js","../node_modules/rc-tree/es/Tree.js","../node_modules/rc-tree/es/DropIndicator.js","../node_modules/rc-tree/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/HolderOutlined.js","../node_modules/@ant-design/icons/es/icons/HolderOutlined.js","../node_modules/antd/es/tree/style/index.js","../node_modules/antd/es/tree/utils/dropIndicator.js","../node_modules/@ant-design/icons-svg/es/asn/CaretDownFilled.js","../node_modules/@ant-design/icons/es/icons/CaretDownFilled.js","../node_modules/@ant-design/icons-svg/es/asn/FileOutlined.js","../node_modules/@ant-design/icons/es/icons/FileOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/MinusSquareOutlined.js","../node_modules/@ant-design/icons/es/icons/MinusSquareOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusSquareOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusSquareOutlined.js","../node_modules/antd/es/tree/utils/iconUtil.js","../node_modules/antd/es/tree/Tree.js","../node_modules/@ant-design/icons-svg/es/asn/FolderOpenOutlined.js","../node_modules/@ant-design/icons/es/icons/FolderOpenOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FolderOutlined.js","../node_modules/@ant-design/icons/es/icons/FolderOutlined.js","../node_modules/antd/es/tree/utils/dictUtil.js","../node_modules/antd/es/tree/DirectoryTree.js","../node_modules/antd/es/tree/index.js","../node_modules/antd/es/table/hooks/useFilter/FilterSearch.js","../node_modules/antd/es/table/hooks/useFilter/FilterWrapper.js","../node_modules/antd/es/table/hooks/useFilter/FilterDropdown.js","../node_modules/antd/es/_util/hooks/useSyncState.js","../node_modules/antd/es/table/hooks/useFilter/index.js","../node_modules/antd/es/_util/extendsObject.js","../node_modules/antd/es/table/hooks/usePagination.js","../node_modules/antd/es/table/hooks/useSelection.js","../node_modules/@ant-design/icons-svg/es/asn/CaretDownOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretDownOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CaretUpOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretUpOutlined.js","../node_modules/antd/es/table/hooks/useSorter.js","../node_modules/antd/es/table/hooks/useTitleColumns.js","../node_modules/antd/es/table/style/bordered.js","../node_modules/antd/es/table/style/ellipsis.js","../node_modules/antd/es/table/style/empty.js","../node_modules/antd/es/style/operationUnit.js","../node_modules/antd/es/table/style/expand.js","../node_modules/antd/es/table/style/filter.js","../node_modules/antd/es/table/style/fixed.js","../node_modules/antd/es/table/style/pagination.js","../node_modules/antd/es/table/style/radius.js","../node_modules/antd/es/table/style/rtl.js","../node_modules/antd/es/table/style/selection.js","../node_modules/antd/es/table/style/size.js","../node_modules/antd/es/table/style/sorter.js","../node_modules/antd/es/table/style/sticky.js","../node_modules/antd/es/table/style/summary.js","../node_modules/antd/es/table/style/index.js","../node_modules/antd/es/table/InternalTable.js","../node_modules/antd/es/table/hooks/useLazyKVMap.js","../node_modules/antd/es/table/Table.js","../node_modules/antd/es/table/index.js","components/Analytics/TopLinks/index.jsx","components/Analytics/TopLocations/index.jsx","components/Analytics/DeviceAnalytics/index.jsx","components/Analytics/GameAnalytics/index.jsx","components/Analytics/index.jsx","webpack://website/./src/components/Profile/index.module.css?195d","webpack://website/./src/components/Profile/DropDown/index.module.css?8ca4","components/Profile/DropDown/index.jsx","components/Profile/utils.js","components/Profile/index.jsx","components/AfterLoginRoute.js","components/Wall3/shortUrlComponent.jsx","../node_modules/redux-persist/es/integration/react.js","webpack://website/./src/components/EmailVerification/EmailVerification.module.css?5b0a","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseCircleOutlined.js","components/EmailVerification/EmailVerification.jsx","webpack://website/./src/components/AppRedirect/AppRedirect.module.css?7aed","components/AppRedirect/AppRedirect.jsx","components/Utils/instaAuth.jsx","webpack://website/./src/components/Wall3/Store/CollectionPage/index.module.css?2d1d","webpack://website/./src/components/Wall3/Store/Product/index.module.css?256a","components/Wall3/Store/Product/index.jsx","webpack://website/./src/components/Wall3/Store/ShareBottomSheet/index.module.css?ecb2","components/common/ModalV2/Modal.jsx","components/Wall3/Store/ShareBottomSheet/index.jsx","Services/apiServices/wallService.js","webpack://website/./src/components/Wall3/NotFoundScreen/index.module.css?e2c8","components/Wall3/NotFoundScreen/index.jsx","components/Wall3/Store/CollectionPage/index.jsx","webpack://website/./src/components/Wall3/Store/PostPage/index.module.css?7959","webpack://website/./src/components/Wall3/Store/PostPage/ProductsBottomSheet/index.module.css?1d81","webpack://website/./src/components/Wall3/Store/PostPage/Product/index.module.css?e2b8","components/Wall3/Store/PostPage/Product/index.jsx","components/Wall3/Store/PostPage/ProductsBottomSheet/index.jsx","components/Wall3/Store/PostPage/index.jsx","webpack://website/./src/components/MobileBuilder/MobileNavbar/index.module.css?8af2","components/MobileBuilder/MobileNavbar/index.jsx","webpack://website/./src/components/MobileBuilder/Collections/CollectionsLinkTabs/index.module.css?ad5a","components/MobileBuilder/Collections/CollectionsLinkTabs/index.jsx","webpack://website/./src/components/MobileBuilder/index.module.css?3360","webpack://website/./src/components/MobileBuilder/PostsSection/index.module.css?cc59","components/MobileBuilder/PostsSection/index.jsx","webpack://website/./src/components/MobileBuilder/Collections/index.module.css?bb93","webpack://website/./src/components/MobileBuilder/MagicLinkInput/index.module.css?b77b","components/MobileBuilder/MagicLinkInput/index.jsx","webpack://website/./src/components/MobileBuilder/MagicLink/index.module.css?f560","components/MobileBuilder/MagicLink/index.jsx","webpack://website/./src/components/MobileBuilder/Collections/CollectionContainer/index.module.css?dbe9","components/MobileBuilder/Collections/CollectionContainer/index.jsx","webpack://website/./src/components/MobileBuilder/Collections/ProductsScreen/Product/index.module.css?5543","components/MobileBuilder/utils.js","components/MobileBuilder/Collections/ProductsScreen/Product/index.jsx","webpack://website/./src/components/MobileBuilder/Collections/ProductsScreen/index.module.css?523c","webpack://website/./src/components/MobileBuilder/DeleteSectionPopup/index.module.css?2df6","components/MobileBuilder/DeleteSectionPopup/index.jsx","components/MobileBuilder/Collections/ProductsScreen/index.jsx","webpack://website/./src/components/MobileBuilder/AddSection/index.module.css?371d","components/MobileBuilder/AddSection/index.jsx","components/MobileBuilder/Collections/index.jsx","webpack://website/./src/components/MobileBuilder/LinksInBio/LinksContainer/index.module.css?6b22","components/MobileBuilder/LinksInBio/LinksContainer/index.jsx","webpack://website/./src/components/MobileBuilder/LinksInBio/SortableList/index.module.css?cd61","components/MobileBuilder/LinksInBio/SortableList/index.jsx","webpack://website/./src/components/MobileBuilder/LinksInBio/index.module.css?07d4","components/MobileBuilder/LinksInBio/index.jsx","webpack://website/./src/components/MobileBuilder/LinksInBio/LinksScreen/LinkContainer/index.module.css?21a2","components/MobileBuilder/LinksInBio/LinksScreen/LinkContainer/index.jsx","webpack://website/./src/components/MobileBuilder/LinksInBio/LinksScreen/index.module.css?a23a","components/MobileBuilder/LinksInBio/LinksScreen/index.jsx","webpack://website/./src/components/CommonV2/MobileLoader/index.module.css?92a6","components/CommonV2/MobileLoader/index.jsx","components/MobileBuilder/index.jsx","webpack://website/./src/components/Wall3/index.module.css?dd87","webpack://website/./src/components/Wall3/LinkInBio/Headers/Sublime/index.module.css?4815","components/Wall3/LinkInBio/Headers/Sublime/index.jsx","webpack://website/./src/components/Wall3/LinkInBio/Headers/Matrix/index.module.css?ebf4","components/Wall3/LinkInBio/Headers/Matrix/index.jsx","webpack://website/./src/components/Wall3/LinkInBio/Headers/Breeze/index.module.css?d867","components/Wall3/LinkInBio/Headers/Breeze/index.jsx","webpack://website/./src/components/Wall3/LinkInBio/index.module.css?ee48","webpack://website/./src/components/Wall3/LinkInBio/LinksComponents/SocialMediaLinks/index.module.css?3644","components/Wall3/LinkInBio/LinksComponents/SocialMediaLinks/index.jsx","webpack://website/./src/components/Wall3/LinkInBio/LinksComponents/ShortsAndReelsLinks/index.module.css?5613","components/Wall3/LinkInBio/LinksComponents/ShortsAndReelsLinks/index.jsx","webpack://website/./src/components/Wall3/LinkInBio/LinksComponents/AppsLinks/index.module.css?daa9","components/Wall3/LinkInBio/LinksComponents/AppsLinks/index.jsx","components/Wall3/LinkInBio/index.jsx","webpack://website/./src/components/Wall3/Store/index.module.css?c245","webpack://website/./src/components/Wall3/Store/DealsOfTheDay/index.module.css?d54b","components/Wall3/Store/DealsOfTheDay/index.jsx","webpack://website/./src/components/Wall3/Store/Platform/index.module.css?7dfc","webpack://website/./src/components/Wall3/Store/ProductsGrid/index.module.css?5cc7","components/Wall3/Store/ProductsGrid/index.jsx","components/Wall3/Store/Platform/index.jsx","webpack://website/./src/components/Wall3/Store/Categories/index.module.css?ec7f","components/Wall3/Store/Categories/index.jsx","webpack://website/./src/components/Wall3/Store/Collections/index.module.css?95d6","webpack://website/./src/components/Wall3/Store/CollectionGrid/index.module.css?edf8","components/Wall3/Store/CollectionGrid/index.jsx","components/Wall3/Store/Collections/index.jsx","webpack://website/./src/components/Wall3/Store/Reel/index.module.css?150c","components/Wall3/Store/Reel/index.jsx","webpack://website/./src/components/Wall3/Store/SearchBar/index.module.css?bfc7","components/Wall3/Store/SearchBar/index.jsx","webpack://website/./src/components/Wall3/Store/filters/index.module.css?539a","components/Wall3/Store/filters/index.jsx","webpack://website/./src/components/Wall3/Store/SingleReel/index.module.css?7c98","components/Wall3/Store/SingleReel/index.jsx","components/Wall3/Store/index.jsx","webpack://website/./src/components/Wall3/BottomNav/index.module.css?a1ae","components/Wall3/BottomNav/index.jsx","components/Wall3/index.jsx","components/MobileSignUp/index.jsx","App.js","index.js"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\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 && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\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","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery 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 `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\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/** Used for built-in method references. */\nvar objectProto = Object.prototype;\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 objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\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 && (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 && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or 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 a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\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// 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\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\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// 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\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\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// 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\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\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// 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\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","var eq = require('./eq');\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\nmodule.exports = assocIndexOf;\n","var defineProperty = require('./_defineProperty');\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\nmodule.exports = baseAssignValue;\n","var createBaseFor = require('./_createBaseFor');\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\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\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\nmodule.exports = baseGetTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nmodule.exports = baseHas;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\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\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\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 for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\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 if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\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\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\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/** 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/**\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\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` 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 baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\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\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\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\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\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 cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\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\nmodule.exports = createBaseFor;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\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\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\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\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\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\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\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\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","var nativeCreate = require('./_nativeCreate');\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\nmodule.exports = hashClear;\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\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\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\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\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\nmodule.exports = isIndex;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\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\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\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 * 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\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\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\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\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\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\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\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\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\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\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\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\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\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\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\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\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\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\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\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\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\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\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\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\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/**\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\nmodule.exports = objectToString;\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\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\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\nmodule.exports = stackClear;\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\nmodule.exports = stackDelete;\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\nmodule.exports = stackGet;\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\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\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\nmodule.exports = stackSet;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\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\nmodule.exports = toSource;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\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\nmodule.exports = eq;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\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\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\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\nmodule.exports = isArguments;\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\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\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\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\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/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\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\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\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\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\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\nmodule.exports = isLength;\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\nmodule.exports = isObject;\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\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or 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 a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\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\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\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 * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nmodule.exports = mapKeys;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nmodule.exports = snakeCase;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\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 = stubFalse;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","'use strict';\n\nvar Config = {\n DEBUG: false,\n LIB_VERSION: '2.47.0'\n};\n\n// since es6 imports are static and we run unit tests from the console, window won't be defined when importing this file\nvar window$1;\nif (typeof(window) === 'undefined') {\n var loc = {\n hostname: ''\n };\n window$1 = {\n navigator: { userAgent: '' },\n document: {\n location: loc,\n referrer: ''\n },\n screen: { width: 0, height: 0 },\n location: loc\n };\n} else {\n window$1 = window;\n}\n\n/*\n * Saved references to long variable names, so that closure compiler can\n * minimize file size.\n */\n\nvar ArrayProto = Array.prototype;\nvar FuncProto = Function.prototype;\nvar ObjProto = Object.prototype;\nvar slice = ArrayProto.slice;\nvar toString = ObjProto.toString;\nvar hasOwnProperty = ObjProto.hasOwnProperty;\nvar windowConsole = window$1.console;\nvar navigator = window$1.navigator;\nvar document$1 = window$1.document;\nvar windowOpera = window$1.opera;\nvar screen = window$1.screen;\nvar userAgent = navigator.userAgent;\nvar nativeBind = FuncProto.bind;\nvar nativeForEach = ArrayProto.forEach;\nvar nativeIndexOf = ArrayProto.indexOf;\nvar nativeMap = ArrayProto.map;\nvar nativeIsArray = Array.isArray;\nvar breaker = {};\nvar _ = {\n trim: function(str) {\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n }\n};\n\n// Console override\nvar console = {\n /** @type {function(...*)} */\n log: function() {\n if (Config.DEBUG && !_.isUndefined(windowConsole) && windowConsole) {\n try {\n windowConsole.log.apply(windowConsole, arguments);\n } catch (err) {\n _.each(arguments, function(arg) {\n windowConsole.log(arg);\n });\n }\n }\n },\n /** @type {function(...*)} */\n warn: function() {\n if (Config.DEBUG && !_.isUndefined(windowConsole) && windowConsole) {\n var args = ['Mixpanel warning:'].concat(_.toArray(arguments));\n try {\n windowConsole.warn.apply(windowConsole, args);\n } catch (err) {\n _.each(args, function(arg) {\n windowConsole.warn(arg);\n });\n }\n }\n },\n /** @type {function(...*)} */\n error: function() {\n if (Config.DEBUG && !_.isUndefined(windowConsole) && windowConsole) {\n var args = ['Mixpanel error:'].concat(_.toArray(arguments));\n try {\n windowConsole.error.apply(windowConsole, args);\n } catch (err) {\n _.each(args, function(arg) {\n windowConsole.error(arg);\n });\n }\n }\n },\n /** @type {function(...*)} */\n critical: function() {\n if (!_.isUndefined(windowConsole) && windowConsole) {\n var args = ['Mixpanel error:'].concat(_.toArray(arguments));\n try {\n windowConsole.error.apply(windowConsole, args);\n } catch (err) {\n _.each(args, function(arg) {\n windowConsole.error(arg);\n });\n }\n }\n }\n};\n\nvar log_func_with_prefix = function(func, prefix) {\n return function() {\n arguments[0] = '[' + prefix + '] ' + arguments[0];\n return func.apply(console, arguments);\n };\n};\nvar console_with_prefix = function(prefix) {\n return {\n log: log_func_with_prefix(console.log, prefix),\n error: log_func_with_prefix(console.error, prefix),\n critical: log_func_with_prefix(console.critical, prefix)\n };\n};\n\n\n// UNDERSCORE\n// Embed part of the Underscore Library\n_.bind = function(func, context) {\n var args, bound;\n if (nativeBind && func.bind === nativeBind) {\n return nativeBind.apply(func, slice.call(arguments, 1));\n }\n if (!_.isFunction(func)) {\n throw new TypeError();\n }\n args = slice.call(arguments, 2);\n bound = function() {\n if (!(this instanceof bound)) {\n return func.apply(context, args.concat(slice.call(arguments)));\n }\n var ctor = {};\n ctor.prototype = func.prototype;\n var self = new ctor();\n ctor.prototype = null;\n var result = func.apply(self, args.concat(slice.call(arguments)));\n if (Object(result) === result) {\n return result;\n }\n return self;\n };\n return bound;\n};\n\n/**\n * @param {*=} obj\n * @param {function(...*)=} iterator\n * @param {Object=} context\n */\n_.each = function(obj, iterator, context) {\n if (obj === null || obj === undefined) {\n return;\n }\n if (nativeForEach && obj.forEach === nativeForEach) {\n obj.forEach(iterator, context);\n } else if (obj.length === +obj.length) {\n for (var i = 0, l = obj.length; i < l; i++) {\n if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) {\n return;\n }\n }\n } else {\n for (var key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n if (iterator.call(context, obj[key], key, obj) === breaker) {\n return;\n }\n }\n }\n }\n};\n\n_.extend = function(obj) {\n _.each(slice.call(arguments, 1), function(source) {\n for (var prop in source) {\n if (source[prop] !== void 0) {\n obj[prop] = source[prop];\n }\n }\n });\n return obj;\n};\n\n_.isArray = nativeIsArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n};\n\n// from a comment on http://dbj.org/dbj/?p=286\n// fails on only one very rare and deliberate custom object:\n// var bomb = { toString : undefined, valueOf: function(o) { return \"function BOMBA!\"; }};\n_.isFunction = function(f) {\n try {\n return /^\\s*\\bfunction\\b/.test(f);\n } catch (x) {\n return false;\n }\n};\n\n_.isArguments = function(obj) {\n return !!(obj && hasOwnProperty.call(obj, 'callee'));\n};\n\n_.toArray = function(iterable) {\n if (!iterable) {\n return [];\n }\n if (iterable.toArray) {\n return iterable.toArray();\n }\n if (_.isArray(iterable)) {\n return slice.call(iterable);\n }\n if (_.isArguments(iterable)) {\n return slice.call(iterable);\n }\n return _.values(iterable);\n};\n\n_.map = function(arr, callback, context) {\n if (nativeMap && arr.map === nativeMap) {\n return arr.map(callback, context);\n } else {\n var results = [];\n _.each(arr, function(item) {\n results.push(callback.call(context, item));\n });\n return results;\n }\n};\n\n_.keys = function(obj) {\n var results = [];\n if (obj === null) {\n return results;\n }\n _.each(obj, function(value, key) {\n results[results.length] = key;\n });\n return results;\n};\n\n_.values = function(obj) {\n var results = [];\n if (obj === null) {\n return results;\n }\n _.each(obj, function(value) {\n results[results.length] = value;\n });\n return results;\n};\n\n_.include = function(obj, target) {\n var found = false;\n if (obj === null) {\n return found;\n }\n if (nativeIndexOf && obj.indexOf === nativeIndexOf) {\n return obj.indexOf(target) != -1;\n }\n _.each(obj, function(value) {\n if (found || (found = (value === target))) {\n return breaker;\n }\n });\n return found;\n};\n\n_.includes = function(str, needle) {\n return str.indexOf(needle) !== -1;\n};\n\n// Underscore Addons\n_.inherit = function(subclass, superclass) {\n subclass.prototype = new superclass();\n subclass.prototype.constructor = subclass;\n subclass.superclass = superclass.prototype;\n return subclass;\n};\n\n_.isObject = function(obj) {\n return (obj === Object(obj) && !_.isArray(obj));\n};\n\n_.isEmptyObject = function(obj) {\n if (_.isObject(obj)) {\n for (var key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n\n_.isUndefined = function(obj) {\n return obj === void 0;\n};\n\n_.isString = function(obj) {\n return toString.call(obj) == '[object String]';\n};\n\n_.isDate = function(obj) {\n return toString.call(obj) == '[object Date]';\n};\n\n_.isNumber = function(obj) {\n return toString.call(obj) == '[object Number]';\n};\n\n_.isElement = function(obj) {\n return !!(obj && obj.nodeType === 1);\n};\n\n_.encodeDates = function(obj) {\n _.each(obj, function(v, k) {\n if (_.isDate(v)) {\n obj[k] = _.formatDate(v);\n } else if (_.isObject(v)) {\n obj[k] = _.encodeDates(v); // recurse\n }\n });\n return obj;\n};\n\n_.timestamp = function() {\n Date.now = Date.now || function() {\n return +new Date;\n };\n return Date.now();\n};\n\n_.formatDate = function(d) {\n // YYYY-MM-DDTHH:MM:SS in UTC\n function pad(n) {\n return n < 10 ? '0' + n : n;\n }\n return d.getUTCFullYear() + '-' +\n pad(d.getUTCMonth() + 1) + '-' +\n pad(d.getUTCDate()) + 'T' +\n pad(d.getUTCHours()) + ':' +\n pad(d.getUTCMinutes()) + ':' +\n pad(d.getUTCSeconds());\n};\n\n_.strip_empty_properties = function(p) {\n var ret = {};\n _.each(p, function(v, k) {\n if (_.isString(v) && v.length > 0) {\n ret[k] = v;\n }\n });\n return ret;\n};\n\n/*\n * this function returns a copy of object after truncating it. If\n * passed an Array or Object it will iterate through obj and\n * truncate all the values recursively.\n */\n_.truncate = function(obj, length) {\n var ret;\n\n if (typeof(obj) === 'string') {\n ret = obj.slice(0, length);\n } else if (_.isArray(obj)) {\n ret = [];\n _.each(obj, function(val) {\n ret.push(_.truncate(val, length));\n });\n } else if (_.isObject(obj)) {\n ret = {};\n _.each(obj, function(val, key) {\n ret[key] = _.truncate(val, length);\n });\n } else {\n ret = obj;\n }\n\n return ret;\n};\n\n_.JSONEncode = (function() {\n return function(mixed_val) {\n var value = mixed_val;\n var quote = function(string) {\n var escapable = /[\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g; // eslint-disable-line no-control-regex\n var meta = { // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\'\n };\n\n escapable.lastIndex = 0;\n return escapable.test(string) ?\n '\"' + string.replace(escapable, function(a) {\n var c = meta[a];\n return typeof c === 'string' ? c :\n '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' :\n '\"' + string + '\"';\n };\n\n var str = function(key, holder) {\n var gap = '';\n var indent = ' ';\n var i = 0; // The loop counter.\n var k = ''; // The member key.\n var v = ''; // The member value.\n var length = 0;\n var mind = gap;\n var partial = [];\n var value = holder[key];\n\n // If the value has a toJSON method, call it to obtain a replacement value.\n if (value && typeof value === 'object' &&\n typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n\n // What happens next depends on the value's type.\n switch (typeof value) {\n case 'string':\n return quote(value);\n\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return isFinite(value) ? String(value) : 'null';\n\n case 'boolean':\n case 'null':\n // If the value is a boolean or null, convert it to a string. Note:\n // typeof null does not produce 'null'. The case is included here in\n // the remote chance that this gets fixed someday.\n\n return String(value);\n\n case 'object':\n // If the type is 'object', we might be dealing with an object or an array or\n // null.\n // Due to a specification blunder in ECMAScript, typeof null is 'object',\n // so watch out for that case.\n if (!value) {\n return 'null';\n }\n\n // Make an array to hold the partial results of stringifying this object value.\n gap += indent;\n partial = [];\n\n // Is the value an array?\n if (toString.apply(value) === '[object Array]') {\n // The value is an array. Stringify every element. Use null as a placeholder\n // for non-JSON values.\n\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || 'null';\n }\n\n // Join all of the elements together, separated with commas, and wrap them in\n // brackets.\n v = partial.length === 0 ? '[]' :\n gap ? '[\\n' + gap +\n partial.join(',\\n' + gap) + '\\n' +\n mind + ']' :\n '[' + partial.join(',') + ']';\n gap = mind;\n return v;\n }\n\n // Iterate through all of the keys in the object.\n for (k in value) {\n if (hasOwnProperty.call(value, k)) {\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n\n // Join all of the member texts together, separated with commas,\n // and wrap them in braces.\n v = partial.length === 0 ? '{}' :\n gap ? '{' + partial.join(',') + '' +\n mind + '}' : '{' + partial.join(',') + '}';\n gap = mind;\n return v;\n }\n };\n\n // Make a fake root object containing our value under the key of ''.\n // Return the result of stringifying the value.\n return str('', {\n '': value\n });\n };\n})();\n\n/**\n * From https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js\n * Slightly modified to throw a real Error rather than a POJO\n */\n_.JSONDecode = (function() {\n var at, // The index of the current character\n ch, // The current character\n escapee = {\n '\"': '\"',\n '\\\\': '\\\\',\n '/': '/',\n 'b': '\\b',\n 'f': '\\f',\n 'n': '\\n',\n 'r': '\\r',\n 't': '\\t'\n },\n text,\n error = function(m) {\n var e = new SyntaxError(m);\n e.at = at;\n e.text = text;\n throw e;\n },\n next = function(c) {\n // If a c parameter is provided, verify that it matches the current character.\n if (c && c !== ch) {\n error('Expected \\'' + c + '\\' instead of \\'' + ch + '\\'');\n }\n // Get the next character. When there are no more characters,\n // return the empty string.\n ch = text.charAt(at);\n at += 1;\n return ch;\n },\n number = function() {\n // Parse a number value.\n var number,\n string = '';\n\n if (ch === '-') {\n string = '-';\n next('-');\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n if (ch === '.') {\n string += '.';\n while (next() && ch >= '0' && ch <= '9') {\n string += ch;\n }\n }\n if (ch === 'e' || ch === 'E') {\n string += ch;\n next();\n if (ch === '-' || ch === '+') {\n string += ch;\n next();\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n }\n number = +string;\n if (!isFinite(number)) {\n error('Bad number');\n } else {\n return number;\n }\n },\n\n string = function() {\n // Parse a string value.\n var hex,\n i,\n string = '',\n uffff;\n // When parsing for string values, we must look for \" and \\ characters.\n if (ch === '\"') {\n while (next()) {\n if (ch === '\"') {\n next();\n return string;\n }\n if (ch === '\\\\') {\n next();\n if (ch === 'u') {\n uffff = 0;\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(next(), 16);\n if (!isFinite(hex)) {\n break;\n }\n uffff = uffff * 16 + hex;\n }\n string += String.fromCharCode(uffff);\n } else if (typeof escapee[ch] === 'string') {\n string += escapee[ch];\n } else {\n break;\n }\n } else {\n string += ch;\n }\n }\n }\n error('Bad string');\n },\n white = function() {\n // Skip whitespace.\n while (ch && ch <= ' ') {\n next();\n }\n },\n word = function() {\n // true, false, or null.\n switch (ch) {\n case 't':\n next('t');\n next('r');\n next('u');\n next('e');\n return true;\n case 'f':\n next('f');\n next('a');\n next('l');\n next('s');\n next('e');\n return false;\n case 'n':\n next('n');\n next('u');\n next('l');\n next('l');\n return null;\n }\n error('Unexpected \"' + ch + '\"');\n },\n value, // Placeholder for the value function.\n array = function() {\n // Parse an array value.\n var array = [];\n\n if (ch === '[') {\n next('[');\n white();\n if (ch === ']') {\n next(']');\n return array; // empty array\n }\n while (ch) {\n array.push(value());\n white();\n if (ch === ']') {\n next(']');\n return array;\n }\n next(',');\n white();\n }\n }\n error('Bad array');\n },\n object = function() {\n // Parse an object value.\n var key,\n object = {};\n\n if (ch === '{') {\n next('{');\n white();\n if (ch === '}') {\n next('}');\n return object; // empty object\n }\n while (ch) {\n key = string();\n white();\n next(':');\n if (Object.hasOwnProperty.call(object, key)) {\n error('Duplicate key \"' + key + '\"');\n }\n object[key] = value();\n white();\n if (ch === '}') {\n next('}');\n return object;\n }\n next(',');\n white();\n }\n }\n error('Bad object');\n };\n\n value = function() {\n // Parse a JSON value. It could be an object, an array, a string,\n // a number, or a word.\n white();\n switch (ch) {\n case '{':\n return object();\n case '[':\n return array();\n case '\"':\n return string();\n case '-':\n return number();\n default:\n return ch >= '0' && ch <= '9' ? number() : word();\n }\n };\n\n // Return the json_parse function. It will have access to all of the\n // above functions and variables.\n return function(source) {\n var result;\n\n text = source;\n at = 0;\n ch = ' ';\n result = value();\n white();\n if (ch) {\n error('Syntax error');\n }\n\n return result;\n };\n})();\n\n_.base64Encode = function(data) {\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,\n ac = 0,\n enc = '',\n tmp_arr = [];\n\n if (!data) {\n return data;\n }\n\n data = _.utf8Encode(data);\n\n do { // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n\n bits = o1 << 16 | o2 << 8 | o3;\n\n h1 = bits >> 18 & 0x3f;\n h2 = bits >> 12 & 0x3f;\n h3 = bits >> 6 & 0x3f;\n h4 = bits & 0x3f;\n\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n\n enc = tmp_arr.join('');\n\n switch (data.length % 3) {\n case 1:\n enc = enc.slice(0, -2) + '==';\n break;\n case 2:\n enc = enc.slice(0, -1) + '=';\n break;\n }\n\n return enc;\n};\n\n_.utf8Encode = function(string) {\n string = (string + '').replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n\n var utftext = '',\n start,\n end;\n var stringl = 0,\n n;\n\n start = end = 0;\n stringl = string.length;\n\n for (n = 0; n < stringl; n++) {\n var c1 = string.charCodeAt(n);\n var enc = null;\n\n if (c1 < 128) {\n end++;\n } else if ((c1 > 127) && (c1 < 2048)) {\n enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128);\n } else {\n enc = String.fromCharCode((c1 >> 12) | 224, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128);\n }\n if (enc !== null) {\n if (end > start) {\n utftext += string.substring(start, end);\n }\n utftext += enc;\n start = end = n + 1;\n }\n }\n\n if (end > start) {\n utftext += string.substring(start, string.length);\n }\n\n return utftext;\n};\n\n_.UUID = (function() {\n\n // Time-based entropy\n var T = function() {\n var time = 1 * new Date(); // cross-browser version of Date.now()\n var ticks;\n if (window$1.performance && window$1.performance.now) {\n ticks = window$1.performance.now();\n } else {\n // fall back to busy loop\n ticks = 0;\n\n // this while loop figures how many browser ticks go by\n // before 1*new Date() returns a new number, ie the amount\n // of ticks that go by per millisecond\n while (time == 1 * new Date()) {\n ticks++;\n }\n }\n return time.toString(16) + Math.floor(ticks).toString(16);\n };\n\n // Math.Random entropy\n var R = function() {\n return Math.random().toString(16).replace('.', '');\n };\n\n // User agent entropy\n // This function takes the user agent string, and then xors\n // together each sequence of 8 bytes. This produces a final\n // sequence of 8 bytes which it returns as hex.\n var UA = function() {\n var ua = userAgent,\n i, ch, buffer = [],\n ret = 0;\n\n function xor(result, byte_array) {\n var j, tmp = 0;\n for (j = 0; j < byte_array.length; j++) {\n tmp |= (buffer[j] << j * 8);\n }\n return result ^ tmp;\n }\n\n for (i = 0; i < ua.length; i++) {\n ch = ua.charCodeAt(i);\n buffer.unshift(ch & 0xFF);\n if (buffer.length >= 4) {\n ret = xor(ret, buffer);\n buffer = [];\n }\n }\n\n if (buffer.length > 0) {\n ret = xor(ret, buffer);\n }\n\n return ret.toString(16);\n };\n\n return function() {\n var se = (screen.height * screen.width).toString(16);\n return (T() + '-' + R() + '-' + UA() + '-' + se + '-' + T());\n };\n})();\n\n// _.isBlockedUA()\n// This is to block various web spiders from executing our JS and\n// sending false tracking data\nvar BLOCKED_UA_STRS = [\n 'ahrefsbot',\n 'baiduspider',\n 'bingbot',\n 'bingpreview',\n 'facebookexternal',\n 'petalbot',\n 'pinterest',\n 'screaming frog',\n 'yahoo! slurp',\n 'yandexbot',\n\n // a whole bunch of goog-specific crawlers\n // https://developers.google.com/search/docs/advanced/crawling/overview-google-crawlers\n 'adsbot-google',\n 'apis-google',\n 'duplexweb-google',\n 'feedfetcher-google',\n 'google favicon',\n 'google web preview',\n 'google-read-aloud',\n 'googlebot',\n 'googleweblight',\n 'mediapartners-google',\n 'storebot-google'\n];\n_.isBlockedUA = function(ua) {\n var i;\n ua = ua.toLowerCase();\n for (i = 0; i < BLOCKED_UA_STRS.length; i++) {\n if (ua.indexOf(BLOCKED_UA_STRS[i]) !== -1) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * @param {Object=} formdata\n * @param {string=} arg_separator\n */\n_.HTTPBuildQuery = function(formdata, arg_separator) {\n var use_val, use_key, tmp_arr = [];\n\n if (_.isUndefined(arg_separator)) {\n arg_separator = '&';\n }\n\n _.each(formdata, function(val, key) {\n use_val = encodeURIComponent(val.toString());\n use_key = encodeURIComponent(key);\n tmp_arr[tmp_arr.length] = use_key + '=' + use_val;\n });\n\n return tmp_arr.join(arg_separator);\n};\n\n_.getQueryParam = function(url, param) {\n // Expects a raw URL\n\n param = param.replace(/[[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\n var regexS = '[\\\\?&]' + param + '=([^&#]*)',\n regex = new RegExp(regexS),\n results = regex.exec(url);\n if (results === null || (results && typeof(results[1]) !== 'string' && results[1].length)) {\n return '';\n } else {\n var result = results[1];\n try {\n result = decodeURIComponent(result);\n } catch(err) {\n console.error('Skipping decoding for malformed query param: ' + result);\n }\n return result.replace(/\\+/g, ' ');\n }\n};\n\n\n// _.cookie\n// Methods partially borrowed from quirksmode.org/js/cookies.html\n_.cookie = {\n get: function(name) {\n var nameEQ = name + '=';\n var ca = document$1.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) === 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length));\n }\n }\n return null;\n },\n\n parse: function(name) {\n var cookie;\n try {\n cookie = _.JSONDecode(_.cookie.get(name)) || {};\n } catch (err) {\n // noop\n }\n return cookie;\n },\n\n set_seconds: function(name, value, seconds, is_cross_subdomain, is_secure, is_cross_site, domain_override) {\n var cdomain = '',\n expires = '',\n secure = '';\n\n if (domain_override) {\n cdomain = '; domain=' + domain_override;\n } else if (is_cross_subdomain) {\n var domain = extract_domain(document$1.location.hostname);\n cdomain = domain ? '; domain=.' + domain : '';\n }\n\n if (seconds) {\n var date = new Date();\n date.setTime(date.getTime() + (seconds * 1000));\n expires = '; expires=' + date.toGMTString();\n }\n\n if (is_cross_site) {\n is_secure = true;\n secure = '; SameSite=None';\n }\n if (is_secure) {\n secure += '; secure';\n }\n\n document$1.cookie = name + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure;\n },\n\n set: function(name, value, days, is_cross_subdomain, is_secure, is_cross_site, domain_override) {\n var cdomain = '', expires = '', secure = '';\n\n if (domain_override) {\n cdomain = '; domain=' + domain_override;\n } else if (is_cross_subdomain) {\n var domain = extract_domain(document$1.location.hostname);\n cdomain = domain ? '; domain=.' + domain : '';\n }\n\n if (days) {\n var date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n expires = '; expires=' + date.toGMTString();\n }\n\n if (is_cross_site) {\n is_secure = true;\n secure = '; SameSite=None';\n }\n if (is_secure) {\n secure += '; secure';\n }\n\n var new_cookie_val = name + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure;\n document$1.cookie = new_cookie_val;\n return new_cookie_val;\n },\n\n remove: function(name, is_cross_subdomain, domain_override) {\n _.cookie.set(name, '', -1, is_cross_subdomain, false, false, domain_override);\n }\n};\n\nvar _localStorageSupported = null;\nvar localStorageSupported = function(storage, forceCheck) {\n if (_localStorageSupported !== null && !forceCheck) {\n return _localStorageSupported;\n }\n\n var supported = true;\n try {\n storage = storage || window.localStorage;\n var key = '__mplss_' + cheap_guid(8),\n val = 'xyz';\n storage.setItem(key, val);\n if (storage.getItem(key) !== val) {\n supported = false;\n }\n storage.removeItem(key);\n } catch (err) {\n supported = false;\n }\n\n _localStorageSupported = supported;\n return supported;\n};\n\n// _.localStorage\n_.localStorage = {\n is_supported: function(force_check) {\n var supported = localStorageSupported(null, force_check);\n if (!supported) {\n console.error('localStorage unsupported; falling back to cookie store');\n }\n return supported;\n },\n\n error: function(msg) {\n console.error('localStorage error: ' + msg);\n },\n\n get: function(name) {\n try {\n return window.localStorage.getItem(name);\n } catch (err) {\n _.localStorage.error(err);\n }\n return null;\n },\n\n parse: function(name) {\n try {\n return _.JSONDecode(_.localStorage.get(name)) || {};\n } catch (err) {\n // noop\n }\n return null;\n },\n\n set: function(name, value) {\n try {\n window.localStorage.setItem(name, value);\n } catch (err) {\n _.localStorage.error(err);\n }\n },\n\n remove: function(name) {\n try {\n window.localStorage.removeItem(name);\n } catch (err) {\n _.localStorage.error(err);\n }\n }\n};\n\n_.register_event = (function() {\n // written by Dean Edwards, 2005\n // with input from Tino Zijdel - crisp@xs4all.nl\n // with input from Carl Sverre - mail@carlsverre.com\n // with input from Mixpanel\n // http://dean.edwards.name/weblog/2005/10/add-event/\n // https://gist.github.com/1930440\n\n /**\n * @param {Object} element\n * @param {string} type\n * @param {function(...*)} handler\n * @param {boolean=} oldSchool\n * @param {boolean=} useCapture\n */\n var register_event = function(element, type, handler, oldSchool, useCapture) {\n if (!element) {\n console.error('No valid element provided to register_event');\n return;\n }\n\n if (element.addEventListener && !oldSchool) {\n element.addEventListener(type, handler, !!useCapture);\n } else {\n var ontype = 'on' + type;\n var old_handler = element[ontype]; // can be undefined\n element[ontype] = makeHandler(element, handler, old_handler);\n }\n };\n\n function makeHandler(element, new_handler, old_handlers) {\n var handler = function(event) {\n event = event || fixEvent(window.event);\n\n // this basically happens in firefox whenever another script\n // overwrites the onload callback and doesn't pass the event\n // object to previously defined callbacks. All the browsers\n // that don't define window.event implement addEventListener\n // so the dom_loaded handler will still be fired as usual.\n if (!event) {\n return undefined;\n }\n\n var ret = true;\n var old_result, new_result;\n\n if (_.isFunction(old_handlers)) {\n old_result = old_handlers(event);\n }\n new_result = new_handler.call(element, event);\n\n if ((false === old_result) || (false === new_result)) {\n ret = false;\n }\n\n return ret;\n };\n\n return handler;\n }\n\n function fixEvent(event) {\n if (event) {\n event.preventDefault = fixEvent.preventDefault;\n event.stopPropagation = fixEvent.stopPropagation;\n }\n return event;\n }\n fixEvent.preventDefault = function() {\n this.returnValue = false;\n };\n fixEvent.stopPropagation = function() {\n this.cancelBubble = true;\n };\n\n return register_event;\n})();\n\n\nvar TOKEN_MATCH_REGEX = new RegExp('^(\\\\w*)\\\\[(\\\\w+)([=~\\\\|\\\\^\\\\$\\\\*]?)=?\"?([^\\\\]\"]*)\"?\\\\]$');\n\n_.dom_query = (function() {\n /* document.getElementsBySelector(selector)\n - returns an array of element objects from the current document\n matching the CSS selector. Selectors can contain element names,\n class names and ids and can be nested. For example:\n\n elements = document.getElementsBySelector('div#main p a.external')\n\n Will return an array of all 'a' elements with 'external' in their\n class attribute that are contained inside 'p' elements that are\n contained inside the 'div' element which has id=\"main\"\n\n New in version 0.4: Support for CSS2 and CSS3 attribute selectors:\n See http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\n Version 0.4 - Simon Willison, March 25th 2003\n -- Works in Phoenix 0.5, Mozilla 1.3, Opera 7, Internet Explorer 6, Internet Explorer 5 on Windows\n -- Opera 7 fails\n\n Version 0.5 - Carl Sverre, Jan 7th 2013\n -- Now uses jQuery-esque `hasClass` for testing class name\n equality. This fixes a bug related to '-' characters being\n considered not part of a 'word' in regex.\n */\n\n function getAllChildren(e) {\n // Returns all children of element. Workaround required for IE5/Windows. Ugh.\n return e.all ? e.all : e.getElementsByTagName('*');\n }\n\n var bad_whitespace = /[\\t\\r\\n]/g;\n\n function hasClass(elem, selector) {\n var className = ' ' + selector + ' ';\n return ((' ' + elem.className + ' ').replace(bad_whitespace, ' ').indexOf(className) >= 0);\n }\n\n function getElementsBySelector(selector) {\n // Attempt to fail gracefully in lesser browsers\n if (!document$1.getElementsByTagName) {\n return [];\n }\n // Split selector in to tokens\n var tokens = selector.split(' ');\n var token, bits, tagName, found, foundCount, i, j, k, elements, currentContextIndex;\n var currentContext = [document$1];\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i].replace(/^\\s+/, '').replace(/\\s+$/, '');\n if (token.indexOf('#') > -1) {\n // Token is an ID selector\n bits = token.split('#');\n tagName = bits[0];\n var id = bits[1];\n var element = document$1.getElementById(id);\n if (!element || (tagName && element.nodeName.toLowerCase() != tagName)) {\n // element not found or tag with that ID not found, return false\n return [];\n }\n // Set currentContext to contain just this element\n currentContext = [element];\n continue; // Skip to next token\n }\n if (token.indexOf('.') > -1) {\n // Token contains a class selector\n bits = token.split('.');\n tagName = bits[0];\n var className = bits[1];\n if (!tagName) {\n tagName = '*';\n }\n // Get elements matching tag, filter them for class selector\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n if (tagName == '*') {\n elements = getAllChildren(currentContext[j]);\n } else {\n elements = currentContext[j].getElementsByTagName(tagName);\n }\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = [];\n currentContextIndex = 0;\n for (j = 0; j < found.length; j++) {\n if (found[j].className &&\n _.isString(found[j].className) && // some SVG elements have classNames which are not strings\n hasClass(found[j], className)\n ) {\n currentContext[currentContextIndex++] = found[j];\n }\n }\n continue; // Skip to next token\n }\n // Code to deal with attribute selectors\n var token_match = token.match(TOKEN_MATCH_REGEX);\n if (token_match) {\n tagName = token_match[1];\n var attrName = token_match[2];\n var attrOperator = token_match[3];\n var attrValue = token_match[4];\n if (!tagName) {\n tagName = '*';\n }\n // Grab all of the tagName elements within current context\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n if (tagName == '*') {\n elements = getAllChildren(currentContext[j]);\n } else {\n elements = currentContext[j].getElementsByTagName(tagName);\n }\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = [];\n currentContextIndex = 0;\n var checkFunction; // This function will be used to filter the elements\n switch (attrOperator) {\n case '=': // Equality\n checkFunction = function(e) {\n return (e.getAttribute(attrName) == attrValue);\n };\n break;\n case '~': // Match one of space seperated words\n checkFunction = function(e) {\n return (e.getAttribute(attrName).match(new RegExp('\\\\b' + attrValue + '\\\\b')));\n };\n break;\n case '|': // Match start with value followed by optional hyphen\n checkFunction = function(e) {\n return (e.getAttribute(attrName).match(new RegExp('^' + attrValue + '-?')));\n };\n break;\n case '^': // Match starts with value\n checkFunction = function(e) {\n return (e.getAttribute(attrName).indexOf(attrValue) === 0);\n };\n break;\n case '$': // Match ends with value - fails with \"Warning\" in Opera 7\n checkFunction = function(e) {\n return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length);\n };\n break;\n case '*': // Match ends with value\n checkFunction = function(e) {\n return (e.getAttribute(attrName).indexOf(attrValue) > -1);\n };\n break;\n default:\n // Just test for existence of attribute\n checkFunction = function(e) {\n return e.getAttribute(attrName);\n };\n }\n currentContext = [];\n currentContextIndex = 0;\n for (j = 0; j < found.length; j++) {\n if (checkFunction(found[j])) {\n currentContext[currentContextIndex++] = found[j];\n }\n }\n // alert('Attribute Selector: '+tagName+' '+attrName+' '+attrOperator+' '+attrValue);\n continue; // Skip to next token\n }\n // If we get here, token is JUST an element (not a class or ID selector)\n tagName = token;\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n elements = currentContext[j].getElementsByTagName(tagName);\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = found;\n }\n return currentContext;\n }\n\n return function(query) {\n if (_.isElement(query)) {\n return [query];\n } else if (_.isObject(query) && !_.isUndefined(query.length)) {\n return query;\n } else {\n return getElementsBySelector.call(this, query);\n }\n };\n})();\n\nvar CAMPAIGN_KEYWORDS = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term'];\nvar CLICK_IDS = ['dclid', 'fbclid', 'gclid', 'ko_click_id', 'li_fat_id', 'msclkid', 'ttclid', 'twclid', 'wbraid'];\n\n_.info = {\n campaignParams: function(default_value) {\n var kw = '',\n params = {};\n _.each(CAMPAIGN_KEYWORDS, function(kwkey) {\n kw = _.getQueryParam(document$1.URL, kwkey);\n if (kw.length) {\n params[kwkey] = kw;\n } else if (default_value !== undefined) {\n params[kwkey] = default_value;\n }\n });\n\n return params;\n },\n\n clickParams: function() {\n var id = '',\n params = {};\n _.each(CLICK_IDS, function(idkey) {\n id = _.getQueryParam(document$1.URL, idkey);\n if (id.length) {\n params[idkey] = id;\n }\n });\n\n return params;\n },\n\n marketingParams: function() {\n return _.extend(_.info.campaignParams(), _.info.clickParams());\n },\n\n searchEngine: function(referrer) {\n if (referrer.search('https?://(.*)google.([^/?]*)') === 0) {\n return 'google';\n } else if (referrer.search('https?://(.*)bing.com') === 0) {\n return 'bing';\n } else if (referrer.search('https?://(.*)yahoo.com') === 0) {\n return 'yahoo';\n } else if (referrer.search('https?://(.*)duckduckgo.com') === 0) {\n return 'duckduckgo';\n } else {\n return null;\n }\n },\n\n searchInfo: function(referrer) {\n var search = _.info.searchEngine(referrer),\n param = (search != 'yahoo') ? 'q' : 'p',\n ret = {};\n\n if (search !== null) {\n ret['$search_engine'] = search;\n\n var keyword = _.getQueryParam(referrer, param);\n if (keyword.length) {\n ret['mp_keyword'] = keyword;\n }\n }\n\n return ret;\n },\n\n /**\n * This function detects which browser is running this script.\n * The order of the checks are important since many user agents\n * include key words used in later checks.\n */\n browser: function(user_agent, vendor, opera) {\n vendor = vendor || ''; // vendor is undefined for at least IE9\n if (opera || _.includes(user_agent, ' OPR/')) {\n if (_.includes(user_agent, 'Mini')) {\n return 'Opera Mini';\n }\n return 'Opera';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry';\n } else if (_.includes(user_agent, 'IEMobile') || _.includes(user_agent, 'WPDesktop')) {\n return 'Internet Explorer Mobile';\n } else if (_.includes(user_agent, 'SamsungBrowser/')) {\n // https://developer.samsung.com/internet/user-agent-string-format\n return 'Samsung Internet';\n } else if (_.includes(user_agent, 'Edge') || _.includes(user_agent, 'Edg/')) {\n return 'Microsoft Edge';\n } else if (_.includes(user_agent, 'FBIOS')) {\n return 'Facebook Mobile';\n } else if (_.includes(user_agent, 'Chrome')) {\n return 'Chrome';\n } else if (_.includes(user_agent, 'CriOS')) {\n return 'Chrome iOS';\n } else if (_.includes(user_agent, 'UCWEB') || _.includes(user_agent, 'UCBrowser')) {\n return 'UC Browser';\n } else if (_.includes(user_agent, 'FxiOS')) {\n return 'Firefox iOS';\n } else if (_.includes(vendor, 'Apple')) {\n if (_.includes(user_agent, 'Mobile')) {\n return 'Mobile Safari';\n }\n return 'Safari';\n } else if (_.includes(user_agent, 'Android')) {\n return 'Android Mobile';\n } else if (_.includes(user_agent, 'Konqueror')) {\n return 'Konqueror';\n } else if (_.includes(user_agent, 'Firefox')) {\n return 'Firefox';\n } else if (_.includes(user_agent, 'MSIE') || _.includes(user_agent, 'Trident/')) {\n return 'Internet Explorer';\n } else if (_.includes(user_agent, 'Gecko')) {\n return 'Mozilla';\n } else {\n return '';\n }\n },\n\n /**\n * This function detects which browser version is running this script,\n * parsing major and minor version (e.g., 42.1). User agent strings from:\n * http://www.useragentstring.com/pages/useragentstring.php\n */\n browserVersion: function(userAgent, vendor, opera) {\n var browser = _.info.browser(userAgent, vendor, opera);\n var versionRegexs = {\n 'Internet Explorer Mobile': /rv:(\\d+(\\.\\d+)?)/,\n 'Microsoft Edge': /Edge?\\/(\\d+(\\.\\d+)?)/,\n 'Chrome': /Chrome\\/(\\d+(\\.\\d+)?)/,\n 'Chrome iOS': /CriOS\\/(\\d+(\\.\\d+)?)/,\n 'UC Browser' : /(UCBrowser|UCWEB)\\/(\\d+(\\.\\d+)?)/,\n 'Safari': /Version\\/(\\d+(\\.\\d+)?)/,\n 'Mobile Safari': /Version\\/(\\d+(\\.\\d+)?)/,\n 'Opera': /(Opera|OPR)\\/(\\d+(\\.\\d+)?)/,\n 'Firefox': /Firefox\\/(\\d+(\\.\\d+)?)/,\n 'Firefox iOS': /FxiOS\\/(\\d+(\\.\\d+)?)/,\n 'Konqueror': /Konqueror:(\\d+(\\.\\d+)?)/,\n 'BlackBerry': /BlackBerry (\\d+(\\.\\d+)?)/,\n 'Android Mobile': /android\\s(\\d+(\\.\\d+)?)/,\n 'Samsung Internet': /SamsungBrowser\\/(\\d+(\\.\\d+)?)/,\n 'Internet Explorer': /(rv:|MSIE )(\\d+(\\.\\d+)?)/,\n 'Mozilla': /rv:(\\d+(\\.\\d+)?)/\n };\n var regex = versionRegexs[browser];\n if (regex === undefined) {\n return null;\n }\n var matches = userAgent.match(regex);\n if (!matches) {\n return null;\n }\n return parseFloat(matches[matches.length - 2]);\n },\n\n os: function() {\n var a = userAgent;\n if (/Windows/i.test(a)) {\n if (/Phone/.test(a) || /WPDesktop/.test(a)) {\n return 'Windows Phone';\n }\n return 'Windows';\n } else if (/(iPhone|iPad|iPod)/.test(a)) {\n return 'iOS';\n } else if (/Android/.test(a)) {\n return 'Android';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(a)) {\n return 'BlackBerry';\n } else if (/Mac/i.test(a)) {\n return 'Mac OS X';\n } else if (/Linux/.test(a)) {\n return 'Linux';\n } else if (/CrOS/.test(a)) {\n return 'Chrome OS';\n } else {\n return '';\n }\n },\n\n device: function(user_agent) {\n if (/Windows Phone/i.test(user_agent) || /WPDesktop/.test(user_agent)) {\n return 'Windows Phone';\n } else if (/iPad/.test(user_agent)) {\n return 'iPad';\n } else if (/iPod/.test(user_agent)) {\n return 'iPod Touch';\n } else if (/iPhone/.test(user_agent)) {\n return 'iPhone';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry';\n } else if (/Android/.test(user_agent)) {\n return 'Android';\n } else {\n return '';\n }\n },\n\n referringDomain: function(referrer) {\n var split = referrer.split('/');\n if (split.length >= 3) {\n return split[2];\n }\n return '';\n },\n\n properties: function() {\n return _.extend(_.strip_empty_properties({\n '$os': _.info.os(),\n '$browser': _.info.browser(userAgent, navigator.vendor, windowOpera),\n '$referrer': document$1.referrer,\n '$referring_domain': _.info.referringDomain(document$1.referrer),\n '$device': _.info.device(userAgent)\n }), {\n '$current_url': window$1.location.href,\n '$browser_version': _.info.browserVersion(userAgent, navigator.vendor, windowOpera),\n '$screen_height': screen.height,\n '$screen_width': screen.width,\n 'mp_lib': 'web',\n '$lib_version': Config.LIB_VERSION,\n '$insert_id': cheap_guid(),\n 'time': _.timestamp() / 1000 // epoch time in seconds\n });\n },\n\n people_properties: function() {\n return _.extend(_.strip_empty_properties({\n '$os': _.info.os(),\n '$browser': _.info.browser(userAgent, navigator.vendor, windowOpera)\n }), {\n '$browser_version': _.info.browserVersion(userAgent, navigator.vendor, windowOpera)\n });\n },\n\n mpPageViewProperties: function() {\n return _.strip_empty_properties({\n 'current_page_title': document$1.title,\n 'current_domain': window$1.location.hostname,\n 'current_url_path': window$1.location.pathname,\n 'current_url_protocol': window$1.location.protocol,\n 'current_url_search': window$1.location.search\n });\n }\n};\n\nvar cheap_guid = function(maxlen) {\n var guid = Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10);\n return maxlen ? guid.substring(0, maxlen) : guid;\n};\n\n// naive way to extract domain name (example.com) from full hostname (my.sub.example.com)\nvar SIMPLE_DOMAIN_MATCH_REGEX = /[a-z0-9][a-z0-9-]*\\.[a-z]+$/i;\n// this next one attempts to account for some ccSLDs, e.g. extracting oxford.ac.uk from www.oxford.ac.uk\nvar DOMAIN_MATCH_REGEX = /[a-z0-9][a-z0-9-]+\\.[a-z.]{2,6}$/i;\n/**\n * Attempts to extract main domain name from full hostname, using a few blunt heuristics. For\n * common TLDs like .com/.org that always have a simple SLD.TLD structure (example.com), we\n * simply extract the last two .-separated parts of the hostname (SIMPLE_DOMAIN_MATCH_REGEX).\n * For others, we attempt to account for short ccSLD+TLD combos (.ac.uk) with the legacy\n * DOMAIN_MATCH_REGEX (kept to maintain backwards compatibility with existing Mixpanel\n * integrations). The only _reliable_ way to extract domain from hostname is with an up-to-date\n * list like at https://publicsuffix.org/ so for cases that this helper fails at, the SDK\n * offers the 'cookie_domain' config option to set it explicitly.\n * @example\n * extract_domain('my.sub.example.com')\n * // 'example.com'\n */\nvar extract_domain = function(hostname) {\n var domain_regex = DOMAIN_MATCH_REGEX;\n var parts = hostname.split('.');\n var tld = parts[parts.length - 1];\n if (tld.length > 4 || tld === 'com' || tld === 'org') {\n domain_regex = SIMPLE_DOMAIN_MATCH_REGEX;\n }\n var matches = hostname.match(domain_regex);\n return matches ? matches[0] : '';\n};\n\nvar JSONStringify = null;\nvar JSONParse = null;\nif (typeof JSON !== 'undefined') {\n JSONStringify = JSON.stringify;\n JSONParse = JSON.parse;\n}\nJSONStringify = JSONStringify || _.JSONEncode;\nJSONParse = JSONParse || _.JSONDecode;\n\n// EXPORTS (for closure compiler)\n_['toArray'] = _.toArray;\n_['isObject'] = _.isObject;\n_['JSONEncode'] = _.JSONEncode;\n_['JSONDecode'] = _.JSONDecode;\n_['isBlockedUA'] = _.isBlockedUA;\n_['isEmptyObject'] = _.isEmptyObject;\n_['info'] = _.info;\n_['info']['device'] = _.info.device;\n_['info']['browser'] = _.info.browser;\n_['info']['browserVersion'] = _.info.browserVersion;\n_['info']['properties'] = _.info.properties;\n\n/**\n * DomTracker Object\n * @constructor\n */\nvar DomTracker = function() {};\n\n\n// interface\nDomTracker.prototype.create_properties = function() {};\nDomTracker.prototype.event_handler = function() {};\nDomTracker.prototype.after_track_handler = function() {};\n\nDomTracker.prototype.init = function(mixpanel_instance) {\n this.mp = mixpanel_instance;\n return this;\n};\n\n/**\n * @param {Object|string} query\n * @param {string} event_name\n * @param {Object=} properties\n * @param {function=} user_callback\n */\nDomTracker.prototype.track = function(query, event_name, properties, user_callback) {\n var that = this;\n var elements = _.dom_query(query);\n\n if (elements.length === 0) {\n console.error('The DOM query (' + query + ') returned 0 elements');\n return;\n }\n\n _.each(elements, function(element) {\n _.register_event(element, this.override_event, function(e) {\n var options = {};\n var props = that.create_properties(properties, this);\n var timeout = that.mp.get_config('track_links_timeout');\n\n that.event_handler(e, this, options);\n\n // in case the mixpanel servers don't get back to us in time\n window.setTimeout(that.track_callback(user_callback, props, options, true), timeout);\n\n // fire the tracking event\n that.mp.track(event_name, props, that.track_callback(user_callback, props, options));\n });\n }, this);\n\n return true;\n};\n\n/**\n * @param {function} user_callback\n * @param {Object} props\n * @param {boolean=} timeout_occured\n */\nDomTracker.prototype.track_callback = function(user_callback, props, options, timeout_occured) {\n timeout_occured = timeout_occured || false;\n var that = this;\n\n return function() {\n // options is referenced from both callbacks, so we can have\n // a 'lock' of sorts to ensure only one fires\n if (options.callback_fired) { return; }\n options.callback_fired = true;\n\n if (user_callback && user_callback(timeout_occured, props) === false) {\n // user can prevent the default functionality by\n // returning false from their callback\n return;\n }\n\n that.after_track_handler(props, options, timeout_occured);\n };\n};\n\nDomTracker.prototype.create_properties = function(properties, element) {\n var props;\n\n if (typeof(properties) === 'function') {\n props = properties(element);\n } else {\n props = _.extend({}, properties);\n }\n\n return props;\n};\n\n/**\n * LinkTracker Object\n * @constructor\n * @extends DomTracker\n */\nvar LinkTracker = function() {\n this.override_event = 'click';\n};\n_.inherit(LinkTracker, DomTracker);\n\nLinkTracker.prototype.create_properties = function(properties, element) {\n var props = LinkTracker.superclass.create_properties.apply(this, arguments);\n\n if (element.href) { props['url'] = element.href; }\n\n return props;\n};\n\nLinkTracker.prototype.event_handler = function(evt, element, options) {\n options.new_tab = (\n evt.which === 2 ||\n evt.metaKey ||\n evt.ctrlKey ||\n element.target === '_blank'\n );\n options.href = element.href;\n\n if (!options.new_tab) {\n evt.preventDefault();\n }\n};\n\nLinkTracker.prototype.after_track_handler = function(props, options) {\n if (options.new_tab) { return; }\n\n setTimeout(function() {\n window.location = options.href;\n }, 0);\n};\n\n/**\n * FormTracker Object\n * @constructor\n * @extends DomTracker\n */\nvar FormTracker = function() {\n this.override_event = 'submit';\n};\n_.inherit(FormTracker, DomTracker);\n\nFormTracker.prototype.event_handler = function(evt, element, options) {\n options.element = element;\n evt.preventDefault();\n};\n\nFormTracker.prototype.after_track_handler = function(props, options) {\n setTimeout(function() {\n options.element.submit();\n }, 0);\n};\n\n// eslint-disable-line camelcase\n\nvar logger$2 = console_with_prefix('lock');\n\n/**\n * SharedLock: a mutex built on HTML5 localStorage, to ensure that only one browser\n * window/tab at a time will be able to access shared resources.\n *\n * Based on the Alur and Taubenfeld fast lock\n * (http://www.cs.rochester.edu/research/synchronization/pseudocode/fastlock.html)\n * with an added timeout to ensure there will be eventual progress in the event\n * that a window is closed in the middle of the callback.\n *\n * Implementation based on the original version by David Wolever (https://github.com/wolever)\n * at https://gist.github.com/wolever/5fd7573d1ef6166e8f8c4af286a69432.\n *\n * @example\n * const myLock = new SharedLock('some-key');\n * myLock.withLock(function() {\n * console.log('I hold the mutex!');\n * });\n *\n * @constructor\n */\nvar SharedLock = function(key, options) {\n options = options || {};\n\n this.storageKey = key;\n this.storage = options.storage || window.localStorage;\n this.pollIntervalMS = options.pollIntervalMS || 100;\n this.timeoutMS = options.timeoutMS || 2000;\n};\n\n// pass in a specific pid to test contention scenarios; otherwise\n// it is chosen randomly for each acquisition attempt\nSharedLock.prototype.withLock = function(lockedCB, errorCB, pid) {\n if (!pid && typeof errorCB !== 'function') {\n pid = errorCB;\n errorCB = null;\n }\n\n var i = pid || (new Date().getTime() + '|' + Math.random());\n var startTime = new Date().getTime();\n\n var key = this.storageKey;\n var pollIntervalMS = this.pollIntervalMS;\n var timeoutMS = this.timeoutMS;\n var storage = this.storage;\n\n var keyX = key + ':X';\n var keyY = key + ':Y';\n var keyZ = key + ':Z';\n\n var reportError = function(err) {\n errorCB && errorCB(err);\n };\n\n var delay = function(cb) {\n if (new Date().getTime() - startTime > timeoutMS) {\n logger$2.error('Timeout waiting for mutex on ' + key + '; clearing lock. [' + i + ']');\n storage.removeItem(keyZ);\n storage.removeItem(keyY);\n loop();\n return;\n }\n setTimeout(function() {\n try {\n cb();\n } catch(err) {\n reportError(err);\n }\n }, pollIntervalMS * (Math.random() + 0.1));\n };\n\n var waitFor = function(predicate, cb) {\n if (predicate()) {\n cb();\n } else {\n delay(function() {\n waitFor(predicate, cb);\n });\n }\n };\n\n var getSetY = function() {\n var valY = storage.getItem(keyY);\n if (valY && valY !== i) { // if Y == i then this process already has the lock (useful for test cases)\n return false;\n } else {\n storage.setItem(keyY, i);\n if (storage.getItem(keyY) === i) {\n return true;\n } else {\n if (!localStorageSupported(storage, true)) {\n throw new Error('localStorage support dropped while acquiring lock');\n }\n return false;\n }\n }\n };\n\n var loop = function() {\n storage.setItem(keyX, i);\n\n waitFor(getSetY, function() {\n if (storage.getItem(keyX) === i) {\n criticalSection();\n return;\n }\n\n delay(function() {\n if (storage.getItem(keyY) !== i) {\n loop();\n return;\n }\n waitFor(function() {\n return !storage.getItem(keyZ);\n }, criticalSection);\n });\n });\n };\n\n var criticalSection = function() {\n storage.setItem(keyZ, '1');\n try {\n lockedCB();\n } finally {\n storage.removeItem(keyZ);\n if (storage.getItem(keyY) === i) {\n storage.removeItem(keyY);\n }\n if (storage.getItem(keyX) === i) {\n storage.removeItem(keyX);\n }\n }\n };\n\n try {\n if (localStorageSupported(storage, true)) {\n loop();\n } else {\n throw new Error('localStorage support check failed');\n }\n } catch(err) {\n reportError(err);\n }\n};\n\n// eslint-disable-line camelcase\n\nvar logger$1 = console_with_prefix('batch');\n\n/**\n * RequestQueue: queue for batching API requests with localStorage backup for retries.\n * Maintains an in-memory queue which represents the source of truth for the current\n * page, but also writes all items out to a copy in the browser's localStorage, which\n * can be read on subsequent pageloads and retried. For batchability, all the request\n * items in the queue should be of the same type (events, people updates, group updates)\n * so they can be sent in a single request to the same API endpoint.\n *\n * LocalStorage keying and locking: In order for reloads and subsequent pageloads of\n * the same site to access the same persisted data, they must share the same localStorage\n * key (for instance based on project token and queue type). Therefore access to the\n * localStorage entry is guarded by an asynchronous mutex (SharedLock) to prevent\n * simultaneously open windows/tabs from overwriting each other's data (which would lead\n * to data loss in some situations).\n * @constructor\n */\nvar RequestQueue = function(storageKey, options) {\n options = options || {};\n this.storageKey = storageKey;\n this.storage = options.storage || window.localStorage;\n this.reportError = options.errorReporter || _.bind(logger$1.error, logger$1);\n this.lock = new SharedLock(storageKey, {storage: this.storage});\n\n this.pid = options.pid || null; // pass pid to test out storage lock contention scenarios\n\n this.memQueue = [];\n};\n\n/**\n * Add one item to queues (memory and localStorage). The queued entry includes\n * the given item along with an auto-generated ID and a \"flush-after\" timestamp.\n * It is expected that the item will be sent over the network and dequeued\n * before the flush-after time; if this doesn't happen it is considered orphaned\n * (e.g., the original tab where it was enqueued got closed before it could be\n * sent) and the item can be sent by any tab that finds it in localStorage.\n *\n * The final callback param is called with a param indicating success or\n * failure of the enqueue operation; it is asynchronous because the localStorage\n * lock is asynchronous.\n */\nRequestQueue.prototype.enqueue = function(item, flushInterval, cb) {\n var queueEntry = {\n 'id': cheap_guid(),\n 'flushAfter': new Date().getTime() + flushInterval * 2,\n 'payload': item\n };\n\n this.lock.withLock(_.bind(function lockAcquired() {\n var succeeded;\n try {\n var storedQueue = this.readFromStorage();\n storedQueue.push(queueEntry);\n succeeded = this.saveToStorage(storedQueue);\n if (succeeded) {\n // only add to in-memory queue when storage succeeds\n this.memQueue.push(queueEntry);\n }\n } catch(err) {\n this.reportError('Error enqueueing item', item);\n succeeded = false;\n }\n if (cb) {\n cb(succeeded);\n }\n }, this), _.bind(function lockFailure(err) {\n this.reportError('Error acquiring storage lock', err);\n if (cb) {\n cb(false);\n }\n }, this), this.pid);\n};\n\n/**\n * Read out the given number of queue entries. If this.memQueue\n * has fewer than batchSize items, then look for \"orphaned\" items\n * in the persisted queue (items where the 'flushAfter' time has\n * already passed).\n */\nRequestQueue.prototype.fillBatch = function(batchSize) {\n var batch = this.memQueue.slice(0, batchSize);\n if (batch.length < batchSize) {\n // don't need lock just to read events; localStorage is thread-safe\n // and the worst that could happen is a duplicate send of some\n // orphaned events, which will be deduplicated on the server side\n var storedQueue = this.readFromStorage();\n if (storedQueue.length) {\n // item IDs already in batch; don't duplicate out of storage\n var idsInBatch = {}; // poor man's Set\n _.each(batch, function(item) { idsInBatch[item['id']] = true; });\n\n for (var i = 0; i < storedQueue.length; i++) {\n var item = storedQueue[i];\n if (new Date().getTime() > item['flushAfter'] && !idsInBatch[item['id']]) {\n item.orphaned = true;\n batch.push(item);\n if (batch.length >= batchSize) {\n break;\n }\n }\n }\n }\n }\n return batch;\n};\n\n/**\n * Remove items with matching 'id' from array (immutably)\n * also remove any item without a valid id (e.g., malformed\n * storage entries).\n */\nvar filterOutIDsAndInvalid = function(items, idSet) {\n var filteredItems = [];\n _.each(items, function(item) {\n if (item['id'] && !idSet[item['id']]) {\n filteredItems.push(item);\n }\n });\n return filteredItems;\n};\n\n/**\n * Remove items with matching IDs from both in-memory queue\n * and persisted queue\n */\nRequestQueue.prototype.removeItemsByID = function(ids, cb) {\n var idSet = {}; // poor man's Set\n _.each(ids, function(id) { idSet[id] = true; });\n\n this.memQueue = filterOutIDsAndInvalid(this.memQueue, idSet);\n\n var removeFromStorage = _.bind(function() {\n var succeeded;\n try {\n var storedQueue = this.readFromStorage();\n storedQueue = filterOutIDsAndInvalid(storedQueue, idSet);\n succeeded = this.saveToStorage(storedQueue);\n\n // an extra check: did storage report success but somehow\n // the items are still there?\n if (succeeded) {\n storedQueue = this.readFromStorage();\n for (var i = 0; i < storedQueue.length; i++) {\n var item = storedQueue[i];\n if (item['id'] && !!idSet[item['id']]) {\n this.reportError('Item not removed from storage');\n return false;\n }\n }\n }\n } catch(err) {\n this.reportError('Error removing items', ids);\n succeeded = false;\n }\n return succeeded;\n }, this);\n\n this.lock.withLock(function lockAcquired() {\n var succeeded = removeFromStorage();\n if (cb) {\n cb(succeeded);\n }\n }, _.bind(function lockFailure(err) {\n var succeeded = false;\n this.reportError('Error acquiring storage lock', err);\n if (!localStorageSupported(this.storage, true)) {\n // Looks like localStorage writes have stopped working sometime after\n // initialization (probably full), and so nobody can acquire locks\n // anymore. Consider it temporarily safe to remove items without the\n // lock, since nobody's writing successfully anyway.\n succeeded = removeFromStorage();\n if (!succeeded) {\n // OK, we couldn't even write out the smaller queue. Try clearing it\n // entirely.\n try {\n this.storage.removeItem(this.storageKey);\n } catch(err) {\n this.reportError('Error clearing queue', err);\n }\n }\n }\n if (cb) {\n cb(succeeded);\n }\n }, this), this.pid);\n};\n\n// internal helper for RequestQueue.updatePayloads\nvar updatePayloads = function(existingItems, itemsToUpdate) {\n var newItems = [];\n _.each(existingItems, function(item) {\n var id = item['id'];\n if (id in itemsToUpdate) {\n var newPayload = itemsToUpdate[id];\n if (newPayload !== null) {\n item['payload'] = newPayload;\n newItems.push(item);\n }\n } else {\n // no update\n newItems.push(item);\n }\n });\n return newItems;\n};\n\n/**\n * Update payloads of given items in both in-memory queue and\n * persisted queue. Items set to null are removed from queues.\n */\nRequestQueue.prototype.updatePayloads = function(itemsToUpdate, cb) {\n this.memQueue = updatePayloads(this.memQueue, itemsToUpdate);\n this.lock.withLock(_.bind(function lockAcquired() {\n var succeeded;\n try {\n var storedQueue = this.readFromStorage();\n storedQueue = updatePayloads(storedQueue, itemsToUpdate);\n succeeded = this.saveToStorage(storedQueue);\n } catch(err) {\n this.reportError('Error updating items', itemsToUpdate);\n succeeded = false;\n }\n if (cb) {\n cb(succeeded);\n }\n }, this), _.bind(function lockFailure(err) {\n this.reportError('Error acquiring storage lock', err);\n if (cb) {\n cb(false);\n }\n }, this), this.pid);\n};\n\n/**\n * Read and parse items array from localStorage entry, handling\n * malformed/missing data if necessary.\n */\nRequestQueue.prototype.readFromStorage = function() {\n var storageEntry;\n try {\n storageEntry = this.storage.getItem(this.storageKey);\n if (storageEntry) {\n storageEntry = JSONParse(storageEntry);\n if (!_.isArray(storageEntry)) {\n this.reportError('Invalid storage entry:', storageEntry);\n storageEntry = null;\n }\n }\n } catch (err) {\n this.reportError('Error retrieving queue', err);\n storageEntry = null;\n }\n return storageEntry || [];\n};\n\n/**\n * Serialize the given items array to localStorage.\n */\nRequestQueue.prototype.saveToStorage = function(queue) {\n try {\n this.storage.setItem(this.storageKey, JSONStringify(queue));\n return true;\n } catch (err) {\n this.reportError('Error saving queue', err);\n return false;\n }\n};\n\n/**\n * Clear out queues (memory and localStorage).\n */\nRequestQueue.prototype.clear = function() {\n this.memQueue = [];\n this.storage.removeItem(this.storageKey);\n};\n\n// eslint-disable-line camelcase\n\n// maximum interval between request retries after exponential backoff\nvar MAX_RETRY_INTERVAL_MS = 10 * 60 * 1000; // 10 minutes\n\nvar logger = console_with_prefix('batch');\n\n/**\n * RequestBatcher: manages the queueing, flushing, retry etc of requests of one\n * type (events, people, groups).\n * Uses RequestQueue to manage the backing store.\n * @constructor\n */\nvar RequestBatcher = function(storageKey, options) {\n this.errorReporter = options.errorReporter;\n this.queue = new RequestQueue(storageKey, {\n errorReporter: _.bind(this.reportError, this),\n storage: options.storage\n });\n\n this.libConfig = options.libConfig;\n this.sendRequest = options.sendRequestFunc;\n this.beforeSendHook = options.beforeSendHook;\n this.stopAllBatching = options.stopAllBatchingFunc;\n\n // seed variable batch size + flush interval with configured values\n this.batchSize = this.libConfig['batch_size'];\n this.flushInterval = this.libConfig['batch_flush_interval_ms'];\n\n this.stopped = !this.libConfig['batch_autostart'];\n this.consecutiveRemovalFailures = 0;\n\n // extra client-side dedupe\n this.itemIdsSentSuccessfully = {};\n};\n\n/**\n * Add one item to queue.\n */\nRequestBatcher.prototype.enqueue = function(item, cb) {\n this.queue.enqueue(item, this.flushInterval, cb);\n};\n\n/**\n * Start flushing batches at the configured time interval. Must call\n * this method upon SDK init in order to send anything over the network.\n */\nRequestBatcher.prototype.start = function() {\n this.stopped = false;\n this.consecutiveRemovalFailures = 0;\n this.flush();\n};\n\n/**\n * Stop flushing batches. Can be restarted by calling start().\n */\nRequestBatcher.prototype.stop = function() {\n this.stopped = true;\n if (this.timeoutID) {\n clearTimeout(this.timeoutID);\n this.timeoutID = null;\n }\n};\n\n/**\n * Clear out queue.\n */\nRequestBatcher.prototype.clear = function() {\n this.queue.clear();\n};\n\n/**\n * Restore batch size configuration to whatever is set in the main SDK.\n */\nRequestBatcher.prototype.resetBatchSize = function() {\n this.batchSize = this.libConfig['batch_size'];\n};\n\n/**\n * Restore flush interval time configuration to whatever is set in the main SDK.\n */\nRequestBatcher.prototype.resetFlush = function() {\n this.scheduleFlush(this.libConfig['batch_flush_interval_ms']);\n};\n\n/**\n * Schedule the next flush in the given number of milliseconds.\n */\nRequestBatcher.prototype.scheduleFlush = function(flushMS) {\n this.flushInterval = flushMS;\n if (!this.stopped) { // don't schedule anymore if batching has been stopped\n this.timeoutID = setTimeout(_.bind(this.flush, this), this.flushInterval);\n }\n};\n\n/**\n * Flush one batch to network. Depending on success/failure modes, it will either\n * remove the batch from the queue or leave it in for retry, and schedule the next\n * flush. In cases of most network or API failures, it will back off exponentially\n * when retrying.\n * @param {Object} [options]\n * @param {boolean} [options.sendBeacon] - whether to send batch with\n * navigator.sendBeacon (only useful for sending batches before page unloads, as\n * sendBeacon offers no callbacks or status indications)\n */\nRequestBatcher.prototype.flush = function(options) {\n try {\n\n if (this.requestInProgress) {\n logger.log('Flush: Request already in progress');\n return;\n }\n\n options = options || {};\n var timeoutMS = this.libConfig['batch_request_timeout_ms'];\n var startTime = new Date().getTime();\n var currentBatchSize = this.batchSize;\n var batch = this.queue.fillBatch(currentBatchSize);\n var dataForRequest = [];\n var transformedItems = {};\n _.each(batch, function(item) {\n var payload = item['payload'];\n if (this.beforeSendHook && !item.orphaned) {\n payload = this.beforeSendHook(payload);\n }\n if (payload) {\n // mp_sent_by_lib_version prop captures which lib version actually\n // sends each event (regardless of which version originally queued\n // it for sending)\n if (payload['event'] && payload['properties']) {\n payload['properties'] = _.extend(\n {},\n payload['properties'],\n {'mp_sent_by_lib_version': Config.LIB_VERSION}\n );\n }\n var addPayload = true;\n var itemId = item['id'];\n if (itemId) {\n if ((this.itemIdsSentSuccessfully[itemId] || 0) > 5) {\n this.reportError('[dupe] item ID sent too many times, not sending', {\n item: item,\n batchSize: batch.length,\n timesSent: this.itemIdsSentSuccessfully[itemId]\n });\n addPayload = false;\n }\n } else {\n this.reportError('[dupe] found item with no ID', {item: item});\n }\n\n if (addPayload) {\n dataForRequest.push(payload);\n }\n }\n transformedItems[item['id']] = payload;\n }, this);\n if (dataForRequest.length < 1) {\n this.resetFlush();\n return; // nothing to do\n }\n\n this.requestInProgress = true;\n\n var batchSendCallback = _.bind(function(res) {\n this.requestInProgress = false;\n\n try {\n\n // handle API response in a try-catch to make sure we can reset the\n // flush operation if something goes wrong\n\n var removeItemsFromQueue = false;\n if (options.unloading) {\n // update persisted data to include hook transformations\n this.queue.updatePayloads(transformedItems);\n } else if (\n _.isObject(res) &&\n res.error === 'timeout' &&\n new Date().getTime() - startTime >= timeoutMS\n ) {\n this.reportError('Network timeout; retrying');\n this.flush();\n } else if (\n _.isObject(res) &&\n res.xhr_req &&\n (res.xhr_req['status'] >= 500 || res.xhr_req['status'] === 429 || res.error === 'timeout')\n ) {\n // network or API error, or 429 Too Many Requests, retry\n var retryMS = this.flushInterval * 2;\n var headers = res.xhr_req['responseHeaders'];\n if (headers) {\n var retryAfter = headers['Retry-After'];\n if (retryAfter) {\n retryMS = (parseInt(retryAfter, 10) * 1000) || retryMS;\n }\n }\n retryMS = Math.min(MAX_RETRY_INTERVAL_MS, retryMS);\n this.reportError('Error; retry in ' + retryMS + ' ms');\n this.scheduleFlush(retryMS);\n } else if (_.isObject(res) && res.xhr_req && res.xhr_req['status'] === 413) {\n // 413 Payload Too Large\n if (batch.length > 1) {\n var halvedBatchSize = Math.max(1, Math.floor(currentBatchSize / 2));\n this.batchSize = Math.min(this.batchSize, halvedBatchSize, batch.length - 1);\n this.reportError('413 response; reducing batch size to ' + this.batchSize);\n this.resetFlush();\n } else {\n this.reportError('Single-event request too large; dropping', batch);\n this.resetBatchSize();\n removeItemsFromQueue = true;\n }\n } else {\n // successful network request+response; remove each item in batch from queue\n // (even if it was e.g. a 400, in which case retrying won't help)\n removeItemsFromQueue = true;\n }\n\n if (removeItemsFromQueue) {\n this.queue.removeItemsByID(\n _.map(batch, function(item) { return item['id']; }),\n _.bind(function(succeeded) {\n if (succeeded) {\n this.consecutiveRemovalFailures = 0;\n this.flush(); // handle next batch if the queue isn't empty\n } else {\n this.reportError('Failed to remove items from queue');\n if (++this.consecutiveRemovalFailures > 5) {\n this.reportError('Too many queue failures; disabling batching system.');\n this.stopAllBatching();\n } else {\n this.resetFlush();\n }\n }\n }, this)\n );\n\n // client-side dedupe\n _.each(batch, _.bind(function(item) {\n var itemId = item['id'];\n if (itemId) {\n this.itemIdsSentSuccessfully[itemId] = this.itemIdsSentSuccessfully[itemId] || 0;\n this.itemIdsSentSuccessfully[itemId]++;\n if (this.itemIdsSentSuccessfully[itemId] > 5) {\n this.reportError('[dupe] item ID sent too many times', {\n item: item,\n batchSize: batch.length,\n timesSent: this.itemIdsSentSuccessfully[itemId]\n });\n }\n } else {\n this.reportError('[dupe] found item with no ID while removing', {item: item});\n }\n }, this));\n }\n\n } catch(err) {\n this.reportError('Error handling API response', err);\n this.resetFlush();\n }\n }, this);\n var requestOptions = {\n method: 'POST',\n verbose: true,\n ignore_json_errors: true, // eslint-disable-line camelcase\n timeout_ms: timeoutMS // eslint-disable-line camelcase\n };\n if (options.unloading) {\n requestOptions.transport = 'sendBeacon';\n }\n logger.log('MIXPANEL REQUEST:', dataForRequest);\n this.sendRequest(dataForRequest, requestOptions, batchSendCallback);\n\n } catch(err) {\n this.reportError('Error flushing request queue', err);\n this.resetFlush();\n }\n};\n\n/**\n * Log error to global logger and optional user-defined logger.\n */\nRequestBatcher.prototype.reportError = function(msg, err) {\n logger.error.apply(logger.error, arguments);\n if (this.errorReporter) {\n try {\n if (!(err instanceof Error)) {\n err = new Error(msg);\n }\n this.errorReporter(msg, err);\n } catch(err) {\n logger.error(err);\n }\n }\n};\n\n/**\n * A function used to track a Mixpanel event (e.g. MixpanelLib.track)\n * @callback trackFunction\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Function} [callback] If provided, the callback function will be called after tracking the event.\n */\n\n/** Public **/\n\nvar GDPR_DEFAULT_PERSISTENCE_PREFIX = '__mp_opt_in_out_';\n\n/**\n * Opt the user in to data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {trackFunction} [options.track] - function used for tracking a Mixpanel event to record the opt-in action\n * @param {string} [options.trackEventName] - event name to be used for tracking the opt-in action\n * @param {Object} [options.trackProperties] - set of properties to be tracked along with the opt-in action\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction optIn(token, options) {\n _optInOut(true, token, options);\n}\n\n/**\n * Opt the user out of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-out cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-out cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-out cookie is set as secure or not\n */\nfunction optOut(token, options) {\n _optInOut(false, token, options);\n}\n\n/**\n * Check whether the user has opted in to data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} whether the user has opted in to the given opt type\n */\nfunction hasOptedIn(token, options) {\n return _getStorageValue(token, options) === '1';\n}\n\n/**\n * Check whether the user has opted out of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {boolean} [options.ignoreDnt] - flag to ignore browser DNT settings and always return false\n * @returns {boolean} whether the user has opted out of the given opt type\n */\nfunction hasOptedOut(token, options) {\n if (_hasDoNotTrackFlagOn(options)) {\n console.warn('This browser has \"Do Not Track\" enabled. This will prevent the Mixpanel SDK from sending any data. To ignore the \"Do Not Track\" browser setting, initialize the Mixpanel instance with the config \"ignore_dnt: true\"');\n return true;\n }\n var optedOut = _getStorageValue(token, options) === '0';\n if (optedOut) {\n console.warn('You are opted out of Mixpanel tracking. This will prevent the Mixpanel SDK from sending any data.');\n }\n return optedOut;\n}\n\n/**\n * Wrap a MixpanelLib method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelLib(method) {\n return _addOptOutCheck(method, function(name) {\n return this.get_config(name);\n });\n}\n\n/**\n * Wrap a MixpanelPeople method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelPeople(method) {\n return _addOptOutCheck(method, function(name) {\n return this._get_config(name);\n });\n}\n\n/**\n * Wrap a MixpanelGroup method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelGroup(method) {\n return _addOptOutCheck(method, function(name) {\n return this._get_config(name);\n });\n}\n\n/**\n * Clear the user's opt in/out status of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction clearOptInOut(token, options) {\n options = options || {};\n _getStorage(options).remove(\n _getStorageKey(token, options), !!options.crossSubdomainCookie, options.cookieDomain\n );\n}\n\n/** Private **/\n\n/**\n * Get storage util\n * @param {Object} [options]\n * @param {string} [options.persistenceType]\n * @returns {object} either _.cookie or _.localstorage\n */\nfunction _getStorage(options) {\n options = options || {};\n return options.persistenceType === 'localStorage' ? _.localStorage : _.cookie;\n}\n\n/**\n * Get the name of the cookie that is used for the given opt type (tracking, cookie, etc.)\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {string} the name of the cookie for the given opt type\n */\nfunction _getStorageKey(token, options) {\n options = options || {};\n return (options.persistencePrefix || GDPR_DEFAULT_PERSISTENCE_PREFIX) + token;\n}\n\n/**\n * Get the value of the cookie that is used for the given opt type (tracking, cookie, etc.)\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {string} the value of the cookie for the given opt type\n */\nfunction _getStorageValue(token, options) {\n return _getStorage(options).get(_getStorageKey(token, options));\n}\n\n/**\n * Check whether the user has set the DNT/doNotTrack setting to true in their browser\n * @param {Object} [options]\n * @param {string} [options.window] - alternate window object to check; used to force various DNT settings in browser tests\n * @param {boolean} [options.ignoreDnt] - flag to ignore browser DNT settings and always return false\n * @returns {boolean} whether the DNT setting is true\n */\nfunction _hasDoNotTrackFlagOn(options) {\n if (options && options.ignoreDnt) {\n return false;\n }\n var win = (options && options.window) || window$1;\n var nav = win['navigator'] || {};\n var hasDntOn = false;\n\n _.each([\n nav['doNotTrack'], // standard\n nav['msDoNotTrack'],\n win['doNotTrack']\n ], function(dntValue) {\n if (_.includes([true, 1, '1', 'yes'], dntValue)) {\n hasDntOn = true;\n }\n });\n\n return hasDntOn;\n}\n\n/**\n * Set cookie/localstorage for the user indicating that they are opted in or out for the given opt type\n * @param {boolean} optValue - whether to opt the user in or out for the given opt type\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {trackFunction} [options.track] - function used for tracking a Mixpanel event to record the opt-in action\n * @param {string} [options.trackEventName] - event name to be used for tracking the opt-in action\n * @param {Object} [options.trackProperties] - set of properties to be tracked along with the opt-in action\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction _optInOut(optValue, token, options) {\n if (!_.isString(token) || !token.length) {\n console.error('gdpr.' + (optValue ? 'optIn' : 'optOut') + ' called with an invalid token');\n return;\n }\n\n options = options || {};\n\n _getStorage(options).set(\n _getStorageKey(token, options),\n optValue ? 1 : 0,\n _.isNumber(options.cookieExpiration) ? options.cookieExpiration : null,\n !!options.crossSubdomainCookie,\n !!options.secureCookie,\n !!options.crossSiteCookie,\n options.cookieDomain\n );\n\n if (options.track && optValue) { // only track event if opting in (optValue=true)\n options.track(options.trackEventName || '$opt_in', options.trackProperties, {\n 'send_immediately': true\n });\n }\n}\n\n/**\n * Wrap a method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @param {function} getConfigValue - getter function for the Mixpanel API token and other options to be used with opt-out check\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction _addOptOutCheck(method, getConfigValue) {\n return function() {\n var optedOut = false;\n\n try {\n var token = getConfigValue.call(this, 'token');\n var ignoreDnt = getConfigValue.call(this, 'ignore_dnt');\n var persistenceType = getConfigValue.call(this, 'opt_out_tracking_persistence_type');\n var persistencePrefix = getConfigValue.call(this, 'opt_out_tracking_cookie_prefix');\n var win = getConfigValue.call(this, 'window'); // used to override window during browser tests\n\n if (token) { // if there was an issue getting the token, continue method execution as normal\n optedOut = hasOptedOut(token, {\n ignoreDnt: ignoreDnt,\n persistenceType: persistenceType,\n persistencePrefix: persistencePrefix,\n window: win\n });\n }\n } catch(err) {\n console.error('Unexpected error when checking tracking opt-out status: ' + err);\n }\n\n if (!optedOut) {\n return method.apply(this, arguments);\n }\n\n var callback = arguments[arguments.length - 1];\n if (typeof(callback) === 'function') {\n callback(0);\n }\n\n return;\n };\n}\n\n/** @const */ var SET_ACTION = '$set';\n/** @const */ var SET_ONCE_ACTION = '$set_once';\n/** @const */ var UNSET_ACTION = '$unset';\n/** @const */ var ADD_ACTION = '$add';\n/** @const */ var APPEND_ACTION = '$append';\n/** @const */ var UNION_ACTION = '$union';\n/** @const */ var REMOVE_ACTION = '$remove';\n/** @const */ var DELETE_ACTION = '$delete';\n\n// Common internal methods for mixpanel.people and mixpanel.group APIs.\n// These methods shouldn't involve network I/O.\nvar apiActions = {\n set_action: function(prop, to) {\n var data = {};\n var $set = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $set[k] = v;\n }\n }, this);\n } else {\n $set[prop] = to;\n }\n\n data[SET_ACTION] = $set;\n return data;\n },\n\n unset_action: function(prop) {\n var data = {};\n var $unset = [];\n if (!_.isArray(prop)) {\n prop = [prop];\n }\n\n _.each(prop, function(k) {\n if (!this._is_reserved_property(k)) {\n $unset.push(k);\n }\n }, this);\n\n data[UNSET_ACTION] = $unset;\n return data;\n },\n\n set_once_action: function(prop, to) {\n var data = {};\n var $set_once = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $set_once[k] = v;\n }\n }, this);\n } else {\n $set_once[prop] = to;\n }\n data[SET_ONCE_ACTION] = $set_once;\n return data;\n },\n\n union_action: function(list_name, values) {\n var data = {};\n var $union = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $union[k] = _.isArray(v) ? v : [v];\n }\n }, this);\n } else {\n $union[list_name] = _.isArray(values) ? values : [values];\n }\n data[UNION_ACTION] = $union;\n return data;\n },\n\n append_action: function(list_name, value) {\n var data = {};\n var $append = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $append[k] = v;\n }\n }, this);\n } else {\n $append[list_name] = value;\n }\n data[APPEND_ACTION] = $append;\n return data;\n },\n\n remove_action: function(list_name, value) {\n var data = {};\n var $remove = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $remove[k] = v;\n }\n }, this);\n } else {\n $remove[list_name] = value;\n }\n data[REMOVE_ACTION] = $remove;\n return data;\n },\n\n delete_action: function() {\n var data = {};\n data[DELETE_ACTION] = '';\n return data;\n }\n};\n\n/**\n * Mixpanel Group Object\n * @constructor\n */\nvar MixpanelGroup = function() {};\n\n_.extend(MixpanelGroup.prototype, apiActions);\n\nMixpanelGroup.prototype._init = function(mixpanel_instance, group_key, group_id) {\n this._mixpanel = mixpanel_instance;\n this._group_key = group_key;\n this._group_id = group_id;\n};\n\n/**\n * Set properties on a group.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').set('Location', '405 Howard');\n *\n * // or set multiple properties at once\n * mixpanel.get_group('company', 'mixpanel').set({\n * 'Location': '405 Howard',\n * 'Founded' : 2009,\n * });\n * // properties can be strings, integers, dates, or lists\n *\n * @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n * @param {*} [to] A value to set on the given property name\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.set = addOptOutCheckMixpanelGroup(function(prop, to, callback) {\n var data = this.set_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/**\n * Set properties on a group, only if they do not yet exist.\n * This will not overwrite previous group property values, unlike\n * group.set().\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').set_once('Location', '405 Howard');\n *\n * // or set multiple properties at once\n * mixpanel.get_group('company', 'mixpanel').set_once({\n * 'Location': '405 Howard',\n * 'Founded' : 2009,\n * });\n * // properties can be strings, integers, lists or dates\n *\n * @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n * @param {*} [to] A value to set on the given property name\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.set_once = addOptOutCheckMixpanelGroup(function(prop, to, callback) {\n var data = this.set_once_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/**\n * Unset properties on a group permanently.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').unset('Founded');\n *\n * @param {String} prop The name of the property.\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.unset = addOptOutCheckMixpanelGroup(function(prop, callback) {\n var data = this.unset_action(prop);\n return this._send_request(data, callback);\n});\n\n/**\n * Merge a given list with a list-valued group property, excluding duplicate values.\n *\n * ### Usage:\n *\n * // merge a value to a list, creating it if needed\n * mixpanel.get_group('company', 'mixpanel').union('Location', ['San Francisco', 'London']);\n *\n * @param {String} list_name Name of the property.\n * @param {Array} values Values to merge with the given property\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.union = addOptOutCheckMixpanelGroup(function(list_name, values, callback) {\n if (_.isObject(list_name)) {\n callback = values;\n }\n var data = this.union_action(list_name, values);\n return this._send_request(data, callback);\n});\n\n/**\n * Permanently delete a group.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').delete();\n *\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype['delete'] = addOptOutCheckMixpanelGroup(function(callback) {\n // bracket notation above prevents a minification error related to reserved words\n var data = this.delete_action();\n return this._send_request(data, callback);\n});\n\n/**\n * Remove a property from a group. The value will be ignored if doesn't exist.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').remove('Location', 'London');\n *\n * @param {String} list_name Name of the property.\n * @param {Object} value Value to remove from the given group property\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.remove = addOptOutCheckMixpanelGroup(function(list_name, value, callback) {\n var data = this.remove_action(list_name, value);\n return this._send_request(data, callback);\n});\n\nMixpanelGroup.prototype._send_request = function(data, callback) {\n data['$group_key'] = this._group_key;\n data['$group_id'] = this._group_id;\n data['$token'] = this._get_config('token');\n\n var date_encoded_data = _.encodeDates(data);\n return this._mixpanel._track_or_batch({\n type: 'groups',\n data: date_encoded_data,\n endpoint: this._get_config('api_host') + '/groups/',\n batcher: this._mixpanel.request_batchers.groups\n }, callback);\n};\n\nMixpanelGroup.prototype._is_reserved_property = function(prop) {\n return prop === '$group_key' || prop === '$group_id';\n};\n\nMixpanelGroup.prototype._get_config = function(conf) {\n return this._mixpanel.get_config(conf);\n};\n\nMixpanelGroup.prototype.toString = function() {\n return this._mixpanel.toString() + '.group.' + this._group_key + '.' + this._group_id;\n};\n\n// MixpanelGroup Exports\nMixpanelGroup.prototype['remove'] = MixpanelGroup.prototype.remove;\nMixpanelGroup.prototype['set'] = MixpanelGroup.prototype.set;\nMixpanelGroup.prototype['set_once'] = MixpanelGroup.prototype.set_once;\nMixpanelGroup.prototype['union'] = MixpanelGroup.prototype.union;\nMixpanelGroup.prototype['unset'] = MixpanelGroup.prototype.unset;\nMixpanelGroup.prototype['toString'] = MixpanelGroup.prototype.toString;\n\n/**\n * Mixpanel People Object\n * @constructor\n */\nvar MixpanelPeople = function() {};\n\n_.extend(MixpanelPeople.prototype, apiActions);\n\nMixpanelPeople.prototype._init = function(mixpanel_instance) {\n this._mixpanel = mixpanel_instance;\n};\n\n/*\n* Set properties on a user record.\n*\n* ### Usage:\n*\n* mixpanel.people.set('gender', 'm');\n*\n* // or set multiple properties at once\n* mixpanel.people.set({\n* 'Company': 'Acme',\n* 'Plan': 'Premium',\n* 'Upgrade date': new Date()\n* });\n* // properties can be strings, integers, dates, or lists\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [to] A value to set on the given property name\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.set = addOptOutCheckMixpanelPeople(function(prop, to, callback) {\n var data = this.set_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n // make sure that the referrer info has been updated and saved\n if (this._get_config('save_referrer')) {\n this._mixpanel['persistence'].update_referrer_info(document.referrer);\n }\n\n // update $set object with default people properties\n data[SET_ACTION] = _.extend(\n {},\n _.info.people_properties(),\n this._mixpanel['persistence'].get_referrer_info(),\n data[SET_ACTION]\n );\n return this._send_request(data, callback);\n});\n\n/*\n* Set properties on a user record, only if they do not yet exist.\n* This will not overwrite previous people property values, unlike\n* people.set().\n*\n* ### Usage:\n*\n* mixpanel.people.set_once('First Login Date', new Date());\n*\n* // or set multiple properties at once\n* mixpanel.people.set_once({\n* 'First Login Date': new Date(),\n* 'Starting Plan': 'Premium'\n* });\n*\n* // properties can be strings, integers or dates\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [to] A value to set on the given property name\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.set_once = addOptOutCheckMixpanelPeople(function(prop, to, callback) {\n var data = this.set_once_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/*\n* Unset properties on a user record (permanently removes the properties and their values from a profile).\n*\n* ### Usage:\n*\n* mixpanel.people.unset('gender');\n*\n* // or unset multiple properties at once\n* mixpanel.people.unset(['gender', 'Company']);\n*\n* @param {Array|String} prop If a string, this is the name of the property. If an array, this is a list of property names.\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.unset = addOptOutCheckMixpanelPeople(function(prop, callback) {\n var data = this.unset_action(prop);\n return this._send_request(data, callback);\n});\n\n/*\n* Increment/decrement numeric people analytics properties.\n*\n* ### Usage:\n*\n* mixpanel.people.increment('page_views', 1);\n*\n* // or, for convenience, if you're just incrementing a counter by\n* // 1, you can simply do\n* mixpanel.people.increment('page_views');\n*\n* // to decrement a counter, pass a negative number\n* mixpanel.people.increment('credits_left', -1);\n*\n* // like mixpanel.people.set(), you can increment multiple\n* // properties at once:\n* mixpanel.people.increment({\n* counter1: 1,\n* counter2: 6\n* });\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and numeric values.\n* @param {Number} [by] An amount to increment the given property\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.increment = addOptOutCheckMixpanelPeople(function(prop, by, callback) {\n var data = {};\n var $add = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n if (isNaN(parseFloat(v))) {\n console.error('Invalid increment value passed to mixpanel.people.increment - must be a number');\n return;\n } else {\n $add[k] = v;\n }\n }\n }, this);\n callback = by;\n } else {\n // convenience: mixpanel.people.increment('property'); will\n // increment 'property' by 1\n if (_.isUndefined(by)) {\n by = 1;\n }\n $add[prop] = by;\n }\n data[ADD_ACTION] = $add;\n\n return this._send_request(data, callback);\n});\n\n/*\n* Append a value to a list-valued people analytics property.\n*\n* ### Usage:\n*\n* // append a value to a list, creating it if needed\n* mixpanel.people.append('pages_visited', 'homepage');\n*\n* // like mixpanel.people.set(), you can append multiple\n* // properties at once:\n* mixpanel.people.append({\n* list1: 'bob',\n* list2: 123\n* });\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] value An item to append to the list\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.append = addOptOutCheckMixpanelPeople(function(list_name, value, callback) {\n if (_.isObject(list_name)) {\n callback = value;\n }\n var data = this.append_action(list_name, value);\n return this._send_request(data, callback);\n});\n\n/*\n* Remove a value from a list-valued people analytics property.\n*\n* ### Usage:\n*\n* mixpanel.people.remove('School', 'UCB');\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] value Item to remove from the list\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.remove = addOptOutCheckMixpanelPeople(function(list_name, value, callback) {\n if (_.isObject(list_name)) {\n callback = value;\n }\n var data = this.remove_action(list_name, value);\n return this._send_request(data, callback);\n});\n\n/*\n* Merge a given list with a list-valued people analytics property,\n* excluding duplicate values.\n*\n* ### Usage:\n*\n* // merge a value to a list, creating it if needed\n* mixpanel.people.union('pages_visited', 'homepage');\n*\n* // like mixpanel.people.set(), you can append multiple\n* // properties at once:\n* mixpanel.people.union({\n* list1: 'bob',\n* list2: 123\n* });\n*\n* // like mixpanel.people.append(), you can append multiple\n* // values to the same list:\n* mixpanel.people.union({\n* list1: ['bob', 'billy']\n* });\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] Value / values to merge with the given property\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.union = addOptOutCheckMixpanelPeople(function(list_name, values, callback) {\n if (_.isObject(list_name)) {\n callback = values;\n }\n var data = this.union_action(list_name, values);\n return this._send_request(data, callback);\n});\n\n/*\n * Record that you have charged the current user a certain amount\n * of money. Charges recorded with track_charge() will appear in the\n * Mixpanel revenue report.\n *\n * ### Usage:\n *\n * // charge a user $50\n * mixpanel.people.track_charge(50);\n *\n * // charge a user $30.50 on the 2nd of january\n * mixpanel.people.track_charge(30.50, {\n * '$time': new Date('jan 1 2012')\n * });\n *\n * @param {Number} amount The amount of money charged to the current user\n * @param {Object} [properties] An associative array of properties associated with the charge\n * @param {Function} [callback] If provided, the callback will be called when the server responds\n * @deprecated\n */\nMixpanelPeople.prototype.track_charge = addOptOutCheckMixpanelPeople(function(amount, properties, callback) {\n if (!_.isNumber(amount)) {\n amount = parseFloat(amount);\n if (isNaN(amount)) {\n console.error('Invalid value passed to mixpanel.people.track_charge - must be a number');\n return;\n }\n }\n\n return this.append('$transactions', _.extend({\n '$amount': amount\n }, properties), callback);\n});\n\n/*\n * Permanently clear all revenue report transactions from the\n * current user's people analytics profile.\n *\n * ### Usage:\n *\n * mixpanel.people.clear_charges();\n *\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n * @deprecated\n */\nMixpanelPeople.prototype.clear_charges = function(callback) {\n return this.set('$transactions', [], callback);\n};\n\n/*\n* Permanently deletes the current people analytics profile from\n* Mixpanel (using the current distinct_id).\n*\n* ### Usage:\n*\n* // remove the all data you have stored about the current user\n* mixpanel.people.delete_user();\n*\n*/\nMixpanelPeople.prototype.delete_user = function() {\n if (!this._identify_called()) {\n console.error('mixpanel.people.delete_user() requires you to call identify() first');\n return;\n }\n var data = {'$delete': this._mixpanel.get_distinct_id()};\n return this._send_request(data);\n};\n\nMixpanelPeople.prototype.toString = function() {\n return this._mixpanel.toString() + '.people';\n};\n\nMixpanelPeople.prototype._send_request = function(data, callback) {\n data['$token'] = this._get_config('token');\n data['$distinct_id'] = this._mixpanel.get_distinct_id();\n var device_id = this._mixpanel.get_property('$device_id');\n var user_id = this._mixpanel.get_property('$user_id');\n var had_persisted_distinct_id = this._mixpanel.get_property('$had_persisted_distinct_id');\n if (device_id) {\n data['$device_id'] = device_id;\n }\n if (user_id) {\n data['$user_id'] = user_id;\n }\n if (had_persisted_distinct_id) {\n data['$had_persisted_distinct_id'] = had_persisted_distinct_id;\n }\n\n var date_encoded_data = _.encodeDates(data);\n\n if (!this._identify_called()) {\n this._enqueue(data);\n if (!_.isUndefined(callback)) {\n if (this._get_config('verbose')) {\n callback({status: -1, error: null});\n } else {\n callback(-1);\n }\n }\n return _.truncate(date_encoded_data, 255);\n }\n\n return this._mixpanel._track_or_batch({\n type: 'people',\n data: date_encoded_data,\n endpoint: this._get_config('api_host') + '/engage/',\n batcher: this._mixpanel.request_batchers.people\n }, callback);\n};\n\nMixpanelPeople.prototype._get_config = function(conf_var) {\n return this._mixpanel.get_config(conf_var);\n};\n\nMixpanelPeople.prototype._identify_called = function() {\n return this._mixpanel._flags.identify_called === true;\n};\n\n// Queue up engage operations if identify hasn't been called yet.\nMixpanelPeople.prototype._enqueue = function(data) {\n if (SET_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(SET_ACTION, data);\n } else if (SET_ONCE_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(SET_ONCE_ACTION, data);\n } else if (UNSET_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(UNSET_ACTION, data);\n } else if (ADD_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(ADD_ACTION, data);\n } else if (APPEND_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(APPEND_ACTION, data);\n } else if (REMOVE_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(REMOVE_ACTION, data);\n } else if (UNION_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(UNION_ACTION, data);\n } else {\n console.error('Invalid call to _enqueue():', data);\n }\n};\n\nMixpanelPeople.prototype._flush_one_queue = function(action, action_method, callback, queue_to_params_fn) {\n var _this = this;\n var queued_data = _.extend({}, this._mixpanel['persistence']._get_queue(action));\n var action_params = queued_data;\n\n if (!_.isUndefined(queued_data) && _.isObject(queued_data) && !_.isEmptyObject(queued_data)) {\n _this._mixpanel['persistence']._pop_from_people_queue(action, queued_data);\n if (queue_to_params_fn) {\n action_params = queue_to_params_fn(queued_data);\n }\n action_method.call(_this, action_params, function(response, data) {\n // on bad response, we want to add it back to the queue\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(action, queued_data);\n }\n if (!_.isUndefined(callback)) {\n callback(response, data);\n }\n });\n }\n};\n\n// Flush queued engage operations - order does not matter,\n// and there are network level race conditions anyway\nMixpanelPeople.prototype._flush = function(\n _set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback\n) {\n var _this = this;\n var $append_queue = this._mixpanel['persistence']._get_queue(APPEND_ACTION);\n var $remove_queue = this._mixpanel['persistence']._get_queue(REMOVE_ACTION);\n\n this._flush_one_queue(SET_ACTION, this.set, _set_callback);\n this._flush_one_queue(SET_ONCE_ACTION, this.set_once, _set_once_callback);\n this._flush_one_queue(UNSET_ACTION, this.unset, _unset_callback, function(queue) { return _.keys(queue); });\n this._flush_one_queue(ADD_ACTION, this.increment, _add_callback);\n this._flush_one_queue(UNION_ACTION, this.union, _union_callback);\n\n // we have to fire off each $append individually since there is\n // no concat method server side\n if (!_.isUndefined($append_queue) && _.isArray($append_queue) && $append_queue.length) {\n var $append_item;\n var append_callback = function(response, data) {\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(APPEND_ACTION, $append_item);\n }\n if (!_.isUndefined(_append_callback)) {\n _append_callback(response, data);\n }\n };\n for (var i = $append_queue.length - 1; i >= 0; i--) {\n $append_item = $append_queue.pop();\n if (!_.isEmptyObject($append_item)) {\n _this.append($append_item, append_callback);\n }\n }\n // Save the shortened append queue\n _this._mixpanel['persistence'].save();\n }\n\n // same for $remove\n if (!_.isUndefined($remove_queue) && _.isArray($remove_queue) && $remove_queue.length) {\n var $remove_item;\n var remove_callback = function(response, data) {\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(REMOVE_ACTION, $remove_item);\n }\n if (!_.isUndefined(_remove_callback)) {\n _remove_callback(response, data);\n }\n };\n for (var j = $remove_queue.length - 1; j >= 0; j--) {\n $remove_item = $remove_queue.pop();\n if (!_.isEmptyObject($remove_item)) {\n _this.remove($remove_item, remove_callback);\n }\n }\n _this._mixpanel['persistence'].save();\n }\n};\n\nMixpanelPeople.prototype._is_reserved_property = function(prop) {\n return prop === '$distinct_id' || prop === '$token' || prop === '$device_id' || prop === '$user_id' || prop === '$had_persisted_distinct_id';\n};\n\n// MixpanelPeople Exports\nMixpanelPeople.prototype['set'] = MixpanelPeople.prototype.set;\nMixpanelPeople.prototype['set_once'] = MixpanelPeople.prototype.set_once;\nMixpanelPeople.prototype['unset'] = MixpanelPeople.prototype.unset;\nMixpanelPeople.prototype['increment'] = MixpanelPeople.prototype.increment;\nMixpanelPeople.prototype['append'] = MixpanelPeople.prototype.append;\nMixpanelPeople.prototype['remove'] = MixpanelPeople.prototype.remove;\nMixpanelPeople.prototype['union'] = MixpanelPeople.prototype.union;\nMixpanelPeople.prototype['track_charge'] = MixpanelPeople.prototype.track_charge;\nMixpanelPeople.prototype['clear_charges'] = MixpanelPeople.prototype.clear_charges;\nMixpanelPeople.prototype['delete_user'] = MixpanelPeople.prototype.delete_user;\nMixpanelPeople.prototype['toString'] = MixpanelPeople.prototype.toString;\n\n/*\n * Constants\n */\n/** @const */ var SET_QUEUE_KEY = '__mps';\n/** @const */ var SET_ONCE_QUEUE_KEY = '__mpso';\n/** @const */ var UNSET_QUEUE_KEY = '__mpus';\n/** @const */ var ADD_QUEUE_KEY = '__mpa';\n/** @const */ var APPEND_QUEUE_KEY = '__mpap';\n/** @const */ var REMOVE_QUEUE_KEY = '__mpr';\n/** @const */ var UNION_QUEUE_KEY = '__mpu';\n// This key is deprecated, but we want to check for it to see whether aliasing is allowed.\n/** @const */ var PEOPLE_DISTINCT_ID_KEY = '$people_distinct_id';\n/** @const */ var ALIAS_ID_KEY = '__alias';\n/** @const */ var EVENT_TIMERS_KEY = '__timers';\n/** @const */ var RESERVED_PROPERTIES = [\n SET_QUEUE_KEY,\n SET_ONCE_QUEUE_KEY,\n UNSET_QUEUE_KEY,\n ADD_QUEUE_KEY,\n APPEND_QUEUE_KEY,\n REMOVE_QUEUE_KEY,\n UNION_QUEUE_KEY,\n PEOPLE_DISTINCT_ID_KEY,\n ALIAS_ID_KEY,\n EVENT_TIMERS_KEY\n];\n\n/**\n * Mixpanel Persistence Object\n * @constructor\n */\nvar MixpanelPersistence = function(config) {\n this['props'] = {};\n this.campaign_params_saved = false;\n\n if (config['persistence_name']) {\n this.name = 'mp_' + config['persistence_name'];\n } else {\n this.name = 'mp_' + config['token'] + '_mixpanel';\n }\n\n var storage_type = config['persistence'];\n if (storage_type !== 'cookie' && storage_type !== 'localStorage') {\n console.critical('Unknown persistence type ' + storage_type + '; falling back to cookie');\n storage_type = config['persistence'] = 'cookie';\n }\n\n if (storage_type === 'localStorage' && _.localStorage.is_supported()) {\n this.storage = _.localStorage;\n } else {\n this.storage = _.cookie;\n }\n\n this.load();\n this.update_config(config);\n this.upgrade(config);\n this.save();\n};\n\nMixpanelPersistence.prototype.properties = function() {\n var p = {};\n // Filter out reserved properties\n _.each(this['props'], function(v, k) {\n if (!_.include(RESERVED_PROPERTIES, k)) {\n p[k] = v;\n }\n });\n return p;\n};\n\nMixpanelPersistence.prototype.load = function() {\n if (this.disabled) { return; }\n\n var entry = this.storage.parse(this.name);\n\n if (entry) {\n this['props'] = _.extend({}, entry);\n }\n};\n\nMixpanelPersistence.prototype.upgrade = function(config) {\n var upgrade_from_old_lib = config['upgrade'],\n old_cookie_name,\n old_cookie;\n\n if (upgrade_from_old_lib) {\n old_cookie_name = 'mp_super_properties';\n // Case where they had a custom cookie name before.\n if (typeof(upgrade_from_old_lib) === 'string') {\n old_cookie_name = upgrade_from_old_lib;\n }\n\n old_cookie = this.storage.parse(old_cookie_name);\n\n // remove the cookie\n this.storage.remove(old_cookie_name);\n this.storage.remove(old_cookie_name, true);\n\n if (old_cookie) {\n this['props'] = _.extend(\n this['props'],\n old_cookie['all'],\n old_cookie['events']\n );\n }\n }\n\n if (!config['cookie_name'] && config['name'] !== 'mixpanel') {\n // special case to handle people with cookies of the form\n // mp_TOKEN_INSTANCENAME from the first release of this library\n old_cookie_name = 'mp_' + config['token'] + '_' + config['name'];\n old_cookie = this.storage.parse(old_cookie_name);\n\n if (old_cookie) {\n this.storage.remove(old_cookie_name);\n this.storage.remove(old_cookie_name, true);\n\n // Save the prop values that were in the cookie from before -\n // this should only happen once as we delete the old one.\n this.register_once(old_cookie);\n }\n }\n\n if (this.storage === _.localStorage) {\n old_cookie = _.cookie.parse(this.name);\n\n _.cookie.remove(this.name);\n _.cookie.remove(this.name, true);\n\n if (old_cookie) {\n this.register_once(old_cookie);\n }\n }\n};\n\nMixpanelPersistence.prototype.save = function() {\n if (this.disabled) { return; }\n this.storage.set(\n this.name,\n _.JSONEncode(this['props']),\n this.expire_days,\n this.cross_subdomain,\n this.secure,\n this.cross_site,\n this.cookie_domain\n );\n};\n\nMixpanelPersistence.prototype.remove = function() {\n // remove both domain and subdomain cookies\n this.storage.remove(this.name, false, this.cookie_domain);\n this.storage.remove(this.name, true, this.cookie_domain);\n};\n\n// removes the storage entry and deletes all loaded data\n// forced name for tests\nMixpanelPersistence.prototype.clear = function() {\n this.remove();\n this['props'] = {};\n};\n\n/**\n* @param {Object} props\n* @param {*=} default_value\n* @param {number=} days\n*/\nMixpanelPersistence.prototype.register_once = function(props, default_value, days) {\n if (_.isObject(props)) {\n if (typeof(default_value) === 'undefined') { default_value = 'None'; }\n this.expire_days = (typeof(days) === 'undefined') ? this.default_expiry : days;\n\n _.each(props, function(val, prop) {\n if (!this['props'].hasOwnProperty(prop) || this['props'][prop] === default_value) {\n this['props'][prop] = val;\n }\n }, this);\n\n this.save();\n\n return true;\n }\n return false;\n};\n\n/**\n* @param {Object} props\n* @param {number=} days\n*/\nMixpanelPersistence.prototype.register = function(props, days) {\n if (_.isObject(props)) {\n this.expire_days = (typeof(days) === 'undefined') ? this.default_expiry : days;\n\n _.extend(this['props'], props);\n\n this.save();\n\n return true;\n }\n return false;\n};\n\nMixpanelPersistence.prototype.unregister = function(prop) {\n if (prop in this['props']) {\n delete this['props'][prop];\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.update_search_keyword = function(referrer) {\n this.register(_.info.searchInfo(referrer));\n};\n\n// EXPORTED METHOD, we test this directly.\nMixpanelPersistence.prototype.update_referrer_info = function(referrer) {\n // If referrer doesn't exist, we want to note the fact that it was type-in traffic.\n this.register_once({\n '$initial_referrer': referrer || '$direct',\n '$initial_referring_domain': _.info.referringDomain(referrer) || '$direct'\n }, '');\n};\n\nMixpanelPersistence.prototype.get_referrer_info = function() {\n return _.strip_empty_properties({\n '$initial_referrer': this['props']['$initial_referrer'],\n '$initial_referring_domain': this['props']['$initial_referring_domain']\n });\n};\n\n// safely fills the passed in object with stored properties,\n// does not override any properties defined in both\n// returns the passed in object\nMixpanelPersistence.prototype.safe_merge = function(props) {\n _.each(this['props'], function(val, prop) {\n if (!(prop in props)) {\n props[prop] = val;\n }\n });\n\n return props;\n};\n\nMixpanelPersistence.prototype.update_config = function(config) {\n this.default_expiry = this.expire_days = config['cookie_expiration'];\n this.set_disabled(config['disable_persistence']);\n this.set_cookie_domain(config['cookie_domain']);\n this.set_cross_site(config['cross_site_cookie']);\n this.set_cross_subdomain(config['cross_subdomain_cookie']);\n this.set_secure(config['secure_cookie']);\n};\n\nMixpanelPersistence.prototype.set_disabled = function(disabled) {\n this.disabled = disabled;\n if (this.disabled) {\n this.remove();\n } else {\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cookie_domain = function(cookie_domain) {\n if (cookie_domain !== this.cookie_domain) {\n this.remove();\n this.cookie_domain = cookie_domain;\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cross_site = function(cross_site) {\n if (cross_site !== this.cross_site) {\n this.cross_site = cross_site;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cross_subdomain = function(cross_subdomain) {\n if (cross_subdomain !== this.cross_subdomain) {\n this.cross_subdomain = cross_subdomain;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.get_cross_subdomain = function() {\n return this.cross_subdomain;\n};\n\nMixpanelPersistence.prototype.set_secure = function(secure) {\n if (secure !== this.secure) {\n this.secure = secure ? true : false;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype._add_to_people_queue = function(queue, data) {\n var q_key = this._get_queue_key(queue),\n q_data = data[queue],\n set_q = this._get_or_create_queue(SET_ACTION),\n set_once_q = this._get_or_create_queue(SET_ONCE_ACTION),\n unset_q = this._get_or_create_queue(UNSET_ACTION),\n add_q = this._get_or_create_queue(ADD_ACTION),\n union_q = this._get_or_create_queue(UNION_ACTION),\n remove_q = this._get_or_create_queue(REMOVE_ACTION, []),\n append_q = this._get_or_create_queue(APPEND_ACTION, []);\n\n if (q_key === SET_QUEUE_KEY) {\n // Update the set queue - we can override any existing values\n _.extend(set_q, q_data);\n // if there was a pending increment, override it\n // with the set.\n this._pop_from_people_queue(ADD_ACTION, q_data);\n // if there was a pending union, override it\n // with the set.\n this._pop_from_people_queue(UNION_ACTION, q_data);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === SET_ONCE_QUEUE_KEY) {\n // only queue the data if there is not already a set_once call for it.\n _.each(q_data, function(v, k) {\n if (!(k in set_once_q)) {\n set_once_q[k] = v;\n }\n });\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === UNSET_QUEUE_KEY) {\n _.each(q_data, function(prop) {\n\n // undo previously-queued actions on this key\n _.each([set_q, set_once_q, add_q, union_q], function(enqueued_obj) {\n if (prop in enqueued_obj) {\n delete enqueued_obj[prop];\n }\n });\n _.each(append_q, function(append_obj) {\n if (prop in append_obj) {\n delete append_obj[prop];\n }\n });\n\n unset_q[prop] = true;\n\n });\n } else if (q_key === ADD_QUEUE_KEY) {\n _.each(q_data, function(v, k) {\n // If it exists in the set queue, increment\n // the value\n if (k in set_q) {\n set_q[k] += v;\n } else {\n // If it doesn't exist, update the add\n // queue\n if (!(k in add_q)) {\n add_q[k] = 0;\n }\n add_q[k] += v;\n }\n }, this);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === UNION_QUEUE_KEY) {\n _.each(q_data, function(v, k) {\n if (_.isArray(v)) {\n if (!(k in union_q)) {\n union_q[k] = [];\n }\n // We may send duplicates, the server will dedup them.\n union_q[k] = union_q[k].concat(v);\n }\n });\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === REMOVE_QUEUE_KEY) {\n remove_q.push(q_data);\n this._pop_from_people_queue(APPEND_ACTION, q_data);\n } else if (q_key === APPEND_QUEUE_KEY) {\n append_q.push(q_data);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n }\n\n console.log('MIXPANEL PEOPLE REQUEST (QUEUED, PENDING IDENTIFY):');\n console.log(data);\n\n this.save();\n};\n\nMixpanelPersistence.prototype._pop_from_people_queue = function(queue, data) {\n var q = this._get_queue(queue);\n if (!_.isUndefined(q)) {\n _.each(data, function(v, k) {\n if (queue === APPEND_ACTION || queue === REMOVE_ACTION) {\n // list actions: only remove if both k+v match\n // e.g. remove should not override append in a case like\n // append({foo: 'bar'}); remove({foo: 'qux'})\n _.each(q, function(queued_action) {\n if (queued_action[k] === v) {\n delete queued_action[k];\n }\n });\n } else {\n delete q[k];\n }\n }, this);\n\n this.save();\n }\n};\n\nMixpanelPersistence.prototype._get_queue_key = function(queue) {\n if (queue === SET_ACTION) {\n return SET_QUEUE_KEY;\n } else if (queue === SET_ONCE_ACTION) {\n return SET_ONCE_QUEUE_KEY;\n } else if (queue === UNSET_ACTION) {\n return UNSET_QUEUE_KEY;\n } else if (queue === ADD_ACTION) {\n return ADD_QUEUE_KEY;\n } else if (queue === APPEND_ACTION) {\n return APPEND_QUEUE_KEY;\n } else if (queue === REMOVE_ACTION) {\n return REMOVE_QUEUE_KEY;\n } else if (queue === UNION_ACTION) {\n return UNION_QUEUE_KEY;\n } else {\n console.error('Invalid queue:', queue);\n }\n};\n\nMixpanelPersistence.prototype._get_queue = function(queue) {\n return this['props'][this._get_queue_key(queue)];\n};\nMixpanelPersistence.prototype._get_or_create_queue = function(queue, default_val) {\n var key = this._get_queue_key(queue);\n default_val = _.isUndefined(default_val) ? {} : default_val;\n\n return this['props'][key] || (this['props'][key] = default_val);\n};\n\nMixpanelPersistence.prototype.set_event_timer = function(event_name, timestamp) {\n var timers = this['props'][EVENT_TIMERS_KEY] || {};\n timers[event_name] = timestamp;\n this['props'][EVENT_TIMERS_KEY] = timers;\n this.save();\n};\n\nMixpanelPersistence.prototype.remove_event_timer = function(event_name) {\n var timers = this['props'][EVENT_TIMERS_KEY] || {};\n var timestamp = timers[event_name];\n if (!_.isUndefined(timestamp)) {\n delete this['props'][EVENT_TIMERS_KEY][event_name];\n this.save();\n }\n return timestamp;\n};\n\n/*\n * Mixpanel JS Library\n *\n * Copyright 2012, Mixpanel, Inc. All Rights Reserved\n * http://mixpanel.com/\n *\n * Includes portions of Underscore.js\n * http://documentcloud.github.com/underscore/\n * (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.\n * Released under the MIT License.\n */\n\n// ==ClosureCompiler==\n// @compilation_level ADVANCED_OPTIMIZATIONS\n// @output_file_name mixpanel-2.8.min.js\n// ==/ClosureCompiler==\n\n/*\nSIMPLE STYLE GUIDE:\n\nthis.x === public function\nthis._x === internal - only use within this file\nthis.__x === private - only use within the class\n\nGlobals should be all caps\n*/\n\nvar init_type; // MODULE or SNIPPET loader\nvar mixpanel_master; // main mixpanel instance / object\nvar INIT_MODULE = 0;\nvar INIT_SNIPPET = 1;\n\nvar IDENTITY_FUNC = function(x) {return x;};\nvar NOOP_FUNC = function() {};\n\n/** @const */ var PRIMARY_INSTANCE_NAME = 'mixpanel';\n/** @const */ var PAYLOAD_TYPE_BASE64 = 'base64';\n/** @const */ var PAYLOAD_TYPE_JSON = 'json';\n/** @const */ var DEVICE_ID_PREFIX = '$device:';\n\n\n/*\n * Dynamic... constants? Is that an oxymoron?\n */\n// http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/\n// https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#withCredentials\nvar USE_XHR = (window$1.XMLHttpRequest && 'withCredentials' in new XMLHttpRequest());\n\n// IE<10 does not support cross-origin XHR's but script tags\n// with defer won't block window.onload; ENQUEUE_REQUESTS\n// should only be true for Opera<12\nvar ENQUEUE_REQUESTS = !USE_XHR && (userAgent.indexOf('MSIE') === -1) && (userAgent.indexOf('Mozilla') === -1);\n\n// save reference to navigator.sendBeacon so it can be minified\nvar sendBeacon = null;\nif (navigator['sendBeacon']) {\n sendBeacon = function() {\n // late reference to navigator.sendBeacon to allow patching/spying\n return navigator['sendBeacon'].apply(navigator, arguments);\n };\n}\n\n/*\n * Module-level globals\n */\nvar DEFAULT_CONFIG = {\n 'api_host': 'https://api-js.mixpanel.com',\n 'api_method': 'POST',\n 'api_transport': 'XHR',\n 'api_payload_format': PAYLOAD_TYPE_BASE64,\n 'app_host': 'https://mixpanel.com',\n 'cdn': 'https://cdn.mxpnl.com',\n 'cross_site_cookie': false,\n 'cross_subdomain_cookie': true,\n 'error_reporter': NOOP_FUNC,\n 'persistence': 'cookie',\n 'persistence_name': '',\n 'cookie_domain': '',\n 'cookie_name': '',\n 'loaded': NOOP_FUNC,\n 'track_marketing': true,\n 'track_pageview': false,\n 'skip_first_touch_marketing': false,\n 'store_google': true,\n 'save_referrer': true,\n 'test': false,\n 'verbose': false,\n 'img': false,\n 'debug': false,\n 'track_links_timeout': 300,\n 'cookie_expiration': 365,\n 'upgrade': false,\n 'disable_persistence': false,\n 'disable_cookie': false,\n 'secure_cookie': false,\n 'ip': true,\n 'opt_out_tracking_by_default': false,\n 'opt_out_persistence_by_default': false,\n 'opt_out_tracking_persistence_type': 'localStorage',\n 'opt_out_tracking_cookie_prefix': null,\n 'property_blacklist': [],\n 'xhr_headers': {}, // { header: value, header2: value }\n 'ignore_dnt': false,\n 'batch_requests': true,\n 'batch_size': 50,\n 'batch_flush_interval_ms': 5000,\n 'batch_request_timeout_ms': 90000,\n 'batch_autostart': true,\n 'hooks': {}\n};\n\nvar DOM_LOADED = false;\n\n/**\n * Mixpanel Library Object\n * @constructor\n */\nvar MixpanelLib = function() {};\n\n\n/**\n * create_mplib(token:string, config:object, name:string)\n *\n * This function is used by the init method of MixpanelLib objects\n * as well as the main initializer at the end of the JSLib (that\n * initializes document.mixpanel as well as any additional instances\n * declared before this file has loaded).\n */\nvar create_mplib = function(token, config, name) {\n var instance,\n target = (name === PRIMARY_INSTANCE_NAME) ? mixpanel_master : mixpanel_master[name];\n\n if (target && init_type === INIT_MODULE) {\n instance = target;\n } else {\n if (target && !_.isArray(target)) {\n console.error('You have already initialized ' + name);\n return;\n }\n instance = new MixpanelLib();\n }\n\n instance._cached_groups = {}; // cache groups in a pool\n\n instance._init(token, config, name);\n\n instance['people'] = new MixpanelPeople();\n instance['people']._init(instance);\n\n if (!instance.get_config('skip_first_touch_marketing')) {\n // We need null UTM params in the object because\n // UTM parameters act as a tuple. If any UTM param\n // is present, then we set all UTM params including\n // empty ones together\n var utm_params = _.info.campaignParams(null);\n var initial_utm_params = {};\n var has_utm = false;\n _.each(utm_params, function(utm_value, utm_key) {\n initial_utm_params['initial_' + utm_key] = utm_value;\n if (utm_value) {\n has_utm = true;\n }\n });\n if (has_utm) {\n instance['people'].set_once(initial_utm_params);\n }\n }\n\n // if any instance on the page has debug = true, we set the\n // global debug to be true\n Config.DEBUG = Config.DEBUG || instance.get_config('debug');\n\n // if target is not defined, we called init after the lib already\n // loaded, so there won't be an array of things to execute\n if (!_.isUndefined(target) && _.isArray(target)) {\n // Crunch through the people queue first - we queue this data up &\n // flush on identify, so it's better to do all these operations first\n instance._execute_array.call(instance['people'], target['people']);\n instance._execute_array(target);\n }\n\n return instance;\n};\n\n// Initialization methods\n\n/**\n * This function initializes a new instance of the Mixpanel tracking object.\n * All new instances are added to the main mixpanel object as sub properties (such as\n * mixpanel.library_name) and also returned by this function. To define a\n * second instance on the page, you would call:\n *\n * mixpanel.init('new token', { your: 'config' }, 'library_name');\n *\n * and use it like so:\n *\n * mixpanel.library_name.track(...);\n *\n * @param {String} token Your Mixpanel API token\n * @param {Object} [config] A dictionary of config options to override. See a list of default config options.\n * @param {String} [name] The name for the new mixpanel instance that you want created\n */\nMixpanelLib.prototype.init = function (token, config, name) {\n if (_.isUndefined(name)) {\n this.report_error('You must name your new library: init(token, config, name)');\n return;\n }\n if (name === PRIMARY_INSTANCE_NAME) {\n this.report_error('You must initialize the main mixpanel object right after you include the Mixpanel js snippet');\n return;\n }\n\n var instance = create_mplib(token, config, name);\n mixpanel_master[name] = instance;\n instance._loaded();\n\n return instance;\n};\n\n// mixpanel._init(token:string, config:object, name:string)\n//\n// This function sets up the current instance of the mixpanel\n// library. The difference between this method and the init(...)\n// method is this one initializes the actual instance, whereas the\n// init(...) method sets up a new library and calls _init on it.\n//\nMixpanelLib.prototype._init = function(token, config, name) {\n config = config || {};\n\n this['__loaded'] = true;\n this['config'] = {};\n\n var variable_features = {};\n\n // default to JSON payload for standard mixpanel.com API hosts\n if (!('api_payload_format' in config)) {\n var api_host = config['api_host'] || DEFAULT_CONFIG['api_host'];\n if (api_host.match(/\\.mixpanel\\.com/)) {\n variable_features['api_payload_format'] = PAYLOAD_TYPE_JSON;\n }\n }\n\n this.set_config(_.extend({}, DEFAULT_CONFIG, variable_features, config, {\n 'name': name,\n 'token': token,\n 'callback_fn': ((name === PRIMARY_INSTANCE_NAME) ? name : PRIMARY_INSTANCE_NAME + '.' + name) + '._jsc'\n }));\n\n this['_jsc'] = NOOP_FUNC;\n\n this.__dom_loaded_queue = [];\n this.__request_queue = [];\n this.__disabled_events = [];\n this._flags = {\n 'disable_all_events': false,\n 'identify_called': false\n };\n\n // set up request queueing/batching\n this.request_batchers = {};\n this._batch_requests = this.get_config('batch_requests');\n if (this._batch_requests) {\n if (!_.localStorage.is_supported(true) || !USE_XHR) {\n this._batch_requests = false;\n console.log('Turning off Mixpanel request-queueing; needs XHR and localStorage support');\n } else {\n this.init_batchers();\n if (sendBeacon && window$1.addEventListener) {\n // Before page closes or hides (user tabs away etc), attempt to flush any events\n // queued up via navigator.sendBeacon. Since sendBeacon doesn't report success/failure,\n // events will not be removed from the persistent store; if the site is loaded again,\n // the events will be flushed again on startup and deduplicated on the Mixpanel server\n // side.\n // There is no reliable way to capture only page close events, so we lean on the\n // visibilitychange and pagehide events as recommended at\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/unload_event#usage_notes.\n // These events fire when the user clicks away from the current page/tab, so will occur\n // more frequently than page unload, but are the only mechanism currently for capturing\n // this scenario somewhat reliably.\n var flush_on_unload = _.bind(function() {\n if (!this.request_batchers.events.stopped) {\n this.request_batchers.events.flush({unloading: true});\n }\n }, this);\n window$1.addEventListener('pagehide', function(ev) {\n if (ev['persisted']) {\n flush_on_unload();\n }\n });\n window$1.addEventListener('visibilitychange', function() {\n if (document$1['visibilityState'] === 'hidden') {\n flush_on_unload();\n }\n });\n }\n }\n }\n\n this['persistence'] = this['cookie'] = new MixpanelPersistence(this['config']);\n this.unpersisted_superprops = {};\n this._gdpr_init();\n\n var uuid = _.UUID();\n if (!this.get_distinct_id()) {\n // There is no need to set the distinct id\n // or the device id if something was already stored\n // in the persitence\n this.register_once({\n 'distinct_id': DEVICE_ID_PREFIX + uuid,\n '$device_id': uuid\n }, '');\n }\n\n if (this.get_config('track_pageview')) {\n this.track_pageview();\n }\n};\n\n// Private methods\n\nMixpanelLib.prototype._loaded = function() {\n this.get_config('loaded')(this);\n this._set_default_superprops();\n};\n\n// update persistence with info on referrer, UTM params, etc\nMixpanelLib.prototype._set_default_superprops = function() {\n this['persistence'].update_search_keyword(document$1.referrer);\n if (this.get_config('store_google')) {\n this.register(_.info.campaignParams(), {persistent: false});\n }\n if (this.get_config('save_referrer')) {\n this['persistence'].update_referrer_info(document$1.referrer);\n }\n};\n\nMixpanelLib.prototype._dom_loaded = function() {\n _.each(this.__dom_loaded_queue, function(item) {\n this._track_dom.apply(this, item);\n }, this);\n\n if (!this.has_opted_out_tracking()) {\n _.each(this.__request_queue, function(item) {\n this._send_request.apply(this, item);\n }, this);\n }\n\n delete this.__dom_loaded_queue;\n delete this.__request_queue;\n};\n\nMixpanelLib.prototype._track_dom = function(DomClass, args) {\n if (this.get_config('img')) {\n this.report_error('You can\\'t use DOM tracking functions with img = true.');\n return false;\n }\n\n if (!DOM_LOADED) {\n this.__dom_loaded_queue.push([DomClass, args]);\n return false;\n }\n\n var dt = new DomClass().init(this);\n return dt.track.apply(dt, args);\n};\n\n/**\n * _prepare_callback() should be called by callers of _send_request for use\n * as the callback argument.\n *\n * If there is no callback, this returns null.\n * If we are going to make XHR/XDR requests, this returns a function.\n * If we are going to use script tags, this returns a string to use as the\n * callback GET param.\n */\nMixpanelLib.prototype._prepare_callback = function(callback, data) {\n if (_.isUndefined(callback)) {\n return null;\n }\n\n if (USE_XHR) {\n var callback_function = function(response) {\n callback(response, data);\n };\n return callback_function;\n } else {\n // if the user gives us a callback, we store as a random\n // property on this instances jsc function and update our\n // callback string to reflect that.\n var jsc = this['_jsc'];\n var randomized_cb = '' + Math.floor(Math.random() * 100000000);\n var callback_string = this.get_config('callback_fn') + '[' + randomized_cb + ']';\n jsc[randomized_cb] = function(response) {\n delete jsc[randomized_cb];\n callback(response, data);\n };\n return callback_string;\n }\n};\n\nMixpanelLib.prototype._send_request = function(url, data, options, callback) {\n var succeeded = true;\n\n if (ENQUEUE_REQUESTS) {\n this.__request_queue.push(arguments);\n return succeeded;\n }\n\n var DEFAULT_OPTIONS = {\n method: this.get_config('api_method'),\n transport: this.get_config('api_transport'),\n verbose: this.get_config('verbose')\n };\n var body_data = null;\n\n if (!callback && (_.isFunction(options) || typeof options === 'string')) {\n callback = options;\n options = null;\n }\n options = _.extend(DEFAULT_OPTIONS, options || {});\n if (!USE_XHR) {\n options.method = 'GET';\n }\n var use_post = options.method === 'POST';\n var use_sendBeacon = sendBeacon && use_post && options.transport.toLowerCase() === 'sendbeacon';\n\n // needed to correctly format responses\n var verbose_mode = options.verbose;\n if (data['verbose']) { verbose_mode = true; }\n\n if (this.get_config('test')) { data['test'] = 1; }\n if (verbose_mode) { data['verbose'] = 1; }\n if (this.get_config('img')) { data['img'] = 1; }\n if (!USE_XHR) {\n if (callback) {\n data['callback'] = callback;\n } else if (verbose_mode || this.get_config('test')) {\n // Verbose output (from verbose mode, or an error in test mode) is a json blob,\n // which by itself is not valid javascript. Without a callback, this verbose output will\n // cause an error when returned via jsonp, so we force a no-op callback param.\n // See the ECMA script spec: http://www.ecma-international.org/ecma-262/5.1/#sec-12.4\n data['callback'] = '(function(){})';\n }\n }\n\n data['ip'] = this.get_config('ip')?1:0;\n data['_'] = new Date().getTime().toString();\n\n if (use_post) {\n body_data = 'data=' + encodeURIComponent(data['data']);\n delete data['data'];\n }\n\n url += '?' + _.HTTPBuildQuery(data);\n\n var lib = this;\n if ('img' in data) {\n var img = document$1.createElement('img');\n img.src = url;\n document$1.body.appendChild(img);\n } else if (use_sendBeacon) {\n try {\n succeeded = sendBeacon(url, body_data);\n } catch (e) {\n lib.report_error(e);\n succeeded = false;\n }\n try {\n if (callback) {\n callback(succeeded ? 1 : 0);\n }\n } catch (e) {\n lib.report_error(e);\n }\n } else if (USE_XHR) {\n try {\n var req = new XMLHttpRequest();\n req.open(options.method, url, true);\n\n var headers = this.get_config('xhr_headers');\n if (use_post) {\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\n }\n _.each(headers, function(headerValue, headerName) {\n req.setRequestHeader(headerName, headerValue);\n });\n\n if (options.timeout_ms && typeof req.timeout !== 'undefined') {\n req.timeout = options.timeout_ms;\n var start_time = new Date().getTime();\n }\n\n // send the mp_optout cookie\n // withCredentials cannot be modified until after calling .open on Android and Mobile Safari\n req.withCredentials = true;\n req.onreadystatechange = function () {\n if (req.readyState === 4) { // XMLHttpRequest.DONE == 4, except in safari 4\n if (req.status === 200) {\n if (callback) {\n if (verbose_mode) {\n var response;\n try {\n response = _.JSONDecode(req.responseText);\n } catch (e) {\n lib.report_error(e);\n if (options.ignore_json_errors) {\n response = req.responseText;\n } else {\n return;\n }\n }\n callback(response);\n } else {\n callback(Number(req.responseText));\n }\n }\n } else {\n var error;\n if (\n req.timeout &&\n !req.status &&\n new Date().getTime() - start_time >= req.timeout\n ) {\n error = 'timeout';\n } else {\n error = 'Bad HTTP status: ' + req.status + ' ' + req.statusText;\n }\n lib.report_error(error);\n if (callback) {\n if (verbose_mode) {\n callback({status: 0, error: error, xhr_req: req});\n } else {\n callback(0);\n }\n }\n }\n }\n };\n req.send(body_data);\n } catch (e) {\n lib.report_error(e);\n succeeded = false;\n }\n } else {\n var script = document$1.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.defer = true;\n script.src = url;\n var s = document$1.getElementsByTagName('script')[0];\n s.parentNode.insertBefore(script, s);\n }\n\n return succeeded;\n};\n\n/**\n * _execute_array() deals with processing any mixpanel function\n * calls that were called before the Mixpanel library were loaded\n * (and are thus stored in an array so they can be called later)\n *\n * Note: we fire off all the mixpanel function calls && user defined\n * functions BEFORE we fire off mixpanel tracking calls. This is so\n * identify/register/set_config calls can properly modify early\n * tracking calls.\n *\n * @param {Array} array\n */\nMixpanelLib.prototype._execute_array = function(array) {\n var fn_name, alias_calls = [], other_calls = [], tracking_calls = [];\n _.each(array, function(item) {\n if (item) {\n fn_name = item[0];\n if (_.isArray(fn_name)) {\n tracking_calls.push(item); // chained call e.g. mixpanel.get_group().set()\n } else if (typeof(item) === 'function') {\n item.call(this);\n } else if (_.isArray(item) && fn_name === 'alias') {\n alias_calls.push(item);\n } else if (_.isArray(item) && fn_name.indexOf('track') !== -1 && typeof(this[fn_name]) === 'function') {\n tracking_calls.push(item);\n } else {\n other_calls.push(item);\n }\n }\n }, this);\n\n var execute = function(calls, context) {\n _.each(calls, function(item) {\n if (_.isArray(item[0])) {\n // chained call\n var caller = context;\n _.each(item, function(call) {\n caller = caller[call[0]].apply(caller, call.slice(1));\n });\n } else {\n this[item[0]].apply(this, item.slice(1));\n }\n }, context);\n };\n\n execute(alias_calls, this);\n execute(other_calls, this);\n execute(tracking_calls, this);\n};\n\n// request queueing utils\n\nMixpanelLib.prototype.are_batchers_initialized = function() {\n return !!this.request_batchers.events;\n};\n\nMixpanelLib.prototype.init_batchers = function() {\n var token = this.get_config('token');\n if (!this.are_batchers_initialized()) {\n var batcher_for = _.bind(function(attrs) {\n return new RequestBatcher(\n '__mpq_' + token + attrs.queue_suffix,\n {\n libConfig: this['config'],\n sendRequestFunc: _.bind(function(data, options, cb) {\n this._send_request(\n this.get_config('api_host') + attrs.endpoint,\n this._encode_data_for_request(data),\n options,\n this._prepare_callback(cb, data)\n );\n }, this),\n beforeSendHook: _.bind(function(item) {\n return this._run_hook('before_send_' + attrs.type, item);\n }, this),\n errorReporter: this.get_config('error_reporter'),\n stopAllBatchingFunc: _.bind(this.stop_batch_senders, this)\n }\n );\n }, this);\n this.request_batchers = {\n events: batcher_for({type: 'events', endpoint: '/track/', queue_suffix: '_ev'}),\n people: batcher_for({type: 'people', endpoint: '/engage/', queue_suffix: '_pp'}),\n groups: batcher_for({type: 'groups', endpoint: '/groups/', queue_suffix: '_gr'})\n };\n }\n if (this.get_config('batch_autostart')) {\n this.start_batch_senders();\n }\n};\n\nMixpanelLib.prototype.start_batch_senders = function() {\n if (this.are_batchers_initialized()) {\n this._batch_requests = true;\n _.each(this.request_batchers, function(batcher) {\n batcher.start();\n });\n }\n};\n\nMixpanelLib.prototype.stop_batch_senders = function() {\n this._batch_requests = false;\n _.each(this.request_batchers, function(batcher) {\n batcher.stop();\n batcher.clear();\n });\n};\n\n/**\n * push() keeps the standard async-array-push\n * behavior around after the lib is loaded.\n * This is only useful for external integrations that\n * do not wish to rely on our convenience methods\n * (created in the snippet).\n *\n * ### Usage:\n * mixpanel.push(['register', { a: 'b' }]);\n *\n * @param {Array} item A [function_name, args...] array to be executed\n */\nMixpanelLib.prototype.push = function(item) {\n this._execute_array([item]);\n};\n\n/**\n * Disable events on the Mixpanel object. If passed no arguments,\n * this function disables tracking of any event. If passed an\n * array of event names, those events will be disabled, but other\n * events will continue to be tracked.\n *\n * Note: this function does not stop other mixpanel functions from\n * firing, such as register() or people.set().\n *\n * @param {Array} [events] An array of event names to disable\n */\nMixpanelLib.prototype.disable = function(events) {\n if (typeof(events) === 'undefined') {\n this._flags.disable_all_events = true;\n } else {\n this.__disabled_events = this.__disabled_events.concat(events);\n }\n};\n\nMixpanelLib.prototype._encode_data_for_request = function(data) {\n var encoded_data = _.JSONEncode(data);\n if (this.get_config('api_payload_format') === PAYLOAD_TYPE_BASE64) {\n encoded_data = _.base64Encode(encoded_data);\n }\n return {'data': encoded_data};\n};\n\n// internal method for handling track vs batch-enqueue logic\nMixpanelLib.prototype._track_or_batch = function(options, callback) {\n var truncated_data = _.truncate(options.data, 255);\n var endpoint = options.endpoint;\n var batcher = options.batcher;\n var should_send_immediately = options.should_send_immediately;\n var send_request_options = options.send_request_options || {};\n callback = callback || NOOP_FUNC;\n\n var request_enqueued_or_initiated = true;\n var send_request_immediately = _.bind(function() {\n if (!send_request_options.skip_hooks) {\n truncated_data = this._run_hook('before_send_' + options.type, truncated_data);\n }\n if (truncated_data) {\n console.log('MIXPANEL REQUEST:');\n console.log(truncated_data);\n return this._send_request(\n endpoint,\n this._encode_data_for_request(truncated_data),\n send_request_options,\n this._prepare_callback(callback, truncated_data)\n );\n } else {\n return null;\n }\n }, this);\n\n if (this._batch_requests && !should_send_immediately) {\n batcher.enqueue(truncated_data, function(succeeded) {\n if (succeeded) {\n callback(1, truncated_data);\n } else {\n send_request_immediately();\n }\n });\n } else {\n request_enqueued_or_initiated = send_request_immediately();\n }\n\n return request_enqueued_or_initiated && truncated_data;\n};\n\n/**\n * Track an event. This is the most important and\n * frequently used Mixpanel function.\n *\n * ### Usage:\n *\n * // track an event named 'Registered'\n * mixpanel.track('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * // track an event using navigator.sendBeacon\n * mixpanel.track('Left page', {'duration_seconds': 35}, {transport: 'sendBeacon'});\n *\n * To track link clicks or form submissions, see track_links() or track_forms().\n *\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Object} [options] Optional configuration for this track request.\n * @param {String} [options.transport] Transport method for network request ('xhr' or 'sendBeacon').\n * @param {Boolean} [options.send_immediately] Whether to bypass batching/queueing and send track request immediately.\n * @param {Function} [callback] If provided, the callback function will be called after tracking the event.\n * @returns {Boolean|Object} If the tracking request was successfully initiated/queued, an object\n * with the tracking payload sent to the API server is returned; otherwise false.\n */\nMixpanelLib.prototype.track = addOptOutCheckMixpanelLib(function(event_name, properties, options, callback) {\n if (!callback && typeof options === 'function') {\n callback = options;\n options = null;\n }\n options = options || {};\n var transport = options['transport']; // external API, don't minify 'transport' prop\n if (transport) {\n options.transport = transport; // 'transport' prop name can be minified internally\n }\n var should_send_immediately = options['send_immediately'];\n if (typeof callback !== 'function') {\n callback = NOOP_FUNC;\n }\n\n if (_.isUndefined(event_name)) {\n this.report_error('No event name provided to mixpanel.track');\n return;\n }\n\n if (this._event_is_disabled(event_name)) {\n callback(0);\n return;\n }\n\n // set defaults\n properties = properties || {};\n properties['token'] = this.get_config('token');\n\n // set $duration if time_event was previously called for this event\n var start_timestamp = this['persistence'].remove_event_timer(event_name);\n if (!_.isUndefined(start_timestamp)) {\n var duration_in_ms = new Date().getTime() - start_timestamp;\n properties['$duration'] = parseFloat((duration_in_ms / 1000).toFixed(3));\n }\n\n this._set_default_superprops();\n\n var marketing_properties = this.get_config('track_marketing')\n ? _.info.marketingParams()\n : {};\n\n // note: extend writes to the first object, so lets make sure we\n // don't write to the persistence properties object and info\n // properties object by passing in a new object\n\n // update properties with pageview info and super-properties\n properties = _.extend(\n {},\n _.info.properties(),\n marketing_properties,\n this['persistence'].properties(),\n this.unpersisted_superprops,\n properties\n );\n\n var property_blacklist = this.get_config('property_blacklist');\n if (_.isArray(property_blacklist)) {\n _.each(property_blacklist, function(blacklisted_prop) {\n delete properties[blacklisted_prop];\n });\n } else {\n this.report_error('Invalid value for property_blacklist config: ' + property_blacklist);\n }\n\n var data = {\n 'event': event_name,\n 'properties': properties\n };\n var ret = this._track_or_batch({\n type: 'events',\n data: data,\n endpoint: this.get_config('api_host') + '/track/',\n batcher: this.request_batchers.events,\n should_send_immediately: should_send_immediately,\n send_request_options: options\n }, callback);\n\n return ret;\n});\n\n/**\n * Register the current user into one/many groups.\n *\n * ### Usage:\n *\n * mixpanel.set_group('company', ['mixpanel', 'google']) // an array of IDs\n * mixpanel.set_group('company', 'mixpanel')\n * mixpanel.set_group('company', 128746312)\n *\n * @param {String} group_key Group key\n * @param {Array|String|Number} group_ids An array of group IDs, or a singular group ID\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n *\n */\nMixpanelLib.prototype.set_group = addOptOutCheckMixpanelLib(function(group_key, group_ids, callback) {\n if (!_.isArray(group_ids)) {\n group_ids = [group_ids];\n }\n var prop = {};\n prop[group_key] = group_ids;\n this.register(prop);\n return this['people'].set(group_key, group_ids, callback);\n});\n\n/**\n * Add a new group for this user.\n *\n * ### Usage:\n *\n * mixpanel.add_group('company', 'mixpanel')\n *\n * @param {String} group_key Group key\n * @param {*} group_id A valid Mixpanel property type\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.add_group = addOptOutCheckMixpanelLib(function(group_key, group_id, callback) {\n var old_values = this.get_property(group_key);\n if (old_values === undefined) {\n var prop = {};\n prop[group_key] = [group_id];\n this.register(prop);\n } else {\n if (old_values.indexOf(group_id) === -1) {\n old_values.push(group_id);\n this.register(prop);\n }\n }\n return this['people'].union(group_key, group_id, callback);\n});\n\n/**\n * Remove a group from this user.\n *\n * ### Usage:\n *\n * mixpanel.remove_group('company', 'mixpanel')\n *\n * @param {String} group_key Group key\n * @param {*} group_id A valid Mixpanel property type\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.remove_group = addOptOutCheckMixpanelLib(function(group_key, group_id, callback) {\n var old_value = this.get_property(group_key);\n // if the value doesn't exist, the persistent store is unchanged\n if (old_value !== undefined) {\n var idx = old_value.indexOf(group_id);\n if (idx > -1) {\n old_value.splice(idx, 1);\n this.register({group_key: old_value});\n }\n if (old_value.length === 0) {\n this.unregister(group_key);\n }\n }\n return this['people'].remove(group_key, group_id, callback);\n});\n\n/**\n * Track an event with specific groups.\n *\n * ### Usage:\n *\n * mixpanel.track_with_groups('purchase', {'product': 'iphone'}, {'University': ['UCB', 'UCLA']})\n *\n * @param {String} event_name The name of the event (see `mixpanel.track()`)\n * @param {Object=} properties A set of properties to include with the event you're sending (see `mixpanel.track()`)\n * @param {Object=} groups An object mapping group name keys to one or more values\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.track_with_groups = addOptOutCheckMixpanelLib(function(event_name, properties, groups, callback) {\n var tracking_props = _.extend({}, properties || {});\n _.each(groups, function(v, k) {\n if (v !== null && v !== undefined) {\n tracking_props[k] = v;\n }\n });\n return this.track(event_name, tracking_props, callback);\n});\n\nMixpanelLib.prototype._create_map_key = function (group_key, group_id) {\n return group_key + '_' + JSON.stringify(group_id);\n};\n\nMixpanelLib.prototype._remove_group_from_cache = function (group_key, group_id) {\n delete this._cached_groups[this._create_map_key(group_key, group_id)];\n};\n\n/**\n * Look up reference to a Mixpanel group\n *\n * ### Usage:\n *\n * mixpanel.get_group(group_key, group_id)\n *\n * @param {String} group_key Group key\n * @param {Object} group_id A valid Mixpanel property type\n * @returns {Object} A MixpanelGroup identifier\n */\nMixpanelLib.prototype.get_group = function (group_key, group_id) {\n var map_key = this._create_map_key(group_key, group_id);\n var group = this._cached_groups[map_key];\n if (group === undefined || group._group_key !== group_key || group._group_id !== group_id) {\n group = new MixpanelGroup();\n group._init(this, group_key, group_id);\n this._cached_groups[map_key] = group;\n }\n return group;\n};\n\n/**\n * Track a default Mixpanel page view event, which includes extra default event properties to\n * improve page view data. The `config.track_pageview` option for mixpanel.init()\n * may be turned on for tracking page loads automatically.\n *\n * ### Usage\n *\n * // track a default $mp_web_page_view event\n * mixpanel.track_pageview();\n *\n * // track a page view event with additional event properties\n * mixpanel.track_pageview({'ab_test_variant': 'card-layout-b'});\n *\n * // example approach to track page views on different page types as event properties\n * mixpanel.track_pageview({'page': 'pricing'});\n * mixpanel.track_pageview({'page': 'homepage'});\n *\n * // UNCOMMON: Tracking a page view event with a custom event_name option. NOT expected to be used for\n * // individual pages on the same site or product. Use cases for custom event_name may be page\n * // views on different products or internal applications that are considered completely separate\n * mixpanel.track_pageview({'page': 'customer-search'}, {'event_name': '[internal] Admin Page View'});\n *\n * @param {Object} [properties] An optional set of additional properties to send with the page view event\n * @param {Object} [options] Page view tracking options\n * @param {String} [options.event_name] - Alternate name for the tracking event\n * @returns {Boolean|Object} If the tracking request was successfully initiated/queued, an object\n * with the tracking payload sent to the API server is returned; otherwise false.\n */\nMixpanelLib.prototype.track_pageview = addOptOutCheckMixpanelLib(function(properties, options) {\n if (typeof properties !== 'object') {\n properties = {};\n }\n options = options || {};\n var event_name = options['event_name'] || '$mp_web_page_view';\n\n var default_page_properties = _.extend(\n _.info.mpPageViewProperties(),\n _.info.campaignParams(),\n _.info.clickParams()\n );\n\n var event_properties = _.extend(\n {},\n default_page_properties,\n properties\n );\n\n return this.track(event_name, event_properties);\n});\n\n/**\n * Track clicks on a set of document elements. Selector must be a\n * valid query. Elements must exist on the page at the time track_links is called.\n *\n * ### Usage:\n *\n * // track click for link id #nav\n * mixpanel.track_links('#nav', 'Clicked Nav Link');\n *\n * ### Notes:\n *\n * This function will wait up to 300 ms for the Mixpanel\n * servers to respond. If they have not responded by that time\n * it will head to the link without ensuring that your event\n * has been tracked. To configure this timeout please see the\n * set_config() documentation below.\n *\n * If you pass a function in as the properties argument, the\n * function will receive the DOMElement that triggered the\n * event as an argument. You are expected to return an object\n * from the function; any properties defined on this object\n * will be sent to mixpanel as event properties.\n *\n * @type {Function}\n * @param {Object|String} query A valid DOM query, element or jQuery-esque list\n * @param {String} event_name The name of the event to track\n * @param {Object|Function} [properties] A properties object or function that returns a dictionary of properties when passed a DOMElement\n */\nMixpanelLib.prototype.track_links = function() {\n return this._track_dom.call(this, LinkTracker, arguments);\n};\n\n/**\n * Track form submissions. Selector must be a valid query.\n *\n * ### Usage:\n *\n * // track submission for form id 'register'\n * mixpanel.track_forms('#register', 'Created Account');\n *\n * ### Notes:\n *\n * This function will wait up to 300 ms for the mixpanel\n * servers to respond, if they have not responded by that time\n * it will head to the link without ensuring that your event\n * has been tracked. To configure this timeout please see the\n * set_config() documentation below.\n *\n * If you pass a function in as the properties argument, the\n * function will receive the DOMElement that triggered the\n * event as an argument. You are expected to return an object\n * from the function; any properties defined on this object\n * will be sent to mixpanel as event properties.\n *\n * @type {Function}\n * @param {Object|String} query A valid DOM query, element or jQuery-esque list\n * @param {String} event_name The name of the event to track\n * @param {Object|Function} [properties] This can be a set of properties, or a function that returns a set of properties after being passed a DOMElement\n */\nMixpanelLib.prototype.track_forms = function() {\n return this._track_dom.call(this, FormTracker, arguments);\n};\n\n/**\n * Time an event by including the time between this call and a\n * later 'track' call for the same event in the properties sent\n * with the event.\n *\n * ### Usage:\n *\n * // time an event named 'Registered'\n * mixpanel.time_event('Registered');\n * mixpanel.track('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * When called for a particular event name, the next track call for that event\n * name will include the elapsed time between the 'time_event' and 'track'\n * calls. This value is stored as seconds in the '$duration' property.\n *\n * @param {String} event_name The name of the event.\n */\nMixpanelLib.prototype.time_event = function(event_name) {\n if (_.isUndefined(event_name)) {\n this.report_error('No event name provided to mixpanel.time_event');\n return;\n }\n\n if (this._event_is_disabled(event_name)) {\n return;\n }\n\n this['persistence'].set_event_timer(event_name, new Date().getTime());\n};\n\nvar REGISTER_DEFAULTS = {\n 'persistent': true\n};\n/**\n * Helper to parse options param for register methods, maintaining\n * legacy support for plain \"days\" param instead of options object\n * @param {Number|Object} [days_or_options] 'days' option (Number), or Options object for register methods\n * @returns {Object} options object\n */\nvar options_for_register = function(days_or_options) {\n var options;\n if (_.isObject(days_or_options)) {\n options = days_or_options;\n } else if (!_.isUndefined(days_or_options)) {\n options = {'days': days_or_options};\n } else {\n options = {};\n }\n return _.extend({}, REGISTER_DEFAULTS, options);\n};\n\n/**\n * Register a set of super properties, which are included with all\n * events. This will overwrite previous super property values.\n *\n * ### Usage:\n *\n * // register 'Gender' as a super property\n * mixpanel.register({'Gender': 'Female'});\n *\n * // register several super properties when a user signs up\n * mixpanel.register({\n * 'Email': 'jdoe@example.com',\n * 'Account Type': 'Free'\n * });\n *\n * // register only for the current pageload\n * mixpanel.register({'Name': 'Pat'}, {persistent: false});\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {Number|Object} [days_or_options] Options object or number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.days] - number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.persistent=true] - whether to put in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.register = function(props, days_or_options) {\n var options = options_for_register(days_or_options);\n if (options['persistent']) {\n this['persistence'].register(props, options['days']);\n } else {\n _.extend(this.unpersisted_superprops, props);\n }\n};\n\n/**\n * Register a set of super properties only once. This will not\n * overwrite previous super property values, unlike register().\n *\n * ### Usage:\n *\n * // register a super property for the first time only\n * mixpanel.register_once({\n * 'First Login Date': new Date().toISOString()\n * });\n *\n * // register once, only for the current pageload\n * mixpanel.register_once({\n * 'First interaction time': new Date().toISOString()\n * }, 'None', {persistent: false});\n *\n * ### Notes:\n *\n * If default_value is specified, current super properties\n * with that value will be overwritten.\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {*} [default_value] Value to override if already set in super properties (ex: 'False') Default: 'None'\n * @param {Number|Object} [days_or_options] Options object or number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.days] - number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.persistent=true] - whether to put in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.register_once = function(props, default_value, days_or_options) {\n var options = options_for_register(days_or_options);\n if (options['persistent']) {\n this['persistence'].register_once(props, default_value, options['days']);\n } else {\n if (typeof(default_value) === 'undefined') {\n default_value = 'None';\n }\n _.each(props, function(val, prop) {\n if (!this.unpersisted_superprops.hasOwnProperty(prop) || this.unpersisted_superprops[prop] === default_value) {\n this.unpersisted_superprops[prop] = val;\n }\n }, this);\n }\n};\n\n/**\n * Delete a super property stored with the current user.\n *\n * @param {String} property The name of the super property to remove\n * @param {Object} [options]\n * @param {boolean} [options.persistent=true] - whether to look in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.unregister = function(property, options) {\n options = options_for_register(options);\n if (options['persistent']) {\n this['persistence'].unregister(property);\n } else {\n delete this.unpersisted_superprops[property];\n }\n};\n\nMixpanelLib.prototype._register_single = function(prop, value) {\n var props = {};\n props[prop] = value;\n this.register(props);\n};\n\n/**\n * Identify a user with a unique ID to track user activity across\n * devices, tie a user to their events, and create a user profile.\n * If you never call this method, unique visitors are tracked using\n * a UUID generated the first time they visit the site.\n *\n * Call identify when you know the identity of the current user,\n * typically after login or signup. We recommend against using\n * identify for anonymous visitors to your site.\n *\n * ### Notes:\n * If your project has\n * ID Merge\n * enabled, the identify method will connect pre- and\n * post-authentication events when appropriate.\n *\n * If your project does not have ID Merge enabled, identify will\n * change the user's local distinct_id to the unique ID you pass.\n * Events tracked prior to authentication will not be connected\n * to the same user identity. If ID Merge is disabled, alias can\n * be used to connect pre- and post-registration events.\n *\n * @param {String} [unique_id] A string that uniquely identifies a user. If not provided, the distinct_id currently in the persistent store (cookie or localStorage) will be used.\n */\nMixpanelLib.prototype.identify = function(\n new_distinct_id, _set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback\n) {\n // Optional Parameters\n // _set_callback:function A callback to be run if and when the People set queue is flushed\n // _add_callback:function A callback to be run if and when the People add queue is flushed\n // _append_callback:function A callback to be run if and when the People append queue is flushed\n // _set_once_callback:function A callback to be run if and when the People set_once queue is flushed\n // _union_callback:function A callback to be run if and when the People union queue is flushed\n // _unset_callback:function A callback to be run if and when the People unset queue is flushed\n\n var previous_distinct_id = this.get_distinct_id();\n if (new_distinct_id && previous_distinct_id !== new_distinct_id) {\n // we allow the following condition if previous distinct_id is same as new_distinct_id\n // so that you can force flush people updates for anonymous profiles.\n if (typeof new_distinct_id === 'string' && new_distinct_id.indexOf(DEVICE_ID_PREFIX) === 0) {\n this.report_error('distinct_id cannot have $device: prefix');\n return -1;\n }\n this.register({'$user_id': new_distinct_id});\n }\n\n if (!this.get_property('$device_id')) {\n // The persisted distinct id might not actually be a device id at all\n // it might be a distinct id of the user from before\n var device_id = previous_distinct_id;\n this.register_once({\n '$had_persisted_distinct_id': true,\n '$device_id': device_id\n }, '');\n }\n\n // identify only changes the distinct id if it doesn't match either the existing or the alias;\n // if it's new, blow away the alias as well.\n if (new_distinct_id !== previous_distinct_id && new_distinct_id !== this.get_property(ALIAS_ID_KEY)) {\n this.unregister(ALIAS_ID_KEY);\n this.register({'distinct_id': new_distinct_id});\n }\n this._flags.identify_called = true;\n // Flush any queued up people requests\n this['people']._flush(_set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback);\n\n // send an $identify event any time the distinct_id is changing - logic on the server\n // will determine whether or not to do anything with it.\n if (new_distinct_id !== previous_distinct_id) {\n this.track('$identify', {\n 'distinct_id': new_distinct_id,\n '$anon_distinct_id': previous_distinct_id\n }, {skip_hooks: true});\n }\n};\n\n/**\n * Clears super properties and generates a new random distinct_id for this instance.\n * Useful for clearing data when a user logs out.\n */\nMixpanelLib.prototype.reset = function() {\n this['persistence'].clear();\n this._flags.identify_called = false;\n var uuid = _.UUID();\n this.register_once({\n 'distinct_id': DEVICE_ID_PREFIX + uuid,\n '$device_id': uuid\n }, '');\n};\n\n/**\n * Returns the current distinct id of the user. This is either the id automatically\n * generated by the library or the id that has been passed by a call to identify().\n *\n * ### Notes:\n *\n * get_distinct_id() can only be called after the Mixpanel library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // set distinct_id after the mixpanel library has loaded\n * mixpanel.init('YOUR PROJECT TOKEN', {\n * loaded: function(mixpanel) {\n * distinct_id = mixpanel.get_distinct_id();\n * }\n * });\n */\nMixpanelLib.prototype.get_distinct_id = function() {\n return this.get_property('distinct_id');\n};\n\n/**\n * The alias method creates an alias which Mixpanel will use to\n * remap one id to another. Multiple aliases can point to the\n * same identifier.\n *\n * The following is a valid use of alias:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // You can add multiple id aliases to the existing ID\n * mixpanel.alias('newer_id', 'existing_id');\n *\n * Aliases can also be chained - the following is a valid example:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // chain newer_id - new_id - existing_id\n * mixpanel.alias('newer_id', 'new_id');\n *\n * Aliases cannot point to multiple identifiers - the following\n * example will not work:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // this is invalid as 'new_id' already points to 'existing_id'\n * mixpanel.alias('new_id', 'newer_id');\n *\n * ### Notes:\n *\n * If your project does not have\n * ID Merge\n * enabled, the best practice is to call alias once when a unique\n * ID is first created for a user (e.g., when a user first registers\n * for an account). Do not use alias multiple times for a single\n * user without ID Merge enabled.\n *\n * @param {String} alias A unique identifier that you want to use for this user in the future.\n * @param {String} [original] The current identifier being used for this user.\n */\nMixpanelLib.prototype.alias = function(alias, original) {\n // If the $people_distinct_id key exists in persistence, there has been a previous\n // mixpanel.people.identify() call made for this user. It is VERY BAD to make an alias with\n // this ID, as it will duplicate users.\n if (alias === this.get_property(PEOPLE_DISTINCT_ID_KEY)) {\n this.report_error('Attempting to create alias for existing People user - aborting.');\n return -2;\n }\n\n var _this = this;\n if (_.isUndefined(original)) {\n original = this.get_distinct_id();\n }\n if (alias !== original) {\n this._register_single(ALIAS_ID_KEY, alias);\n return this.track('$create_alias', {\n 'alias': alias,\n 'distinct_id': original\n }, {\n skip_hooks: true\n }, function() {\n // Flush the people queue\n _this.identify(alias);\n });\n } else {\n this.report_error('alias matches current distinct_id - skipping api call.');\n this.identify(alias);\n return -1;\n }\n};\n\n/**\n * Provide a string to recognize the user by. The string passed to\n * this method will appear in the Mixpanel Streams product rather\n * than an automatically generated name. Name tags do not have to\n * be unique.\n *\n * This value will only be included in Streams data.\n *\n * @param {String} name_tag A human readable name for the user\n * @deprecated\n */\nMixpanelLib.prototype.name_tag = function(name_tag) {\n this._register_single('mp_name_tag', name_tag);\n};\n\n/**\n * Update the configuration of a mixpanel library instance.\n *\n * The default config is:\n *\n * {\n * // HTTP method for tracking requests\n * api_method: 'POST'\n *\n * // transport for sending requests ('XHR' or 'sendBeacon')\n * // NB: sendBeacon should only be used for scenarios such as\n * // page unload where a \"best-effort\" attempt to send is\n * // acceptable; the sendBeacon API does not support callbacks\n * // or any way to know the result of the request. Mixpanel\n * // tracking via sendBeacon will not support any event-\n * // batching or retry mechanisms.\n * api_transport: 'XHR'\n *\n * // request-batching/queueing/retry\n * batch_requests: true,\n *\n * // maximum number of events/updates to send in a single\n * // network request\n * batch_size: 50,\n *\n * // milliseconds to wait between sending batch requests\n * batch_flush_interval_ms: 5000,\n *\n * // milliseconds to wait for network responses to batch requests\n * // before they are considered timed-out and retried\n * batch_request_timeout_ms: 90000,\n *\n * // override value for cookie domain, only useful for ensuring\n * // correct cross-subdomain cookies on unusual domains like\n * // subdomain.mainsite.avocat.fr; NB this cannot be used to\n * // set cookies on a different domain than the current origin\n * cookie_domain: ''\n *\n * // super properties cookie expiration (in days)\n * cookie_expiration: 365\n *\n * // if true, cookie will be set with SameSite=None; Secure\n * // this is only useful in special situations, like embedded\n * // 3rd-party iframes that set up a Mixpanel instance\n * cross_site_cookie: false\n *\n * // super properties span subdomains\n * cross_subdomain_cookie: true\n *\n * // debug mode\n * debug: false\n *\n * // if this is true, the mixpanel cookie or localStorage entry\n * // will be deleted, and no user persistence will take place\n * disable_persistence: false\n *\n * // if this is true, Mixpanel will automatically determine\n * // City, Region and Country data using the IP address of\n * //the client\n * ip: true\n *\n * // opt users out of tracking by this Mixpanel instance by default\n * opt_out_tracking_by_default: false\n *\n * // opt users out of browser data storage by this Mixpanel instance by default\n * opt_out_persistence_by_default: false\n *\n * // persistence mechanism used by opt-in/opt-out methods - cookie\n * // or localStorage - falls back to cookie if localStorage is unavailable\n * opt_out_tracking_persistence_type: 'localStorage'\n *\n * // customize the name of cookie/localStorage set by opt-in/opt-out methods\n * opt_out_tracking_cookie_prefix: null\n *\n * // type of persistent store for super properties (cookie/\n * // localStorage) if set to 'localStorage', any existing\n * // mixpanel cookie value with the same persistence_name\n * // will be transferred to localStorage and deleted\n * persistence: 'cookie'\n *\n * // name for super properties persistent store\n * persistence_name: ''\n *\n * // names of properties/superproperties which should never\n * // be sent with track() calls\n * property_blacklist: []\n *\n * // if this is true, mixpanel cookies will be marked as\n * // secure, meaning they will only be transmitted over https\n * secure_cookie: false\n *\n * // disables enriching user profiles with first touch marketing data\n * skip_first_touch_marketing: false\n *\n * // the amount of time track_links will\n * // wait for Mixpanel's servers to respond\n * track_links_timeout: 300\n *\n * // adds any UTM parameters and click IDs present on the page to any events fired\n * track_marketing: true\n *\n * // enables automatic page view tracking using default page view events through\n * // the track_pageview() method\n * track_pageview: false\n *\n * // if you set upgrade to be true, the library will check for\n * // a cookie from our old js library and import super\n * // properties from it, then the old cookie is deleted\n * // The upgrade config option only works in the initialization,\n * // so make sure you set it when you create the library.\n * upgrade: false\n *\n * // extra HTTP request headers to set for each API request, in\n * // the format {'Header-Name': value}\n * xhr_headers: {}\n *\n * // whether to ignore or respect the web browser's Do Not Track setting\n * ignore_dnt: false\n * }\n *\n *\n * @param {Object} config A dictionary of new configuration values to update\n */\nMixpanelLib.prototype.set_config = function(config) {\n if (_.isObject(config)) {\n _.extend(this['config'], config);\n\n var new_batch_size = config['batch_size'];\n if (new_batch_size) {\n _.each(this.request_batchers, function(batcher) {\n batcher.resetBatchSize();\n });\n }\n\n if (!this.get_config('persistence_name')) {\n this['config']['persistence_name'] = this['config']['cookie_name'];\n }\n if (!this.get_config('disable_persistence')) {\n this['config']['disable_persistence'] = this['config']['disable_cookie'];\n }\n\n if (this['persistence']) {\n this['persistence'].update_config(this['config']);\n }\n Config.DEBUG = Config.DEBUG || this.get_config('debug');\n }\n};\n\n/**\n * returns the current config object for the library.\n */\nMixpanelLib.prototype.get_config = function(prop_name) {\n return this['config'][prop_name];\n};\n\n/**\n * Fetch a hook function from config, with safe default, and run it\n * against the given arguments\n * @param {string} hook_name which hook to retrieve\n * @returns {any|null} return value of user-provided hook, or null if nothing was returned\n */\nMixpanelLib.prototype._run_hook = function(hook_name) {\n var ret = (this['config']['hooks'][hook_name] || IDENTITY_FUNC).apply(this, slice.call(arguments, 1));\n if (typeof ret === 'undefined') {\n this.report_error(hook_name + ' hook did not return a value');\n ret = null;\n }\n return ret;\n};\n\n/**\n * Returns the value of the super property named property_name. If no such\n * property is set, get_property() will return the undefined value.\n *\n * ### Notes:\n *\n * get_property() can only be called after the Mixpanel library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // grab value for 'user_id' after the mixpanel library has loaded\n * mixpanel.init('YOUR PROJECT TOKEN', {\n * loaded: function(mixpanel) {\n * user_id = mixpanel.get_property('user_id');\n * }\n * });\n *\n * @param {String} property_name The name of the super property you want to retrieve\n */\nMixpanelLib.prototype.get_property = function(property_name) {\n return this['persistence']['props'][property_name];\n};\n\nMixpanelLib.prototype.toString = function() {\n var name = this.get_config('name');\n if (name !== PRIMARY_INSTANCE_NAME) {\n name = PRIMARY_INSTANCE_NAME + '.' + name;\n }\n return name;\n};\n\nMixpanelLib.prototype._event_is_disabled = function(event_name) {\n return _.isBlockedUA(userAgent) ||\n this._flags.disable_all_events ||\n _.include(this.__disabled_events, event_name);\n};\n\n// perform some housekeeping around GDPR opt-in/out state\nMixpanelLib.prototype._gdpr_init = function() {\n var is_localStorage_requested = this.get_config('opt_out_tracking_persistence_type') === 'localStorage';\n\n // try to convert opt-in/out cookies to localStorage if possible\n if (is_localStorage_requested && _.localStorage.is_supported()) {\n if (!this.has_opted_in_tracking() && this.has_opted_in_tracking({'persistence_type': 'cookie'})) {\n this.opt_in_tracking({'enable_persistence': false});\n }\n if (!this.has_opted_out_tracking() && this.has_opted_out_tracking({'persistence_type': 'cookie'})) {\n this.opt_out_tracking({'clear_persistence': false});\n }\n this.clear_opt_in_out_tracking({\n 'persistence_type': 'cookie',\n 'enable_persistence': false\n });\n }\n\n // check whether the user has already opted out - if so, clear & disable persistence\n if (this.has_opted_out_tracking()) {\n this._gdpr_update_persistence({'clear_persistence': true});\n\n // check whether we should opt out by default\n // note: we don't clear persistence here by default since opt-out default state is often\n // used as an initial state while GDPR information is being collected\n } else if (!this.has_opted_in_tracking() && (\n this.get_config('opt_out_tracking_by_default') || _.cookie.get('mp_optout')\n )) {\n _.cookie.remove('mp_optout');\n this.opt_out_tracking({\n 'clear_persistence': this.get_config('opt_out_persistence_by_default')\n });\n }\n};\n\n/**\n * Enable or disable persistence based on options\n * only enable/disable if persistence is not already in this state\n * @param {boolean} [options.clear_persistence] If true, will delete all data stored by the sdk in persistence and disable it\n * @param {boolean} [options.enable_persistence] If true, will re-enable sdk persistence\n */\nMixpanelLib.prototype._gdpr_update_persistence = function(options) {\n var disabled;\n if (options && options['clear_persistence']) {\n disabled = true;\n } else if (options && options['enable_persistence']) {\n disabled = false;\n } else {\n return;\n }\n\n if (!this.get_config('disable_persistence') && this['persistence'].disabled !== disabled) {\n this['persistence'].set_disabled(disabled);\n }\n\n if (disabled) {\n _.each(this.request_batchers, function(batcher) {\n batcher.clear();\n });\n }\n};\n\n// call a base gdpr function after constructing the appropriate token and options args\nMixpanelLib.prototype._gdpr_call_func = function(func, options) {\n options = _.extend({\n 'track': _.bind(this.track, this),\n 'persistence_type': this.get_config('opt_out_tracking_persistence_type'),\n 'cookie_prefix': this.get_config('opt_out_tracking_cookie_prefix'),\n 'cookie_expiration': this.get_config('cookie_expiration'),\n 'cross_site_cookie': this.get_config('cross_site_cookie'),\n 'cross_subdomain_cookie': this.get_config('cross_subdomain_cookie'),\n 'cookie_domain': this.get_config('cookie_domain'),\n 'secure_cookie': this.get_config('secure_cookie'),\n 'ignore_dnt': this.get_config('ignore_dnt')\n }, options);\n\n // check if localStorage can be used for recording opt out status, fall back to cookie if not\n if (!_.localStorage.is_supported()) {\n options['persistence_type'] = 'cookie';\n }\n\n return func(this.get_config('token'), {\n track: options['track'],\n trackEventName: options['track_event_name'],\n trackProperties: options['track_properties'],\n persistenceType: options['persistence_type'],\n persistencePrefix: options['cookie_prefix'],\n cookieDomain: options['cookie_domain'],\n cookieExpiration: options['cookie_expiration'],\n crossSiteCookie: options['cross_site_cookie'],\n crossSubdomainCookie: options['cross_subdomain_cookie'],\n secureCookie: options['secure_cookie'],\n ignoreDnt: options['ignore_dnt']\n });\n};\n\n/**\n * Opt the user in to data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage\n *\n * // opt user in\n * mixpanel.opt_in_tracking();\n *\n * // opt user in with specific event name, properties, cookie configuration\n * mixpanel.opt_in_tracking({\n * track_event_name: 'User opted in',\n * track_event_properties: {\n * 'Email': 'jdoe@example.com'\n * },\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {function} [options.track] Function used for tracking a Mixpanel event to record the opt-in action (default is this Mixpanel instance's track method)\n * @param {string} [options.track_event_name=$opt_in] Event name to be used for tracking the opt-in action\n * @param {Object} [options.track_properties] Set of properties to be tracked along with the opt-in action\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.opt_in_tracking = function(options) {\n options = _.extend({\n 'enable_persistence': true\n }, options);\n\n this._gdpr_call_func(optIn, options);\n this._gdpr_update_persistence(options);\n};\n\n/**\n * Opt the user out of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage\n *\n * // opt user out\n * mixpanel.opt_out_tracking();\n *\n * // opt user out with different cookie configuration from Mixpanel instance\n * mixpanel.opt_out_tracking({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.delete_user=true] If true, will delete the currently identified user's profile and clear all charges after opting the user out\n * @param {boolean} [options.clear_persistence=true] If true, will delete all data stored by the sdk in persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.opt_out_tracking = function(options) {\n options = _.extend({\n 'clear_persistence': true,\n 'delete_user': true\n }, options);\n\n // delete user and clear charges since these methods may be disabled by opt-out\n if (options['delete_user'] && this['people'] && this['people']._identify_called()) {\n this['people'].delete_user();\n this['people'].clear_charges();\n }\n\n this._gdpr_call_func(optOut, options);\n this._gdpr_update_persistence(options);\n};\n\n/**\n * Check whether the user has opted in to data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage\n *\n * var has_opted_in = mixpanel.has_opted_in_tracking();\n * // use has_opted_in value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-in status\n */\nMixpanelLib.prototype.has_opted_in_tracking = function(options) {\n return this._gdpr_call_func(hasOptedIn, options);\n};\n\n/**\n * Check whether the user has opted out of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage\n *\n * var has_opted_out = mixpanel.has_opted_out_tracking();\n * // use has_opted_out value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-out status\n */\nMixpanelLib.prototype.has_opted_out_tracking = function(options) {\n return this._gdpr_call_func(hasOptedOut, options);\n};\n\n/**\n * Clear the user's opt in/out status of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage\n *\n * // clear user's opt-in/out status\n * mixpanel.clear_opt_in_out_tracking();\n *\n * // clear user's opt-in/out status with specific cookie configuration - should match\n * // configuration used when opt_in_tracking/opt_out_tracking methods were called.\n * mixpanel.clear_opt_in_out_tracking({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.clear_opt_in_out_tracking = function(options) {\n options = _.extend({\n 'enable_persistence': true\n }, options);\n\n this._gdpr_call_func(clearOptInOut, options);\n this._gdpr_update_persistence(options);\n};\n\nMixpanelLib.prototype.report_error = function(msg, err) {\n console.error.apply(console.error, arguments);\n try {\n if (!err && !(msg instanceof Error)) {\n msg = new Error(msg);\n }\n this.get_config('error_reporter')(msg, err);\n } catch(err) {\n console.error(err);\n }\n};\n\n// EXPORTS (for closure compiler)\n\n// MixpanelLib Exports\nMixpanelLib.prototype['init'] = MixpanelLib.prototype.init;\nMixpanelLib.prototype['reset'] = MixpanelLib.prototype.reset;\nMixpanelLib.prototype['disable'] = MixpanelLib.prototype.disable;\nMixpanelLib.prototype['time_event'] = MixpanelLib.prototype.time_event;\nMixpanelLib.prototype['track'] = MixpanelLib.prototype.track;\nMixpanelLib.prototype['track_links'] = MixpanelLib.prototype.track_links;\nMixpanelLib.prototype['track_forms'] = MixpanelLib.prototype.track_forms;\nMixpanelLib.prototype['track_pageview'] = MixpanelLib.prototype.track_pageview;\nMixpanelLib.prototype['register'] = MixpanelLib.prototype.register;\nMixpanelLib.prototype['register_once'] = MixpanelLib.prototype.register_once;\nMixpanelLib.prototype['unregister'] = MixpanelLib.prototype.unregister;\nMixpanelLib.prototype['identify'] = MixpanelLib.prototype.identify;\nMixpanelLib.prototype['alias'] = MixpanelLib.prototype.alias;\nMixpanelLib.prototype['name_tag'] = MixpanelLib.prototype.name_tag;\nMixpanelLib.prototype['set_config'] = MixpanelLib.prototype.set_config;\nMixpanelLib.prototype['get_config'] = MixpanelLib.prototype.get_config;\nMixpanelLib.prototype['get_property'] = MixpanelLib.prototype.get_property;\nMixpanelLib.prototype['get_distinct_id'] = MixpanelLib.prototype.get_distinct_id;\nMixpanelLib.prototype['toString'] = MixpanelLib.prototype.toString;\nMixpanelLib.prototype['opt_out_tracking'] = MixpanelLib.prototype.opt_out_tracking;\nMixpanelLib.prototype['opt_in_tracking'] = MixpanelLib.prototype.opt_in_tracking;\nMixpanelLib.prototype['has_opted_out_tracking'] = MixpanelLib.prototype.has_opted_out_tracking;\nMixpanelLib.prototype['has_opted_in_tracking'] = MixpanelLib.prototype.has_opted_in_tracking;\nMixpanelLib.prototype['clear_opt_in_out_tracking'] = MixpanelLib.prototype.clear_opt_in_out_tracking;\nMixpanelLib.prototype['get_group'] = MixpanelLib.prototype.get_group;\nMixpanelLib.prototype['set_group'] = MixpanelLib.prototype.set_group;\nMixpanelLib.prototype['add_group'] = MixpanelLib.prototype.add_group;\nMixpanelLib.prototype['remove_group'] = MixpanelLib.prototype.remove_group;\nMixpanelLib.prototype['track_with_groups'] = MixpanelLib.prototype.track_with_groups;\nMixpanelLib.prototype['start_batch_senders'] = MixpanelLib.prototype.start_batch_senders;\nMixpanelLib.prototype['stop_batch_senders'] = MixpanelLib.prototype.stop_batch_senders;\n\n// MixpanelPersistence Exports\nMixpanelPersistence.prototype['properties'] = MixpanelPersistence.prototype.properties;\nMixpanelPersistence.prototype['update_search_keyword'] = MixpanelPersistence.prototype.update_search_keyword;\nMixpanelPersistence.prototype['update_referrer_info'] = MixpanelPersistence.prototype.update_referrer_info;\nMixpanelPersistence.prototype['get_cross_subdomain'] = MixpanelPersistence.prototype.get_cross_subdomain;\nMixpanelPersistence.prototype['clear'] = MixpanelPersistence.prototype.clear;\n\n\nvar instances = {};\nvar extend_mp = function() {\n // add all the sub mixpanel instances\n _.each(instances, function(instance, name) {\n if (name !== PRIMARY_INSTANCE_NAME) { mixpanel_master[name] = instance; }\n });\n\n // add private functions as _\n mixpanel_master['_'] = _;\n};\n\nvar override_mp_init_func = function() {\n // we override the snippets init function to handle the case where a\n // user initializes the mixpanel library after the script loads & runs\n mixpanel_master['init'] = function(token, config, name) {\n if (name) {\n // initialize a sub library\n if (!mixpanel_master[name]) {\n mixpanel_master[name] = instances[name] = create_mplib(token, config, name);\n mixpanel_master[name]._loaded();\n }\n return mixpanel_master[name];\n } else {\n var instance = mixpanel_master;\n\n if (instances[PRIMARY_INSTANCE_NAME]) {\n // main mixpanel lib already initialized\n instance = instances[PRIMARY_INSTANCE_NAME];\n } else if (token) {\n // intialize the main mixpanel lib\n instance = create_mplib(token, config, PRIMARY_INSTANCE_NAME);\n instance._loaded();\n instances[PRIMARY_INSTANCE_NAME] = instance;\n }\n\n mixpanel_master = instance;\n if (init_type === INIT_SNIPPET) {\n window$1[PRIMARY_INSTANCE_NAME] = mixpanel_master;\n }\n extend_mp();\n }\n };\n};\n\nvar add_dom_loaded_handler = function() {\n // Cross browser DOM Loaded support\n function dom_loaded_handler() {\n // function flag since we only want to execute this once\n if (dom_loaded_handler.done) { return; }\n dom_loaded_handler.done = true;\n\n DOM_LOADED = true;\n ENQUEUE_REQUESTS = false;\n\n _.each(instances, function(inst) {\n inst._dom_loaded();\n });\n }\n\n function do_scroll_check() {\n try {\n document$1.documentElement.doScroll('left');\n } catch(e) {\n setTimeout(do_scroll_check, 1);\n return;\n }\n\n dom_loaded_handler();\n }\n\n if (document$1.addEventListener) {\n if (document$1.readyState === 'complete') {\n // safari 4 can fire the DOMContentLoaded event before loading all\n // external JS (including this file). you will see some copypasta\n // on the internet that checks for 'complete' and 'loaded', but\n // 'loaded' is an IE thing\n dom_loaded_handler();\n } else {\n document$1.addEventListener('DOMContentLoaded', dom_loaded_handler, false);\n }\n } else if (document$1.attachEvent) {\n // IE\n document$1.attachEvent('onreadystatechange', dom_loaded_handler);\n\n // check to make sure we arn't in a frame\n var toplevel = false;\n try {\n toplevel = window$1.frameElement === null;\n } catch(e) {\n // noop\n }\n\n if (document$1.documentElement.doScroll && toplevel) {\n do_scroll_check();\n }\n }\n\n // fallback handler, always will work\n _.register_event(window$1, 'load', dom_loaded_handler, true);\n};\n\nfunction init_as_module() {\n init_type = INIT_MODULE;\n mixpanel_master = new MixpanelLib();\n\n override_mp_init_func();\n mixpanel_master['init']();\n add_dom_loaded_handler();\n\n return mixpanel_master;\n}\n\nvar mixpanel = init_as_module();\n\nmodule.exports = mixpanel;","/**\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","/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar ClientUAInstance = new UAParser();\nvar browser = ClientUAInstance.getBrowser();\nvar cpu = ClientUAInstance.getCPU();\nvar device = ClientUAInstance.getDevice();\nvar engine = ClientUAInstance.getEngine();\nvar os = ClientUAInstance.getOS();\nvar ua = ClientUAInstance.getUA();\nvar setUa = function setUa(userAgentString) {\n return ClientUAInstance.setUA(userAgentString);\n};\nvar parseUserAgent = function parseUserAgent(userAgent) {\n if (!userAgent) {\n console.error('No userAgent string was provided');\n return;\n }\n\n var UserAgentInstance = new UAParser(userAgent);\n return {\n UA: UserAgentInstance,\n browser: UserAgentInstance.getBrowser(),\n cpu: UserAgentInstance.getCPU(),\n device: UserAgentInstance.getDevice(),\n engine: UserAgentInstance.getEngine(),\n os: UserAgentInstance.getOS(),\n ua: UserAgentInstance.getUA(),\n setUserAgent: function setUserAgent(userAgentString) {\n return UserAgentInstance.setUA(userAgentString);\n }\n };\n};\n\nvar UAHelper = /*#__PURE__*/Object.freeze({\n ClientUAInstance: ClientUAInstance,\n browser: browser,\n cpu: cpu,\n device: device,\n engine: engine,\n os: os,\n ua: ua,\n setUa: setUa,\n parseUserAgent: parseUserAgent\n});\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _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 _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _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 _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Embedded: 'embedded',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: 'Firefox',\n Opera: 'Opera',\n Yandex: 'Yandex',\n Safari: 'Safari',\n InternetExplorer: 'Internet Explorer',\n Edge: 'Edge',\n Chromium: 'Chromium',\n Ie: 'IE',\n MobileSafari: 'Mobile Safari',\n EdgeChromium: 'Edge Chromium',\n MIUI: 'MIUI Browser',\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: 'Android',\n WindowsPhone: 'Windows Phone',\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar InitialDeviceTypes = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\n\nvar checkDeviceType = function checkDeviceType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n case DeviceTypes.Embedded:\n return {\n isEmbedded: true\n };\n\n default:\n return InitialDeviceTypes;\n }\n};\nvar setUserAgent = function setUserAgent(userAgent) {\n return setUa(userAgent);\n};\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nvar browserPayload = function browserPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar smartTvPayload = function smartTvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearablePayload = function wearablePayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar embeddedPayload = function embeddedPayload(isEmbedded, device, engine, os, ua) {\n return {\n isEmbedded: isEmbedded,\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nfunction deviceDetect(userAgent) {\n var _ref = userAgent ? parseUserAgent(userAgent) : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n engine = _ref.engine,\n os = _ref.os,\n ua = _ref.ua;\n\n var type = checkDeviceType(device.type);\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable,\n isEmbedded = type.isEmbedded;\n\n if (isBrowser) {\n return browserPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return smartTvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearablePayload(isWearable, engine, os, ua);\n }\n\n if (isEmbedded) {\n return embeddedPayload(isEmbedded, device, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType(_ref) {\n var type = _ref.type;\n return type === DeviceTypes.Mobile;\n};\nvar isTabletType = function isTabletType(_ref2) {\n var type = _ref2.type;\n return type === DeviceTypes.Tablet;\n};\nvar isMobileAndTabletType = function isMobileAndTabletType(_ref3) {\n var type = _ref3.type;\n return type === DeviceTypes.Mobile || type === DeviceTypes.Tablet;\n};\nvar isSmartTVType = function isSmartTVType(_ref4) {\n var type = _ref4.type;\n return type === DeviceTypes.SmartTv;\n};\nvar isBrowserType = function isBrowserType(_ref5) {\n var type = _ref5.type;\n return type === DeviceTypes.Browser;\n};\nvar isWearableType = function isWearableType(_ref6) {\n var type = _ref6.type;\n return type === DeviceTypes.Wearable;\n};\nvar isConsoleType = function isConsoleType(_ref7) {\n var type = _ref7.type;\n return type === DeviceTypes.Console;\n};\nvar isEmbeddedType = function isEmbeddedType(_ref8) {\n var type = _ref8.type;\n return type === DeviceTypes.Embedded;\n};\nvar getMobileVendor = function getMobileVendor(_ref9) {\n var vendor = _ref9.vendor;\n return setDefaults(vendor);\n};\nvar getMobileModel = function getMobileModel(_ref10) {\n var model = _ref10.model;\n return setDefaults(model);\n};\nvar getDeviceType = function getDeviceType(_ref11) {\n var type = _ref11.type;\n return setDefaults(type, 'browser');\n}; // os types\n\nvar isAndroidType = function isAndroidType(_ref12) {\n var name = _ref12.name;\n return name === OsTypes.Android;\n};\nvar isWindowsType = function isWindowsType(_ref13) {\n var name = _ref13.name;\n return name === OsTypes.Windows;\n};\nvar isMacOsType = function isMacOsType(_ref14) {\n var name = _ref14.name;\n return name === OsTypes.MAC_OS;\n};\nvar isWinPhoneType = function isWinPhoneType(_ref15) {\n var name = _ref15.name;\n return name === OsTypes.WindowsPhone;\n};\nvar isIOSType = function isIOSType(_ref16) {\n var name = _ref16.name;\n return name === OsTypes.IOS;\n};\nvar getOsVersion = function getOsVersion(_ref17) {\n var version = _ref17.version;\n return setDefaults(version);\n};\nvar getOsName = function getOsName(_ref18) {\n var name = _ref18.name;\n return setDefaults(name);\n}; // browser types\n\nvar isChromeType = function isChromeType(_ref19) {\n var name = _ref19.name;\n return name === BrowserTypes.Chrome;\n};\nvar isFirefoxType = function isFirefoxType(_ref20) {\n var name = _ref20.name;\n return name === BrowserTypes.Firefox;\n};\nvar isChromiumType = function isChromiumType(_ref21) {\n var name = _ref21.name;\n return name === BrowserTypes.Chromium;\n};\nvar isEdgeType = function isEdgeType(_ref22) {\n var name = _ref22.name;\n return name === BrowserTypes.Edge;\n};\nvar isYandexType = function isYandexType(_ref23) {\n var name = _ref23.name;\n return name === BrowserTypes.Yandex;\n};\nvar isSafariType = function isSafariType(_ref24) {\n var name = _ref24.name;\n return name === BrowserTypes.Safari || name === BrowserTypes.MobileSafari;\n};\nvar isMobileSafariType = function isMobileSafariType(_ref25) {\n var name = _ref25.name;\n return name === BrowserTypes.MobileSafari;\n};\nvar isOperaType = function isOperaType(_ref26) {\n var name = _ref26.name;\n return name === BrowserTypes.Opera;\n};\nvar isIEType = function isIEType(_ref27) {\n var name = _ref27.name;\n return name === BrowserTypes.InternetExplorer || name === BrowserTypes.Ie;\n};\nvar isMIUIType = function isMIUIType(_ref28) {\n var name = _ref28.name;\n return name === BrowserTypes.MIUI;\n};\nvar isSamsungBrowserType = function isSamsungBrowserType(_ref29) {\n var name = _ref29.name;\n return name === BrowserTypes.SamsungBrowser;\n};\nvar getBrowserFullVersion = function getBrowserFullVersion(_ref30) {\n var version = _ref30.version;\n return setDefaults(version);\n};\nvar getBrowserVersion = function getBrowserVersion(_ref31) {\n var major = _ref31.major;\n return setDefaults(major);\n};\nvar getBrowserName = function getBrowserName(_ref32) {\n var name = _ref32.name;\n return setDefaults(name);\n}; // engine types\n\nvar getEngineName = function getEngineName(_ref33) {\n var name = _ref33.name;\n return setDefaults(name);\n};\nvar getEngineVersion = function getEngineVersion(_ref34) {\n var version = _ref34.version;\n return setDefaults(version);\n};\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\nvar isEdgeChromiumType = function isEdgeChromiumType(ua) {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\nvar getUseragent = function getUseragent(userAg) {\n return setDefaults(userAg);\n};\n\nfunction buildSelectorsObject(options) {\n var _ref = options ? options : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n os = _ref.os,\n engine = _ref.engine,\n ua = _ref.ua;\n\n return {\n isSmartTV: isSmartTVType(device),\n isConsole: isConsoleType(device),\n isWearable: isWearableType(device),\n isEmbedded: isEmbeddedType(device),\n isMobileSafari: isMobileSafariType(browser) || getIPad13(),\n isChromium: isChromiumType(browser),\n isMobile: isMobileAndTabletType(device) || getIPad13(),\n isMobileOnly: isMobileType(device),\n isTablet: isTabletType(device) || getIPad13(),\n isBrowser: isBrowserType(device),\n isDesktop: isBrowserType(device),\n isAndroid: isAndroidType(os),\n isWinPhone: isWinPhoneType(os),\n isIOS: isIOSType(os) || getIPad13(),\n isChrome: isChromeType(browser),\n isFirefox: isFirefoxType(browser),\n isSafari: isSafariType(browser),\n isOpera: isOperaType(browser),\n isIE: isIEType(browser),\n osVersion: getOsVersion(os),\n osName: getOsName(os),\n fullBrowserVersion: getBrowserFullVersion(browser),\n browserVersion: getBrowserVersion(browser),\n browserName: getBrowserName(browser),\n mobileVendor: getMobileVendor(device),\n mobileModel: getMobileModel(device),\n engineName: getEngineName(engine),\n engineVersion: getEngineVersion(engine),\n getUA: getUseragent(ua),\n isEdge: isEdgeType(browser) || isEdgeChromiumType(ua),\n isYandex: isYandexType(browser),\n deviceType: getDeviceType(device),\n isIOS13: getIOS13(),\n isIPad13: getIPad13(),\n isIPhone13: getIphone13(),\n isIPod13: getIPod13(),\n isElectron: isElectronType(),\n isEdgeChromium: isEdgeChromiumType(ua),\n isLegacyEdge: isEdgeType(browser) && !isEdgeChromiumType(ua),\n isWindows: isWindowsType(os),\n isMacOs: isMacOsType(os),\n isMIUI: isMIUIType(browser),\n isSamsungBrowser: isSamsungBrowserType(browser)\n };\n}\n\nvar isSmartTV = isSmartTVType(device);\nvar isConsole = isConsoleType(device);\nvar isWearable = isWearableType(device);\nvar isEmbedded = isEmbeddedType(device);\nvar isMobileSafari = isMobileSafariType(browser) || getIPad13();\nvar isChromium = isChromiumType(browser);\nvar isMobile = isMobileAndTabletType(device) || getIPad13();\nvar isMobileOnly = isMobileType(device);\nvar isTablet = isTabletType(device) || getIPad13();\nvar isBrowser = isBrowserType(device);\nvar isDesktop = isBrowserType(device);\nvar isAndroid = isAndroidType(os);\nvar isWinPhone = isWinPhoneType(os);\nvar isIOS = isIOSType(os) || getIPad13();\nvar isChrome = isChromeType(browser);\nvar isFirefox = isFirefoxType(browser);\nvar isSafari = isSafariType(browser);\nvar isOpera = isOperaType(browser);\nvar isIE = isIEType(browser);\nvar osVersion = getOsVersion(os);\nvar osName = getOsName(os);\nvar fullBrowserVersion = getBrowserFullVersion(browser);\nvar browserVersion = getBrowserVersion(browser);\nvar browserName = getBrowserName(browser);\nvar mobileVendor = getMobileVendor(device);\nvar mobileModel = getMobileModel(device);\nvar engineName = getEngineName(engine);\nvar engineVersion = getEngineVersion(engine);\nvar getUA = getUseragent(ua);\nvar isEdge = isEdgeType(browser) || isEdgeChromiumType(ua);\nvar isYandex = isYandexType(browser);\nvar deviceType = getDeviceType(device);\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType(ua);\nvar isLegacyEdge = isEdgeType(browser) && !isEdgeChromiumType(ua);\nvar isWindows = isWindowsType(os);\nvar isMacOs = isMacOsType(os);\nvar isMIUI = isMIUIType(browser);\nvar isSamsungBrowser = isSamsungBrowserType(browser);\nvar getSelectorsByUserAgent = function getSelectorsByUserAgent(userAgent) {\n if (!userAgent || typeof userAgent !== 'string') {\n console.error('No valid user agent string was provided');\n return;\n }\n\n var _UAHelper$parseUserAg = parseUserAgent(userAgent),\n device = _UAHelper$parseUserAg.device,\n browser = _UAHelper$parseUserAg.browser,\n os = _UAHelper$parseUserAg.os,\n engine = _UAHelper$parseUserAg.engine,\n ua = _UAHelper$parseUserAg.ua;\n\n return buildSelectorsObject({\n device: device,\n browser: browser,\n os: os,\n engine: engine,\n ua: ua\n });\n};\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return /*#__PURE__*/function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component);\n}\n\nfunction useMobileOrientation() {\n var _useState = React.useState(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n return {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var handleOrientationChange = React.useCallback(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n var next = {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n state.orientation !== next.orientation && setState(next);\n }, [state.orientation]);\n React.useEffect(function () {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n handleOrientationChange();\n window.addEventListener(\"load\", handleOrientationChange, false);\n window.addEventListener(\"resize\", handleOrientationChange, false);\n }\n\n return function () {\n window.removeEventListener(\"resize\", handleOrientationChange, false);\n window.removeEventListener(\"load\", handleOrientationChange, false);\n };\n }, [handleOrientationChange]);\n return state;\n}\n\nfunction useDeviceData(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n return parseUserAgent(hookUserAgent);\n}\n\nfunction useDeviceSelectors(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n var deviceData = useDeviceData(hookUserAgent);\n var selectors = buildSelectorsObject(deviceData);\n return [selectors, deviceData];\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getSelectorsByUserAgent = getSelectorsByUserAgent;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isEmbedded = isEmbedded;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.parseUserAgent = parseUserAgent;\nexports.setUserAgent = setUserAgent;\nexports.useDeviceData = useDeviceData;\nexports.useDeviceSelectors = useDeviceSelectors;\nexports.useMobileOrientation = useMobileOrientation;\nexports.withOrientationChange = withOrientationChange;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== \":\" && (title.charAt(index + match.length) !== \"-\" || title.charAt(index - 1) === \"-\") && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}\n\n// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nfunction mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === \"string\" && s.indexOf(\"@\") !== -1;\n}\nvar redacted = \"REDACTED (Potential Email Address)\";\nfunction redactEmail(string) {\n if (mightBeEmail(string)) {\n console.warn(\"This arg looks like an email address, redacting.\");\n return redacted;\n }\n return string;\n}\nfunction format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var _str = s || \"\";\n if (titleCase) {\n _str = toTitleCase(s);\n }\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n return _str;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GA4 = void 0;\nvar _gtag = _interopRequireDefault(require(\"./gtag\"));\nvar _format = _interopRequireDefault(require(\"./format\"));\nvar _excluded = [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\", \"hitType\"],\n _excluded2 = [\"title\", \"location\"],\n _excluded3 = [\"page\", \"hitType\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*\nLinks\nhttps://developers.google.com/gtagjs/reference/api\nhttps://developers.google.com/tag-platform/gtagjs/reference\n*/\n/**\n * @typedef GaOptions\n * @type {Object}\n * @property {boolean} [cookieUpdate=true]\n * @property {number} [cookieExpires=63072000] Default two years\n * @property {string} [cookieDomain=\"auto\"]\n * @property {string} [cookieFlags]\n * @property {string} [userId]\n * @property {string} [clientId]\n * @property {boolean} [anonymizeIp]\n * @property {string} [contentGroup1]\n * @property {string} [contentGroup2]\n * @property {string} [contentGroup3]\n * @property {string} [contentGroup4]\n * @property {string} [contentGroup5]\n * @property {boolean} [allowAdFeatures=true]\n * @property {boolean} [allowAdPersonalizationSignals]\n * @property {boolean} [nonInteraction]\n * @property {string} [page]\n */\n/**\n * @typedef UaEventOptions\n * @type {Object}\n * @property {string} action\n * @property {string} category\n * @property {string} [label]\n * @property {number} [value]\n * @property {boolean} [nonInteraction]\n * @property {('beacon'|'xhr'|'image')} [transport]\n */\n/**\n * @typedef InitOptions\n * @type {Object}\n * @property {string} trackingId\n * @property {GaOptions|any} [gaOptions]\n * @property {Object} [gtagOptions] New parameter\n */\nvar GA4 = /*#__PURE__*/function () {\n function GA4() {\n var _this = this;\n _classCallCheck(this, GA4);\n _defineProperty(this, \"reset\", function () {\n _this.isInitialized = false;\n _this._testMode = false;\n _this._currentMeasurementId;\n _this._hasLoadedGA = false;\n _this._isQueuing = false;\n _this._queueGtag = [];\n });\n _defineProperty(this, \"_gtag\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!_this._testMode) {\n if (_this._isQueuing) {\n _this._queueGtag.push(args);\n } else {\n _gtag[\"default\"].apply(void 0, args);\n }\n } else {\n _this._queueGtag.push(args);\n }\n });\n _defineProperty(this, \"_loadGA\", function (GA_MEASUREMENT_ID, nonce) {\n var gtagUrl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"https://www.googletagmanager.com/gtag/js\";\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n if (!_this._hasLoadedGA) {\n // Global Site Tag (gtag.js) - Google Analytics\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = \"\".concat(gtagUrl, \"?id=\").concat(GA_MEASUREMENT_ID);\n if (nonce) {\n script.setAttribute(\"nonce\", nonce);\n }\n document.body.appendChild(script);\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n _this._hasLoadedGA = true;\n }\n });\n _defineProperty(this, \"_toGtagOptions\", function (gaOptions) {\n if (!gaOptions) {\n return;\n }\n var mapFields = {\n // Old https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#cookieUpdate\n // New https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#cookie_update\n cookieUpdate: \"cookie_update\",\n cookieExpires: \"cookie_expires\",\n cookieDomain: \"cookie_domain\",\n cookieFlags: \"cookie_flags\",\n // must be in set method?\n userId: \"user_id\",\n clientId: \"client_id\",\n anonymizeIp: \"anonymize_ip\",\n // https://support.google.com/analytics/answer/2853546?hl=en#zippy=%2Cin-this-article\n contentGroup1: \"content_group1\",\n contentGroup2: \"content_group2\",\n contentGroup3: \"content_group3\",\n contentGroup4: \"content_group4\",\n contentGroup5: \"content_group5\",\n // https://support.google.com/analytics/answer/9050852?hl=en\n allowAdFeatures: \"allow_google_signals\",\n allowAdPersonalizationSignals: \"allow_ad_personalization_signals\",\n nonInteraction: \"non_interaction\",\n page: \"page_path\",\n hitCallback: \"event_callback\"\n };\n var gtagOptions = Object.entries(gaOptions).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (mapFields[key]) {\n prev[mapFields[key]] = value;\n } else {\n prev[key] = value;\n }\n return prev;\n }, {});\n return gtagOptions;\n });\n _defineProperty(this, \"initialize\", function (GA_MEASUREMENT_ID) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!GA_MEASUREMENT_ID) {\n throw new Error(\"Require GA_MEASUREMENT_ID\");\n }\n var initConfigs = typeof GA_MEASUREMENT_ID === \"string\" ? [{\n trackingId: GA_MEASUREMENT_ID\n }] : GA_MEASUREMENT_ID;\n _this._currentMeasurementId = initConfigs[0].trackingId;\n var gaOptions = options.gaOptions,\n gtagOptions = options.gtagOptions,\n nonce = options.nonce,\n _options$testMode = options.testMode,\n testMode = _options$testMode === void 0 ? false : _options$testMode,\n gtagUrl = options.gtagUrl;\n _this._testMode = testMode;\n if (!testMode) {\n _this._loadGA(_this._currentMeasurementId, nonce, gtagUrl);\n }\n if (!_this.isInitialized) {\n _this._gtag(\"js\", new Date());\n initConfigs.forEach(function (config) {\n var mergedGtagOptions = _objectSpread(_objectSpread(_objectSpread({}, _this._toGtagOptions(_objectSpread(_objectSpread({}, gaOptions), config.gaOptions))), gtagOptions), config.gtagOptions);\n if (Object.keys(mergedGtagOptions).length) {\n _this._gtag(\"config\", config.trackingId, mergedGtagOptions);\n } else {\n _this._gtag(\"config\", config.trackingId);\n }\n });\n }\n _this.isInitialized = true;\n if (!testMode) {\n var queues = _toConsumableArray(_this._queueGtag);\n _this._queueGtag = [];\n _this._isQueuing = false;\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n if (queue[0] === \"get\") {\n _this._isQueuing = true;\n }\n }\n }\n });\n _defineProperty(this, \"set\", function (fieldsObject) {\n if (!fieldsObject) {\n console.warn(\"`fieldsObject` is required in .set()\");\n return;\n }\n if (_typeof(fieldsObject) !== \"object\") {\n console.warn(\"Expected `fieldsObject` arg to be an Object\");\n return;\n }\n if (Object.keys(fieldsObject).length === 0) {\n console.warn(\"empty `fieldsObject` given to .set()\");\n }\n _this._gaCommand(\"set\", fieldsObject);\n });\n _defineProperty(this, \"_gaCommandSendEvent\", function (eventCategory, eventAction, eventLabel, eventValue, fieldsObject) {\n _this._gtag(\"event\", eventAction, _objectSpread(_objectSpread({\n event_category: eventCategory,\n event_label: eventLabel,\n value: eventValue\n }, fieldsObject && {\n non_interaction: fieldsObject.nonInteraction\n }), _this._toGtagOptions(fieldsObject)));\n });\n _defineProperty(this, \"_gaCommandSendEventParameters\", function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendEvent.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$ = args[0],\n eventCategory = _args$.eventCategory,\n eventAction = _args$.eventAction,\n eventLabel = _args$.eventLabel,\n eventValue = _args$.eventValue,\n hitType = _args$.hitType,\n rest = _objectWithoutProperties(_args$, _excluded);\n _this._gaCommandSendEvent(eventCategory, eventAction, eventLabel, eventValue, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSendTiming\", function (timingCategory, timingVar, timingValue, timingLabel) {\n _this._gtag(\"event\", \"timing_complete\", {\n name: timingVar,\n value: timingValue,\n event_category: timingCategory,\n event_label: timingLabel\n });\n });\n _defineProperty(this, \"_gaCommandSendPageview\", function (page, fieldsObject) {\n if (fieldsObject && Object.keys(fieldsObject).length) {\n var _this$_toGtagOptions = _this._toGtagOptions(fieldsObject),\n title = _this$_toGtagOptions.title,\n location = _this$_toGtagOptions.location,\n rest = _objectWithoutProperties(_this$_toGtagOptions, _excluded2);\n _this._gtag(\"event\", \"page_view\", _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, page && {\n page_path: page\n }), title && {\n page_title: title\n }), location && {\n page_location: location\n }), rest));\n } else if (page) {\n _this._gtag(\"event\", \"page_view\", {\n page_path: page\n });\n } else {\n _this._gtag(\"event\", \"page_view\");\n }\n });\n _defineProperty(this, \"_gaCommandSendPageviewParameters\", function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendPageview.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$2 = args[0],\n page = _args$2.page,\n hitType = _args$2.hitType,\n rest = _objectWithoutProperties(_args$2, _excluded3);\n _this._gaCommandSendPageview(page, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSend\", function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n var hitType = typeof args[0] === \"string\" ? args[0] : args[0].hitType;\n switch (hitType) {\n case \"event\":\n _this._gaCommandSendEventParameters.apply(_this, args);\n break;\n case \"pageview\":\n _this._gaCommandSendPageviewParameters.apply(_this, args);\n break;\n case \"timing\":\n _this._gaCommandSendTiming.apply(_this, _toConsumableArray(args.slice(1)));\n break;\n case \"screenview\":\n case \"transaction\":\n case \"item\":\n case \"social\":\n case \"exception\":\n console.warn(\"Unsupported send command: \".concat(hitType));\n break;\n default:\n console.warn(\"Send command doesn't exist: \".concat(hitType));\n }\n });\n _defineProperty(this, \"_gaCommandSet\", function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n if (typeof args[0] === \"string\") {\n args[0] = _defineProperty({}, args[0], args[1]);\n }\n _this._gtag(\"set\", _this._toGtagOptions(args[0]));\n });\n _defineProperty(this, \"_gaCommand\", function (command) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n switch (command) {\n case \"send\":\n _this._gaCommandSend.apply(_this, args);\n break;\n case \"set\":\n _this._gaCommandSet.apply(_this, args);\n break;\n default:\n console.warn(\"Command doesn't exist: \".concat(command));\n }\n });\n _defineProperty(this, \"ga\", function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommand.apply(_this, args);\n } else {\n var readyCallback = args[0];\n _this._gtag(\"get\", _this._currentMeasurementId, \"client_id\", function (clientId) {\n _this._isQueuing = false;\n var queues = _this._queueGtag;\n readyCallback({\n get: function get(property) {\n return property === \"clientId\" ? clientId : property === \"trackingId\" ? _this._currentMeasurementId : property === \"apiVersion\" ? \"1\" : undefined;\n }\n });\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n }\n });\n _this._isQueuing = true;\n }\n return _this.ga;\n });\n _defineProperty(this, \"event\", function (optionsOrName, params) {\n if (typeof optionsOrName === \"string\") {\n _this._gtag(\"event\", optionsOrName, _this._toGtagOptions(params));\n } else {\n var action = optionsOrName.action,\n category = optionsOrName.category,\n label = optionsOrName.label,\n value = optionsOrName.value,\n nonInteraction = optionsOrName.nonInteraction,\n transport = optionsOrName.transport;\n if (!category || !action) {\n console.warn(\"args.category AND args.action are required in event()\");\n return;\n }\n\n // Required Fields\n var fieldObject = {\n hitType: \"event\",\n eventCategory: (0, _format[\"default\"])(category),\n eventAction: (0, _format[\"default\"])(action)\n };\n\n // Optional Fields\n if (label) {\n fieldObject.eventLabel = (0, _format[\"default\"])(label);\n }\n if (typeof value !== \"undefined\") {\n if (typeof value !== \"number\") {\n console.warn(\"Expected `args.value` arg to be a Number.\");\n } else {\n fieldObject.eventValue = value;\n }\n }\n if (typeof nonInteraction !== \"undefined\") {\n if (typeof nonInteraction !== \"boolean\") {\n console.warn(\"`args.nonInteraction` must be a boolean.\");\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n if (typeof transport !== \"undefined\") {\n if (typeof transport !== \"string\") {\n console.warn(\"`args.transport` must be a string.\");\n } else {\n if ([\"beacon\", \"xhr\", \"image\"].indexOf(transport) === -1) {\n console.warn(\"`args.transport` must be either one of these values: `beacon`, `xhr` or `image`\");\n }\n fieldObject.transport = transport;\n }\n }\n _this._gaCommand(\"send\", fieldObject);\n }\n });\n _defineProperty(this, \"send\", function (fieldObject) {\n _this._gaCommand(\"send\", fieldObject);\n });\n this.reset();\n }\n _createClass(GA4, [{\n key: \"gtag\",\n value: function gtag() {\n this._gtag.apply(this, arguments);\n }\n }]);\n return GA4;\n}();\nexports.GA4 = GA4;\nvar _default = new GA4();\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar gtag = function gtag() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof window !== \"undefined\") {\n var _window;\n if (typeof window.gtag === \"undefined\") {\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n }\n (_window = window).gtag.apply(_window, args);\n }\n};\nvar _default = gtag;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ReactGAImplementation = void 0;\nvar _ga = _interopRequireWildcard(require(\"./ga4\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ReactGAImplementation = _ga.GA4;\nexports.ReactGAImplementation = ReactGAImplementation;\nvar _default = _ga[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PrevArrow = exports.NextArrow = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _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\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n var _super = _createSuper(PrevArrow);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n }\n }]);\n\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.PrevArrow = PrevArrow;\n\nvar NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n var _super2 = _createSuper(NextArrow);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n }\n }]);\n\n return NextArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.NextArrow = NextArrow;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nvar _default = defaultProps;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _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\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n var _super = _createSuper(Dots);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n\n var _leftBound = rightBound - (slidesToScroll - 1);\n\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(require(\"./slider\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nvar _track = require(\"./track\");\n\nvar _dots = require(\"./dots\");\n\nvar _arrows = require(\"./arrows\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _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\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n var _super = _createSuper(InnerSlider);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n _this.ro.disconnect();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n var setTrackStyle = _this.didPropsChange(prevProps);\n\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node); // prevent warning: setting state on unmounted component (server side rendering)\n\n if (!isTrackMounted) return;\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n return {\n trackStyle: _trackStyle\n };\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n\n nodes[0] && nodes[0].focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n\n var ssrState = _this.ssrInit();\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _innerSlider = require(\"./inner-slider\");\n\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\n\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _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\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _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\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var focusedSlide;\n\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n var _super = _createSuper(Track);\n\n function Track() {\n var _this;\n\n _classCallCheck(this, Track);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n\n return _this;\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSpecKeys = exports.checkNavigable = exports.changeSlide = exports.canUseDOM = exports.canGoNext = void 0;\nexports.clamp = clamp;\nexports.swipeStart = exports.swipeMove = exports.swipeEnd = exports.slidesOnRight = exports.slidesOnLeft = exports.slideHandler = exports.siblingDirection = exports.safePreventDefault = exports.lazyStartIndex = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.keyHandler = exports.initializedState = exports.getWidth = exports.getTrackLeft = exports.getTrackCSS = exports.getTrackAnimateCSS = exports.getTotalSlides = exports.getSwipeDirection = exports.getSlideCount = exports.getRequiredLazySlides = exports.getPreClones = exports.getPostClones = exports.getOnDemandLazySlides = exports.getNavigableIndexes = exports.getHeight = exports.extractObject = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\n\nexports.safePreventDefault = safePreventDefault;\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n","/* UAParser.js v1.0.36\n Copyright © 2012-2021 Faisal Salman \n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"1.0.36\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=350;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SHARP=\"Sharp\",SONY=\"Sony\",VIERA=\"Viera\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\",CHROMIUM_OS=\"Chromium OS\",MAC_OS=\"Mac OS\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j2){_device[MODEL]=\"iPad\";_device[TYPE]=TABLET}return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined;_engine[VERSION]=undefined;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined;_os[VERSION]=undefined;rgxMapper.call(_os,_ua,_rgxmap.os);if(_isSelfNav&&!_os[NAME]&&_uach&&_uach.platform!=\"Unknown\"){_os[NAME]=_uach.platform.replace(/chrome os/i,CHROMIUM_OS).replace(/macos/i,MAC_OS)}return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","/**\n * @license React\n * use-sync-external-store-with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var g=require(\"react\");function n(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var p=\"function\"===typeof Object.is?Object.is:n,q=g.useSyncExternalStore,r=g.useRef,t=g.useEffect,u=g.useMemo,v=g.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,h){var c=r(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=u(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==h&&f.hasValue){var b=f.value;if(h(b,a))return k=b}return k=a}b=k;if(p(d,a))return b;var e=l(a);if(void 0!==h&&h(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,h]);var d=q(a,c[0],c[1]);\nt(function(){f.hasValue=!0;f.value=d},[d]);v(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/use-sync-external-store-with-selector.production.min.js');\n} else {\n module.exports = require('./cjs/use-sync-external-store-with-selector.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"./\";","import * as React from 'react';\nexport const defaultIconPrefixCls = 'anticon';\nconst defaultGetPrefixCls = (suffixCls, customizePrefixCls) => {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? `ant-${suffixCls}` : 'ant';\n};\n// zombieJ: 🚨 Do not pass `defaultRenderEmpty` here since it will cause circular dependency.\nexport const ConfigContext = /*#__PURE__*/React.createContext({\n // We provide a default function for Context without provider\n getPrefixCls: defaultGetPrefixCls,\n iconPrefixCls: defaultIconPrefixCls\n});\nexport const {\n Consumer: ConfigConsumer\n} = ConfigContext;","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nexport const canUseDocElement = () => canUseDom() && window.document.documentElement;\nexport { isStyleSupport };\nlet flexGapSupported;\nexport const detectFlexGapSupported = () => {\n if (!canUseDocElement()) {\n return false;\n }\n if (flexGapSupported !== undefined) {\n return flexGapSupported;\n }\n // create flex container with row-gap set\n const flex = document.createElement('div');\n flex.style.display = 'flex';\n flex.style.flexDirection = 'column';\n flex.style.rowGap = '1px';\n // create two, elements inside it\n flex.appendChild(document.createElement('div'));\n flex.appendChild(document.createElement('div'));\n // append to the DOM (needed to obtain scrollHeight)\n document.body.appendChild(flex);\n flexGapSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap\n document.body.removeChild(flex);\n return flexGapSupported;\n};","import * as React from 'react';\nimport { detectFlexGapSupported } from '../styleChecker';\nexport default (() => {\n const [flexible, setFlexible] = React.useState(false);\n React.useEffect(() => {\n setFlexible(detectFlexGapSupported());\n }, []);\n return flexible;\n});","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;\n/* eslint-enable */","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n var refSet = new Set();\n function deepEqual(a, b) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var circular = refSet.has(a);\n warning(!circular, 'Warning: There may be circular references');\n if (circular) {\n return false;\n }\n if (a === b) {\n return true;\n }\n if (shallow && level > 1) {\n return false;\n }\n refSet.add(a);\n var newLevel = level + 1;\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], newLevel)) {\n return false;\n }\n }\n return true;\n }\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every(function (key) {\n return deepEqual(a[key], b[key], newLevel);\n });\n }\n // other\n return false;\n }\n return deepEqual(obj1, obj2);\n}\nexport default isEqual;","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// [times, realValue]\nvar Entity = /*#__PURE__*/function () {\n function Entity() {\n _classCallCheck(this, Entity);\n _defineProperty(this, \"cache\", new Map());\n }\n _createClass(Entity, [{\n key: \"get\",\n value: function get(keys) {\n return this.cache.get(keys.join('%')) || null;\n }\n }, {\n key: \"update\",\n value: function update(keys, valueFn) {\n var path = keys.join('%');\n var prevValue = this.cache.get(path);\n var nextValue = valueFn(prevValue);\n if (nextValue === null) {\n this.cache.delete(path);\n } else {\n this.cache.set(path, nextValue);\n }\n }\n }]);\n return Entity;\n}();\nexport default Entity;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport CacheEntity from \"./Cache\";\nexport var ATTR_TOKEN = 'data-token-hash';\nexport var ATTR_MARK = 'data-css-hash';\nexport var ATTR_DEV_CACHE_PATH = 'data-dev-cache-path';\n\n// Mark css-in-js instance in style element\nexport var CSS_IN_JS_INSTANCE = '__cssinjs_instance__';\nexport var CSS_IN_JS_INSTANCE_ID = Math.random().toString(12).slice(2);\nexport function createCache() {\n if (typeof document !== 'undefined' && document.head && document.body) {\n var styles = document.body.querySelectorAll(\"style[\".concat(ATTR_MARK, \"]\")) || [];\n var firstChild = document.head.firstChild;\n Array.from(styles).forEach(function (style) {\n style[CSS_IN_JS_INSTANCE] = style[CSS_IN_JS_INSTANCE] || CSS_IN_JS_INSTANCE_ID;\n\n // Not force move if no head\n document.head.insertBefore(style, firstChild);\n });\n\n // Deduplicate of moved styles\n var styleHash = {};\n Array.from(document.querySelectorAll(\"style[\".concat(ATTR_MARK, \"]\"))).forEach(function (style) {\n var hash = style.getAttribute(ATTR_MARK);\n if (styleHash[hash]) {\n if (style[CSS_IN_JS_INSTANCE] === CSS_IN_JS_INSTANCE_ID) {\n var _style$parentNode;\n (_style$parentNode = style.parentNode) === null || _style$parentNode === void 0 ? void 0 : _style$parentNode.removeChild(style);\n }\n } else {\n styleHash[hash] = true;\n }\n });\n }\n return new CacheEntity();\n}\nvar StyleContext = /*#__PURE__*/React.createContext({\n hashPriority: 'low',\n cache: createCache(),\n defaultCache: true\n});\nexport var StyleProvider = function StyleProvider(props) {\n var children = props.children,\n restProps = _objectWithoutProperties(props, _excluded);\n var parentContext = React.useContext(StyleContext);\n var context = useMemo(function () {\n var mergedContext = _objectSpread({}, parentContext);\n Object.keys(restProps).forEach(function (key) {\n var value = restProps[key];\n if (restProps[key] !== undefined) {\n mergedContext[key] = value;\n }\n });\n var cache = restProps.cache;\n mergedContext.cache = mergedContext.cache || createCache();\n mergedContext.defaultCache = !cache && parentContext.defaultCache;\n return mergedContext;\n }, [parentContext, restProps], function (prev, next) {\n return !isEqual(prev[0], next[0], true) || !isEqual(prev[1], next[1], true);\n });\n return /*#__PURE__*/React.createElement(StyleContext.Provider, {\n value: context\n }, children);\n};\nexport default StyleContext;","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function useProdHMR() {\n return false;\n}\nvar webpackHMR = false;\nfunction useDevHMR() {\n return webpackHMR;\n}\nexport default process.env.NODE_ENV === 'production' ? useProdHMR : useDevHMR;\n\n// Webpack `module.hot.accept` do not support any deps update trigger\n// We have to hack handler to force mark as HRM\nif (process.env.NODE_ENV !== 'production' && typeof module !== 'undefined' && module && module.hot) {\n var win = window;\n if (typeof win.webpackHotUpdate === 'function') {\n var originWebpackHotUpdate = win.webpackHotUpdate;\n win.webpackHotUpdate = function () {\n webpackHMR = true;\n setTimeout(function () {\n webpackHMR = false;\n }, 0);\n return originWebpackHotUpdate.apply(void 0, arguments);\n };\n }\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport StyleContext from \"../StyleContext\";\nimport useHMR from \"./useHMR\";\nexport default function useClientCache(prefix, keyPath, cacheFn, onCacheRemove) {\n var _React$useContext = React.useContext(StyleContext),\n globalCache = _React$useContext.cache;\n var fullPath = [prefix].concat(_toConsumableArray(keyPath));\n var HMRUpdate = useHMR();\n\n // Create cache\n React.useMemo(function () {\n globalCache.update(fullPath, function (prevCache) {\n var _ref = prevCache || [],\n _ref2 = _slicedToArray(_ref, 2),\n _ref2$ = _ref2[0],\n times = _ref2$ === void 0 ? 0 : _ref2$,\n cache = _ref2[1];\n\n // HMR should always ignore cache since developer may change it\n var tmpCache = cache;\n if (process.env.NODE_ENV !== 'production' && cache && HMRUpdate) {\n onCacheRemove === null || onCacheRemove === void 0 ? void 0 : onCacheRemove(tmpCache, HMRUpdate);\n tmpCache = null;\n }\n var mergedCache = tmpCache || cacheFn();\n return [times + 1, mergedCache];\n });\n }, /* eslint-disable react-hooks/exhaustive-deps */\n [fullPath.join('_')]\n /* eslint-enable */);\n\n // Remove if no need anymore\n React.useEffect(function () {\n return function () {\n globalCache.update(fullPath, function (prevCache) {\n var _ref3 = prevCache || [],\n _ref4 = _slicedToArray(_ref3, 2),\n _ref4$ = _ref4[0],\n times = _ref4$ === void 0 ? 0 : _ref4$,\n cache = _ref4[1];\n var nextCount = times - 1;\n if (nextCount === 0) {\n onCacheRemove === null || onCacheRemove === void 0 ? void 0 : onCacheRemove(cache, false);\n return null;\n }\n return [times - 1, cache];\n });\n };\n }, fullPath);\n return globalCache.get(fullPath)[1];\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nvar APPEND_ORDER = 'data-rc-order';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n var head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!canUseDom()) {\n return null;\n }\n var csp = option.csp,\n prepend = option.prepend;\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, getOrder(prepend));\n if (csp !== null && csp !== void 0 && csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (prepend === 'queue') {\n var existStyle = findStyles(container).filter(function (node) {\n return ['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER));\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return findStyles(container).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\nexport function removeCSS(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n if (existNode) {\n var container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(option);\n\n // Sync real parent\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n if (existNode) {\n var _option$csp, _option$csp2;\n if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport hash from '@emotion/hash';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nexport function flattenToken(token) {\n var str = '';\n Object.keys(token).forEach(function (key) {\n var value = token[key];\n str += key;\n if (value && _typeof(value) === 'object') {\n str += flattenToken(value);\n } else {\n str += value;\n }\n });\n return str;\n}\n\n/**\n * Convert derivative token to key string\n */\nexport function token2key(token, salt) {\n return hash(\"\".concat(salt, \"_\").concat(flattenToken(token)));\n}\nvar layerKey = \"layer-\".concat(Date.now(), \"-\").concat(Math.random()).replace(/\\./g, '');\nvar layerWidth = '903px';\nfunction supportSelector(styleStr, handleElement) {\n if (canUseDom()) {\n var _ele$parentNode;\n updateCSS(styleStr, layerKey);\n var _ele = document.createElement('div');\n _ele.style.position = 'fixed';\n _ele.style.left = '0';\n _ele.style.top = '0';\n handleElement === null || handleElement === void 0 ? void 0 : handleElement(_ele);\n document.body.appendChild(_ele);\n if (process.env.NODE_ENV !== 'production') {\n _ele.innerHTML = 'Test';\n _ele.style.zIndex = '9999999';\n }\n var support = getComputedStyle(_ele).width === layerWidth;\n (_ele$parentNode = _ele.parentNode) === null || _ele$parentNode === void 0 ? void 0 : _ele$parentNode.removeChild(_ele);\n removeCSS(layerKey);\n return support;\n }\n return false;\n}\nvar canLayer = undefined;\nexport function supportLayer() {\n if (canLayer === undefined) {\n canLayer = supportSelector(\"@layer \".concat(layerKey, \" { .\").concat(layerKey, \" { width: \").concat(layerWidth, \"!important; } }\"), function (ele) {\n ele.className = layerKey;\n });\n }\n return canLayer;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport hash from '@emotion/hash';\nimport { ATTR_TOKEN, CSS_IN_JS_INSTANCE, CSS_IN_JS_INSTANCE_ID } from \"../StyleContext\";\nimport useGlobalCache from \"./useGlobalCache\";\nimport { flattenToken, token2key } from \"../util\";\nvar EMPTY_OVERRIDE = {};\n\n// Generate different prefix to make user selector break in production env.\n// This helps developer not to do style override directly on the hash id.\nvar hashPrefix = process.env.NODE_ENV !== 'production' ? 'css-dev-only-do-not-override' : 'css';\nvar tokenKeys = new Map();\nfunction recordCleanToken(tokenKey) {\n tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) + 1);\n}\nfunction removeStyleTags(key) {\n if (typeof document !== 'undefined') {\n var styles = document.querySelectorAll(\"style[\".concat(ATTR_TOKEN, \"=\\\"\").concat(key, \"\\\"]\"));\n styles.forEach(function (style) {\n if (style[CSS_IN_JS_INSTANCE] === CSS_IN_JS_INSTANCE_ID) {\n var _style$parentNode;\n (_style$parentNode = style.parentNode) === null || _style$parentNode === void 0 ? void 0 : _style$parentNode.removeChild(style);\n }\n });\n }\n}\n\n// Remove will check current keys first\nfunction cleanTokenStyle(tokenKey) {\n tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) - 1);\n var tokenKeyList = Array.from(tokenKeys.keys());\n var cleanableKeyList = tokenKeyList.filter(function (key) {\n var count = tokenKeys.get(key) || 0;\n return count <= 0;\n });\n if (cleanableKeyList.length < tokenKeyList.length) {\n cleanableKeyList.forEach(function (key) {\n removeStyleTags(key);\n tokenKeys.delete(key);\n });\n }\n}\n\n/**\n * Cache theme derivative token as global shared one\n * @param theme Theme entity\n * @param tokens List of tokens, used for cache. Please do not dynamic generate object directly\n * @param option Additional config\n * @returns Call Theme.getDerivativeToken(tokenObject) to get token\n */\nexport default function useCacheToken(theme, tokens) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _option$salt = option.salt,\n salt = _option$salt === void 0 ? '' : _option$salt,\n _option$override = option.override,\n override = _option$override === void 0 ? EMPTY_OVERRIDE : _option$override,\n formatToken = option.formatToken;\n\n // Basic - We do basic cache here\n var mergedToken = React.useMemo(function () {\n return Object.assign.apply(Object, [{}].concat(_toConsumableArray(tokens)));\n }, [tokens]);\n var tokenStr = React.useMemo(function () {\n return flattenToken(mergedToken);\n }, [mergedToken]);\n var overrideTokenStr = React.useMemo(function () {\n return flattenToken(override);\n }, [override]);\n var cachedToken = useGlobalCache('token', [salt, theme.id, tokenStr, overrideTokenStr], function () {\n var derivativeToken = theme.getDerivativeToken(mergedToken);\n\n // Merge with override\n var mergedDerivativeToken = _objectSpread(_objectSpread({}, derivativeToken), override);\n\n // Format if needed\n if (formatToken) {\n mergedDerivativeToken = formatToken(mergedDerivativeToken);\n }\n\n // Optimize for `useStyleRegister` performance\n var tokenKey = token2key(mergedDerivativeToken, salt);\n mergedDerivativeToken._tokenKey = tokenKey;\n recordCleanToken(tokenKey);\n var hashId = \"\".concat(hashPrefix, \"-\").concat(hash(tokenKey));\n mergedDerivativeToken._hashId = hashId; // Not used\n\n return [mergedDerivativeToken, hashId];\n }, function (cache) {\n // Remove token will remove all related style\n cleanTokenStyle(cache[0]._tokenKey);\n });\n return cachedToken;\n}","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport hash from '@emotion/hash';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport * as React from 'react';\n// @ts-ignore\nimport unitless from '@emotion/unitless';\nimport { compile, serialize, stringify } from 'stylis';\nimport { contentQuotesLinter, hashedAnimationLinter } from \"../linters\";\nimport StyleContext, { ATTR_DEV_CACHE_PATH, ATTR_MARK, ATTR_TOKEN, CSS_IN_JS_INSTANCE, CSS_IN_JS_INSTANCE_ID } from \"../StyleContext\";\nimport { supportLayer } from \"../util\";\nimport useGlobalCache from \"./useGlobalCache\";\nvar isClientSide = canUseDom();\nvar SKIP_CHECK = '_skip_check_';\n// ============================================================================\n// == Parser ==\n// ============================================================================\n// Preprocessor style content to browser support one\nexport function normalizeStyle(styleStr) {\n var serialized = serialize(compile(styleStr), stringify);\n return serialized.replace(/\\{%%%\\:[^;];}/g, ';');\n}\nfunction isCompoundCSSProperty(value) {\n return _typeof(value) === 'object' && value && SKIP_CHECK in value;\n}\n\n// 注入 hash 值\nfunction injectSelectorHash(key, hashId, hashPriority) {\n if (!hashId) {\n return key;\n }\n var hashClassName = \".\".concat(hashId);\n var hashSelector = hashPriority === 'low' ? \":where(\".concat(hashClassName, \")\") : hashClassName;\n\n // 注入 hashId\n var keys = key.split(',').map(function (k) {\n var _firstPath$match;\n var fullPath = k.trim().split(/\\s+/);\n\n // 如果 Selector 第一个是 HTML Element,那我们就插到它的后面。反之,就插到最前面。\n var firstPath = fullPath[0] || '';\n var htmlElement = ((_firstPath$match = firstPath.match(/^\\w+/)) === null || _firstPath$match === void 0 ? void 0 : _firstPath$match[0]) || '';\n firstPath = \"\".concat(htmlElement).concat(hashSelector).concat(firstPath.slice(htmlElement.length));\n return [firstPath].concat(_toConsumableArray(fullPath.slice(1))).join(' ');\n });\n return keys.join(',');\n}\n// Parse CSSObject to style content\nexport var parseStyle = function parseStyle(interpolation) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n root: true,\n parentSelectors: []\n },\n root = _ref.root,\n injectHash = _ref.injectHash,\n parentSelectors = _ref.parentSelectors;\n var hashId = config.hashId,\n layer = config.layer,\n path = config.path,\n hashPriority = config.hashPriority,\n _config$transformers = config.transformers,\n transformers = _config$transformers === void 0 ? [] : _config$transformers,\n _config$linters = config.linters,\n linters = _config$linters === void 0 ? [] : _config$linters;\n var styleStr = '';\n var effectStyle = {};\n function parseKeyframes(keyframes) {\n var animationName = keyframes.getName(hashId);\n if (!effectStyle[animationName]) {\n var _parseStyle = parseStyle(keyframes.style, config, {\n root: false,\n parentSelectors: parentSelectors\n }),\n _parseStyle2 = _slicedToArray(_parseStyle, 1),\n _parsedStr = _parseStyle2[0];\n effectStyle[animationName] = \"@keyframes \".concat(keyframes.getName(hashId)).concat(_parsedStr);\n }\n }\n function flattenList(list) {\n var fullList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n list.forEach(function (item) {\n if (Array.isArray(item)) {\n flattenList(item, fullList);\n } else if (item) {\n fullList.push(item);\n }\n });\n return fullList;\n }\n var flattenStyleList = flattenList(Array.isArray(interpolation) ? interpolation : [interpolation]);\n flattenStyleList.forEach(function (originStyle) {\n // Only root level can use raw string\n var style = typeof originStyle === 'string' && !root ? {} : originStyle;\n if (typeof style === 'string') {\n styleStr += \"\".concat(style, \"\\n\");\n } else if (style._keyframe) {\n // Keyframe\n parseKeyframes(style);\n } else {\n var mergedStyle = transformers.reduce(function (prev, trans) {\n var _trans$visit;\n return (trans === null || trans === void 0 ? void 0 : (_trans$visit = trans.visit) === null || _trans$visit === void 0 ? void 0 : _trans$visit.call(trans, prev)) || prev;\n }, style);\n\n // Normal CSSObject\n Object.keys(mergedStyle).forEach(function (key) {\n var value = mergedStyle[key];\n if (_typeof(value) === 'object' && value && (key !== 'animationName' || !value._keyframe) && !isCompoundCSSProperty(value)) {\n var subInjectHash = false;\n\n // 当成嵌套对象来处理\n var mergedKey = key.trim();\n // Whether treat child as root. In most case it is false.\n var nextRoot = false;\n\n // 拆分多个选择器\n if ((root || injectHash) && hashId) {\n if (mergedKey.startsWith('@')) {\n // 略过媒体查询,交给子节点继续插入 hashId\n subInjectHash = true;\n } else {\n // 注入 hashId\n mergedKey = injectSelectorHash(key, hashId, hashPriority);\n }\n } else if (root && !hashId && (mergedKey === '&' || mergedKey === '')) {\n // In case of `{ '&': { a: { color: 'red' } } }` or `{ '': { a: { color: 'red' } } }` without hashId,\n // we will get `&{a:{color:red;}}` or `{a:{color:red;}}` string for stylis to compile.\n // But it does not conform to stylis syntax,\n // and finally we will get `{color:red;}` as css, which is wrong.\n // So we need to remove key in root, and treat child `{ a: { color: 'red' } }` as root.\n mergedKey = '';\n nextRoot = true;\n }\n var _parseStyle3 = parseStyle(value, config, {\n root: nextRoot,\n injectHash: subInjectHash,\n parentSelectors: [].concat(_toConsumableArray(parentSelectors), [mergedKey])\n }),\n _parseStyle4 = _slicedToArray(_parseStyle3, 2),\n _parsedStr2 = _parseStyle4[0],\n childEffectStyle = _parseStyle4[1];\n effectStyle = _objectSpread(_objectSpread({}, effectStyle), childEffectStyle);\n styleStr += \"\".concat(mergedKey).concat(_parsedStr2);\n } else {\n var _value;\n var actualValue = (_value = value === null || value === void 0 ? void 0 : value.value) !== null && _value !== void 0 ? _value : value;\n if (process.env.NODE_ENV !== 'production' && (_typeof(value) !== 'object' || !(value !== null && value !== void 0 && value[SKIP_CHECK]))) {\n [contentQuotesLinter, hashedAnimationLinter].concat(_toConsumableArray(linters)).forEach(function (linter) {\n return linter(key, actualValue, {\n path: path,\n hashId: hashId,\n parentSelectors: parentSelectors\n });\n });\n }\n\n // 如果是样式则直接插入\n var styleName = key.replace(/[A-Z]/g, function (match) {\n return \"-\".concat(match.toLowerCase());\n });\n\n // Auto suffix with px\n var formatValue = actualValue;\n if (!unitless[key] && typeof formatValue === 'number' && formatValue !== 0) {\n formatValue = \"\".concat(formatValue, \"px\");\n }\n\n // handle animationName & Keyframe value\n if (key === 'animationName' && value !== null && value !== void 0 && value._keyframe) {\n parseKeyframes(value);\n formatValue = value.getName(hashId);\n }\n styleStr += \"\".concat(styleName, \":\").concat(formatValue, \";\");\n }\n });\n }\n });\n if (!root) {\n styleStr = \"{\".concat(styleStr, \"}\");\n } else if (layer && supportLayer()) {\n var layerCells = layer.split(',');\n var layerName = layerCells[layerCells.length - 1].trim();\n styleStr = \"@layer \".concat(layerName, \" {\").concat(styleStr, \"}\");\n\n // Order of layer if needed\n if (layerCells.length > 1) {\n // zombieJ: stylis do not support layer order, so we need to handle it manually.\n styleStr = \"@layer \".concat(layer, \"{%%%:%}\").concat(styleStr);\n }\n }\n return [styleStr, effectStyle];\n};\n\n// ============================================================================\n// == Register ==\n// ============================================================================\nfunction uniqueHash(path, styleStr) {\n return hash(\"\".concat(path.join('%')).concat(styleStr));\n}\nfunction Empty() {\n return null;\n}\n\n/**\n * Register a style to the global style sheet.\n */\nexport default function useStyleRegister(info, styleFn) {\n var token = info.token,\n path = info.path,\n hashId = info.hashId,\n layer = info.layer,\n nonce = info.nonce;\n var _React$useContext = React.useContext(StyleContext),\n autoClear = _React$useContext.autoClear,\n mock = _React$useContext.mock,\n defaultCache = _React$useContext.defaultCache,\n hashPriority = _React$useContext.hashPriority,\n container = _React$useContext.container,\n ssrInline = _React$useContext.ssrInline,\n transformers = _React$useContext.transformers,\n linters = _React$useContext.linters;\n var tokenKey = token._tokenKey;\n var fullPath = [tokenKey].concat(_toConsumableArray(path));\n\n // Check if need insert style\n var isMergedClientSide = isClientSide;\n if (process.env.NODE_ENV !== 'production' && mock !== undefined) {\n isMergedClientSide = mock === 'client';\n }\n var _useGlobalCache = useGlobalCache('style', fullPath,\n // Create cache if needed\n function () {\n var styleObj = styleFn();\n var _parseStyle5 = parseStyle(styleObj, {\n hashId: hashId,\n hashPriority: hashPriority,\n layer: layer,\n path: path.join('-'),\n transformers: transformers,\n linters: linters\n }),\n _parseStyle6 = _slicedToArray(_parseStyle5, 2),\n parsedStyle = _parseStyle6[0],\n effectStyle = _parseStyle6[1];\n var styleStr = normalizeStyle(parsedStyle);\n var styleId = uniqueHash(fullPath, styleStr);\n if (isMergedClientSide) {\n var mergedCSSConfig = {\n mark: ATTR_MARK,\n prepend: 'queue',\n attachTo: container\n };\n var nonceStr = typeof nonce === 'function' ? nonce() : nonce;\n if (nonceStr) {\n mergedCSSConfig.csp = {\n nonce: nonceStr\n };\n }\n var style = updateCSS(styleStr, styleId, mergedCSSConfig);\n style[CSS_IN_JS_INSTANCE] = CSS_IN_JS_INSTANCE_ID;\n\n // Used for `useCacheToken` to remove on batch when token removed\n style.setAttribute(ATTR_TOKEN, tokenKey);\n\n // Dev usage to find which cache path made this easily\n if (process.env.NODE_ENV !== 'production') {\n style.setAttribute(ATTR_DEV_CACHE_PATH, fullPath.join('|'));\n }\n\n // Inject client side effect style\n Object.keys(effectStyle).forEach(function (effectKey) {\n updateCSS(normalizeStyle(effectStyle[effectKey]), \"_effect-\".concat(effectKey), mergedCSSConfig);\n });\n }\n return [styleStr, tokenKey, styleId];\n },\n // Remove cache if no need\n function (_ref2, fromHMR) {\n var _ref3 = _slicedToArray(_ref2, 3),\n styleId = _ref3[2];\n if ((fromHMR || autoClear) && isClientSide) {\n removeCSS(styleId, {\n mark: ATTR_MARK\n });\n }\n }),\n _useGlobalCache2 = _slicedToArray(_useGlobalCache, 3),\n cachedStyleStr = _useGlobalCache2[0],\n cachedTokenKey = _useGlobalCache2[1],\n cachedStyleId = _useGlobalCache2[2];\n return function (node) {\n var styleNode;\n if (!ssrInline || isMergedClientSide || !defaultCache) {\n styleNode = /*#__PURE__*/React.createElement(Empty, null);\n } else {\n var _ref4;\n styleNode = /*#__PURE__*/React.createElement(\"style\", _extends({}, (_ref4 = {}, _defineProperty(_ref4, ATTR_TOKEN, cachedTokenKey), _defineProperty(_ref4, ATTR_MARK, cachedStyleId), _ref4), {\n dangerouslySetInnerHTML: {\n __html: cachedStyleStr\n }\n }));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, styleNode, node);\n };\n}\n\n// ============================================================================\n// == SSR ==\n// ============================================================================\nexport function extractStyle(cache) {\n var plain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n // prefix with `style` is used for `useStyleRegister` to cache style context\n var styleKeys = Array.from(cache.cache.keys()).filter(function (key) {\n return key.startsWith('style%');\n });\n\n // const tokenStyles: Record = {};\n\n var styleText = '';\n styleKeys.forEach(function (key) {\n var _ = _slicedToArray(cache.cache.get(key)[1], 3),\n styleStr = _[0],\n tokenKey = _[1],\n styleId = _[2];\n styleText += plain ? styleStr : \"\");\n });\n return styleText;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar Keyframe = /*#__PURE__*/function () {\n function Keyframe(name, style) {\n _classCallCheck(this, Keyframe);\n _defineProperty(this, \"name\", void 0);\n _defineProperty(this, \"style\", void 0);\n _defineProperty(this, \"_keyframe\", true);\n this.name = name;\n this.style = style;\n }\n _createClass(Keyframe, [{\n key: \"getName\",\n value: function getName() {\n var hashId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return hashId ? \"\".concat(hashId, \"-\").concat(this.name) : this.name;\n }\n }]);\n return Keyframe;\n}();\nexport default Keyframe;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// ================================== Cache ==================================\n\nexport function sameDerivativeOption(left, right) {\n if (left.length !== right.length) {\n return false;\n }\n for (var i = 0; i < left.length; i++) {\n if (left[i] !== right[i]) {\n return false;\n }\n }\n return true;\n}\nvar ThemeCache = /*#__PURE__*/function () {\n function ThemeCache() {\n _classCallCheck(this, ThemeCache);\n _defineProperty(this, \"cache\", void 0);\n _defineProperty(this, \"keys\", void 0);\n _defineProperty(this, \"cacheCallTimes\", void 0);\n this.cache = new Map();\n this.keys = [];\n this.cacheCallTimes = 0;\n }\n _createClass(ThemeCache, [{\n key: \"size\",\n value: function size() {\n return this.keys.length;\n }\n }, {\n key: \"internalGet\",\n value: function internalGet(derivativeOption) {\n var _cache2, _cache3;\n var updateCallTimes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var cache = {\n map: this.cache\n };\n derivativeOption.forEach(function (derivative) {\n if (!cache) {\n cache = undefined;\n } else {\n var _cache, _cache$map;\n cache = (_cache = cache) === null || _cache === void 0 ? void 0 : (_cache$map = _cache.map) === null || _cache$map === void 0 ? void 0 : _cache$map.get(derivative);\n }\n });\n if ((_cache2 = cache) !== null && _cache2 !== void 0 && _cache2.value && updateCallTimes) {\n cache.value[1] = this.cacheCallTimes++;\n }\n return (_cache3 = cache) === null || _cache3 === void 0 ? void 0 : _cache3.value;\n }\n }, {\n key: \"get\",\n value: function get(derivativeOption) {\n var _this$internalGet;\n return (_this$internalGet = this.internalGet(derivativeOption, true)) === null || _this$internalGet === void 0 ? void 0 : _this$internalGet[0];\n }\n }, {\n key: \"has\",\n value: function has(derivativeOption) {\n return !!this.internalGet(derivativeOption);\n }\n }, {\n key: \"set\",\n value: function set(derivativeOption, value) {\n var _this = this;\n // New cache\n if (!this.has(derivativeOption)) {\n if (this.size() + 1 > ThemeCache.MAX_CACHE_SIZE + ThemeCache.MAX_CACHE_OFFSET) {\n var _this$keys$reduce = this.keys.reduce(function (result, key) {\n var _result = _slicedToArray(result, 2),\n callTimes = _result[1];\n if (_this.internalGet(key)[1] < callTimes) {\n return [key, _this.internalGet(key)[1]];\n }\n return result;\n }, [this.keys[0], this.cacheCallTimes]),\n _this$keys$reduce2 = _slicedToArray(_this$keys$reduce, 1),\n targetKey = _this$keys$reduce2[0];\n this.delete(targetKey);\n }\n this.keys.push(derivativeOption);\n }\n var cache = this.cache;\n derivativeOption.forEach(function (derivative, index) {\n if (index === derivativeOption.length - 1) {\n cache.set(derivative, {\n value: [value, _this.cacheCallTimes++]\n });\n } else {\n var cacheValue = cache.get(derivative);\n if (!cacheValue) {\n cache.set(derivative, {\n map: new Map()\n });\n } else if (!cacheValue.map) {\n cacheValue.map = new Map();\n }\n cache = cache.get(derivative).map;\n }\n });\n }\n }, {\n key: \"deleteByPath\",\n value: function deleteByPath(currentCache, derivatives) {\n var cache = currentCache.get(derivatives[0]);\n if (derivatives.length === 1) {\n var _cache$value;\n if (!cache.map) {\n currentCache.delete(derivatives[0]);\n } else {\n currentCache.set(derivatives[0], {\n map: cache.map\n });\n }\n return (_cache$value = cache.value) === null || _cache$value === void 0 ? void 0 : _cache$value[0];\n }\n var result = this.deleteByPath(cache.map, derivatives.slice(1));\n if ((!cache.map || cache.map.size === 0) && !cache.value) {\n currentCache.delete(derivatives[0]);\n }\n return result;\n }\n }, {\n key: \"delete\",\n value: function _delete(derivativeOption) {\n // If cache exists\n if (this.has(derivativeOption)) {\n this.keys = this.keys.filter(function (item) {\n return !sameDerivativeOption(item, derivativeOption);\n });\n return this.deleteByPath(this.cache, derivativeOption);\n }\n return undefined;\n }\n }]);\n return ThemeCache;\n}();\n_defineProperty(ThemeCache, \"MAX_CACHE_SIZE\", 20);\n_defineProperty(ThemeCache, \"MAX_CACHE_OFFSET\", 5);\nexport { ThemeCache as default };","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { warning } from \"rc-util/es/warning\";\nvar uuid = 0;\n\n/**\n * Theme with algorithms to derive tokens from design tokens.\n * Use `createTheme` first which will help to manage the theme instance cache.\n */\nvar Theme = /*#__PURE__*/function () {\n function Theme(derivatives) {\n _classCallCheck(this, Theme);\n _defineProperty(this, \"derivatives\", void 0);\n _defineProperty(this, \"id\", void 0);\n this.derivatives = Array.isArray(derivatives) ? derivatives : [derivatives];\n this.id = uuid;\n if (derivatives.length === 0) {\n warning(derivatives.length > 0, '[Ant Design CSS-in-JS] Theme should have at least one derivative function.');\n }\n uuid += 1;\n }\n _createClass(Theme, [{\n key: \"getDerivativeToken\",\n value: function getDerivativeToken(token) {\n return this.derivatives.reduce(function (result, derivative) {\n return derivative(token, result);\n }, undefined);\n }\n }]);\n return Theme;\n}();\nexport { Theme as default };","import ThemeCache from \"./ThemeCache\";\nimport Theme from \"./Theme\";\nvar cacheThemes = new ThemeCache();\n\n/**\n * Same as new Theme, but will always return same one if `derivative` not changed.\n */\nexport default function createTheme(derivatives) {\n var derivativeArr = Array.isArray(derivatives) ? derivatives : [derivatives];\n // Create new theme if not exist\n if (!cacheThemes.has(derivativeArr)) {\n cacheThemes.set(derivativeArr, new Theme(derivativeArr));\n }\n\n // Get theme from cache and return\n return cacheThemes.get(derivativeArr);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nfunction splitValues(value) {\n if (typeof value === 'number') {\n return [[value], false];\n }\n var rawStyle = String(value).trim();\n var importantCells = rawStyle.match(/(.*)(!important)/);\n var splitStyle = (importantCells ? importantCells[1] : rawStyle).trim().split(/\\s+/);\n\n // Combine styles split in brackets, like `calc(1px + 2px)`\n var temp = '';\n var brackets = 0;\n return [splitStyle.reduce(function (list, item) {\n if (item.includes('(')) {\n temp += item;\n brackets += item.split('(').length - 1;\n } else if (item.includes(')')) {\n temp += item;\n brackets -= item.split(')').length - 1;\n if (brackets === 0) {\n list.push(temp);\n temp = '';\n }\n } else if (brackets > 0) {\n temp += item;\n } else {\n list.push(item);\n }\n return list;\n }, []), !!importantCells];\n}\nfunction noSplit(list) {\n list.notSplit = true;\n return list;\n}\nvar keyMap = {\n // Inset\n inset: ['top', 'right', 'bottom', 'left'],\n insetBlock: ['top', 'bottom'],\n insetBlockStart: ['top'],\n insetBlockEnd: ['bottom'],\n insetInline: ['left', 'right'],\n insetInlineStart: ['left'],\n insetInlineEnd: ['right'],\n // Margin\n marginBlock: ['marginTop', 'marginBottom'],\n marginBlockStart: ['marginTop'],\n marginBlockEnd: ['marginBottom'],\n marginInline: ['marginLeft', 'marginRight'],\n marginInlineStart: ['marginLeft'],\n marginInlineEnd: ['marginRight'],\n // Padding\n paddingBlock: ['paddingTop', 'paddingBottom'],\n paddingBlockStart: ['paddingTop'],\n paddingBlockEnd: ['paddingBottom'],\n paddingInline: ['paddingLeft', 'paddingRight'],\n paddingInlineStart: ['paddingLeft'],\n paddingInlineEnd: ['paddingRight'],\n // Border\n borderBlock: noSplit(['borderTop', 'borderBottom']),\n borderBlockStart: noSplit(['borderTop']),\n borderBlockEnd: noSplit(['borderBottom']),\n borderInline: noSplit(['borderLeft', 'borderRight']),\n borderInlineStart: noSplit(['borderLeft']),\n borderInlineEnd: noSplit(['borderRight']),\n // Border width\n borderBlockWidth: ['borderTopWidth', 'borderBottomWidth'],\n borderBlockStartWidth: ['borderTopWidth'],\n borderBlockEndWidth: ['borderBottomWidth'],\n borderInlineWidth: ['borderLeftWidth', 'borderRightWidth'],\n borderInlineStartWidth: ['borderLeftWidth'],\n borderInlineEndWidth: ['borderRightWidth'],\n // Border style\n borderBlockStyle: ['borderTopStyle', 'borderBottomStyle'],\n borderBlockStartStyle: ['borderTopStyle'],\n borderBlockEndStyle: ['borderBottomStyle'],\n borderInlineStyle: ['borderLeftStyle', 'borderRightStyle'],\n borderInlineStartStyle: ['borderLeftStyle'],\n borderInlineEndStyle: ['borderRightStyle'],\n // Border color\n borderBlockColor: ['borderTopColor', 'borderBottomColor'],\n borderBlockStartColor: ['borderTopColor'],\n borderBlockEndColor: ['borderBottomColor'],\n borderInlineColor: ['borderLeftColor', 'borderRightColor'],\n borderInlineStartColor: ['borderLeftColor'],\n borderInlineEndColor: ['borderRightColor'],\n // Border radius\n borderStartStartRadius: ['borderTopLeftRadius'],\n borderStartEndRadius: ['borderTopRightRadius'],\n borderEndStartRadius: ['borderBottomLeftRadius'],\n borderEndEndRadius: ['borderBottomRightRadius']\n};\nfunction wrapImportantAndSkipCheck(value, important) {\n var parsedValue = value;\n if (important) {\n parsedValue = \"\".concat(parsedValue, \" !important\");\n }\n return {\n _skip_check_: true,\n value: parsedValue\n };\n}\n\n/**\n * Convert css logical properties to legacy properties.\n * Such as: `margin-block-start` to `margin-top`.\n * Transform list:\n * - inset\n * - margin\n * - padding\n * - border\n */\nvar transform = {\n visit: function visit(cssObj) {\n var clone = {};\n Object.keys(cssObj).forEach(function (key) {\n var value = cssObj[key];\n var matchValue = keyMap[key];\n if (matchValue && (typeof value === 'number' || typeof value === 'string')) {\n var _splitValues = splitValues(value),\n _splitValues2 = _slicedToArray(_splitValues, 2),\n _values = _splitValues2[0],\n _important = _splitValues2[1];\n if (matchValue.length && matchValue.notSplit) {\n // not split means always give same value like border\n matchValue.forEach(function (matchKey) {\n clone[matchKey] = wrapImportantAndSkipCheck(value, _important);\n });\n } else if (matchValue.length === 1) {\n // Handle like `marginBlockStart` => `marginTop`\n clone[matchValue[0]] = wrapImportantAndSkipCheck(value, _important);\n } else if (matchValue.length === 2) {\n // Handle like `marginBlock` => `marginTop` & `marginBottom`\n matchValue.forEach(function (matchKey, index) {\n var _values$index;\n clone[matchKey] = wrapImportantAndSkipCheck((_values$index = _values[index]) !== null && _values$index !== void 0 ? _values$index : _values[0], _important);\n });\n } else if (matchValue.length === 4) {\n // Handle like `inset` => `top` & `right` & `bottom` & `left`\n matchValue.forEach(function (matchKey, index) {\n var _ref, _values$index2;\n clone[matchKey] = wrapImportantAndSkipCheck((_ref = (_values$index2 = _values[index]) !== null && _values$index2 !== void 0 ? _values$index2 : _values[index - 2]) !== null && _ref !== void 0 ? _ref : _values[0], _important);\n });\n } else {\n clone[key] = value;\n }\n } else {\n clone[key] = value;\n }\n });\n return clone;\n }\n};\nexport default transform;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n/**\n * respect https://github.com/cuth/postcss-pxtorem\n */\nimport unitless from '@emotion/unitless';\nvar pxRegex = /url\\([^)]+\\)|var\\([^)]+\\)|(\\d*\\.?\\d+)px/g;\nfunction toFixed(number, precision) {\n var multiplier = Math.pow(10, precision + 1),\n wholeNumber = Math.floor(number * multiplier);\n return Math.round(wholeNumber / 10) * 10 / multiplier;\n}\nvar transform = function transform() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$rootValue = options.rootValue,\n rootValue = _options$rootValue === void 0 ? 16 : _options$rootValue,\n _options$precision = options.precision,\n precision = _options$precision === void 0 ? 5 : _options$precision,\n _options$mediaQuery = options.mediaQuery,\n mediaQuery = _options$mediaQuery === void 0 ? false : _options$mediaQuery;\n var pxReplace = function pxReplace(m, $1) {\n if (!$1) return m;\n var pixels = parseFloat($1);\n // covenant: pixels <= 1, not transform to rem @zombieJ\n if (pixels <= 1) return m;\n var fixedVal = toFixed(pixels / rootValue, precision);\n return \"\".concat(fixedVal, \"rem\");\n };\n var visit = function visit(cssObj) {\n var clone = _objectSpread({}, cssObj);\n Object.entries(cssObj).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (typeof value === 'string' && value.includes('px')) {\n var newValue = value.replace(pxRegex, pxReplace);\n clone[key] = newValue;\n }\n\n // no unit\n if (!unitless[key] && typeof value === 'number' && value !== 0) {\n clone[key] = \"\".concat(value, \"px\").replace(pxRegex, pxReplace);\n }\n\n // Media queries\n var mergedKey = key.trim();\n if (mergedKey.startsWith('@') && mergedKey.includes('px') && mediaQuery) {\n var newKey = key.replace(pxRegex, pxReplace);\n clone[newKey] = clone[key];\n delete clone[key];\n }\n });\n return clone;\n };\n return {\n visit: visit\n };\n};\nexport default transform;","/* eslint import/no-unresolved: 0 */\n// @ts-ignore\nimport version from './version';\nexport default version;","export default '5.4.2';","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// \nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// \nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}];\n\n// Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nexport default function generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}","import generate from \"./generate\";\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1677FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\nvar gray = presetPalettes.grey;\nexport { generate, presetPalettes, presetDarkPalettes, presetPrimaryColors, red, volcano, orange, gold, yellow, lime, green, cyan, blue, geekblue, purple, magenta, grey, gray };","const genControlHeight = token => {\n const {\n controlHeight\n } = token;\n return {\n controlHeightSM: controlHeight * 0.75,\n controlHeightXS: controlHeight * 0.5,\n controlHeightLG: controlHeight * 1.25\n };\n};\nexport default genControlHeight;","export const defaultPresetColors = {\n blue: '#1677ff',\n purple: '#722ED1',\n cyan: '#13C2C2',\n green: '#52C41A',\n magenta: '#EB2F96',\n pink: '#eb2f96',\n red: '#F5222D',\n orange: '#FA8C16',\n yellow: '#FADB14',\n volcano: '#FA541C',\n geekblue: '#2F54EB',\n gold: '#FAAD14',\n lime: '#A0D911'\n};\nconst seedToken = Object.assign(Object.assign({}, defaultPresetColors), {\n // Color\n colorPrimary: '#1677ff',\n colorSuccess: '#52c41a',\n colorWarning: '#faad14',\n colorError: '#ff4d4f',\n colorInfo: '#1677ff',\n colorTextBase: '',\n colorBgBase: '',\n // Font\n fontFamily: `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,\n'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\n'Noto Color Emoji'`,\n fontFamilyCode: `'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace`,\n fontSize: 14,\n // Line\n lineWidth: 1,\n lineType: 'solid',\n // Motion\n motionUnit: 0.1,\n motionBase: 0,\n motionEaseOutCirc: 'cubic-bezier(0.08, 0.82, 0.17, 1)',\n motionEaseInOutCirc: 'cubic-bezier(0.78, 0.14, 0.15, 0.86)',\n motionEaseOut: 'cubic-bezier(0.215, 0.61, 0.355, 1)',\n motionEaseInOut: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n motionEaseOutBack: 'cubic-bezier(0.12, 0.4, 0.29, 1.46)',\n motionEaseInBack: 'cubic-bezier(0.71, -0.46, 0.88, 0.6)',\n motionEaseInQuint: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',\n motionEaseOutQuint: 'cubic-bezier(0.23, 1, 0.32, 1)',\n // Radius\n borderRadius: 6,\n // Size\n sizeUnit: 4,\n sizeStep: 4,\n sizePopupArrow: 16,\n // Control Base\n controlHeight: 32,\n // zIndex\n zIndexBase: 0,\n zIndexPopupBase: 1000,\n // Image\n opacityImage: 1,\n // Wireframe\n wireframe: false\n});\nexport default seedToken;","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion';\nimport { names } from './css-color-names';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # prefixed.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # prefixed.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n */\n TinyColor.prototype.toHexShortString = function (allowShortChar) {\n if (allowShortChar === void 0) { allowShortChar = false; }\n return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n var alpha = fg.a + bg.a * (1 - fg.a);\n return new TinyColor({\n r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n a: alpha,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","import { TinyColor } from '@ctrl/tinycolor';\nexport default function genColorMapToken(seed, _ref) {\n let {\n generateColorPalettes,\n generateNeutralColorPalettes\n } = _ref;\n const {\n colorSuccess: colorSuccessBase,\n colorWarning: colorWarningBase,\n colorError: colorErrorBase,\n colorInfo: colorInfoBase,\n colorPrimary: colorPrimaryBase,\n colorBgBase,\n colorTextBase\n } = seed;\n const primaryColors = generateColorPalettes(colorPrimaryBase);\n const successColors = generateColorPalettes(colorSuccessBase);\n const warningColors = generateColorPalettes(colorWarningBase);\n const errorColors = generateColorPalettes(colorErrorBase);\n const infoColors = generateColorPalettes(colorInfoBase);\n const neutralColors = generateNeutralColorPalettes(colorBgBase, colorTextBase);\n return Object.assign(Object.assign({}, neutralColors), {\n colorPrimaryBg: primaryColors[1],\n colorPrimaryBgHover: primaryColors[2],\n colorPrimaryBorder: primaryColors[3],\n colorPrimaryBorderHover: primaryColors[4],\n colorPrimaryHover: primaryColors[5],\n colorPrimary: primaryColors[6],\n colorPrimaryActive: primaryColors[7],\n colorPrimaryTextHover: primaryColors[8],\n colorPrimaryText: primaryColors[9],\n colorPrimaryTextActive: primaryColors[10],\n colorSuccessBg: successColors[1],\n colorSuccessBgHover: successColors[2],\n colorSuccessBorder: successColors[3],\n colorSuccessBorderHover: successColors[4],\n colorSuccessHover: successColors[4],\n colorSuccess: successColors[6],\n colorSuccessActive: successColors[7],\n colorSuccessTextHover: successColors[8],\n colorSuccessText: successColors[9],\n colorSuccessTextActive: successColors[10],\n colorErrorBg: errorColors[1],\n colorErrorBgHover: errorColors[2],\n colorErrorBorder: errorColors[3],\n colorErrorBorderHover: errorColors[4],\n colorErrorHover: errorColors[5],\n colorError: errorColors[6],\n colorErrorActive: errorColors[7],\n colorErrorTextHover: errorColors[8],\n colorErrorText: errorColors[9],\n colorErrorTextActive: errorColors[10],\n colorWarningBg: warningColors[1],\n colorWarningBgHover: warningColors[2],\n colorWarningBorder: warningColors[3],\n colorWarningBorderHover: warningColors[4],\n colorWarningHover: warningColors[4],\n colorWarning: warningColors[6],\n colorWarningActive: warningColors[7],\n colorWarningTextHover: warningColors[8],\n colorWarningText: warningColors[9],\n colorWarningTextActive: warningColors[10],\n colorInfoBg: infoColors[1],\n colorInfoBgHover: infoColors[2],\n colorInfoBorder: infoColors[3],\n colorInfoBorderHover: infoColors[4],\n colorInfoHover: infoColors[4],\n colorInfo: infoColors[6],\n colorInfoActive: infoColors[7],\n colorInfoTextHover: infoColors[8],\n colorInfoText: infoColors[9],\n colorInfoTextActive: infoColors[10],\n colorBgMask: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n colorWhite: '#fff'\n });\n}","const genRadius = radiusBase => {\n let radiusLG = radiusBase;\n let radiusSM = radiusBase;\n let radiusXS = radiusBase;\n let radiusOuter = radiusBase;\n // radiusLG\n if (radiusBase < 6 && radiusBase >= 5) {\n radiusLG = radiusBase + 1;\n } else if (radiusBase < 16 && radiusBase >= 6) {\n radiusLG = radiusBase + 2;\n } else if (radiusBase >= 16) {\n radiusLG = 16;\n }\n // radiusSM\n if (radiusBase < 7 && radiusBase >= 5) {\n radiusSM = 4;\n } else if (radiusBase < 8 && radiusBase >= 7) {\n radiusSM = 5;\n } else if (radiusBase < 14 && radiusBase >= 8) {\n radiusSM = 6;\n } else if (radiusBase < 16 && radiusBase >= 14) {\n radiusSM = 7;\n } else if (radiusBase >= 16) {\n radiusSM = 8;\n }\n // radiusXS\n if (radiusBase < 6 && radiusBase >= 2) {\n radiusXS = 1;\n } else if (radiusBase >= 6) {\n radiusXS = 2;\n }\n // radiusOuter\n if (radiusBase > 4 && radiusBase < 8) {\n radiusOuter = 4;\n } else if (radiusBase >= 8) {\n radiusOuter = 6;\n }\n return {\n borderRadius: radiusBase > 16 ? 16 : radiusBase,\n borderRadiusXS: radiusXS,\n borderRadiusSM: radiusSM,\n borderRadiusLG: radiusLG,\n borderRadiusOuter: radiusOuter\n };\n};\nexport default genRadius;","import { TinyColor } from '@ctrl/tinycolor';\nexport const getAlphaColor = (baseColor, alpha) => new TinyColor(baseColor).setAlpha(alpha).toRgbString();\nexport const getSolidColor = (baseColor, brightness) => {\n const instance = new TinyColor(baseColor);\n return instance.darken(brightness).toHexString();\n};","import { generate } from '@ant-design/colors';\nimport { getAlphaColor, getSolidColor } from './colorAlgorithm';\nexport const generateColorPalettes = baseColor => {\n const colors = generate(baseColor);\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[4],\n 6: colors[5],\n 7: colors[6],\n 8: colors[4],\n 9: colors[5],\n 10: colors[6]\n // 8: colors[7],\n // 9: colors[8],\n // 10: colors[9],\n };\n};\n\nexport const generateNeutralColorPalettes = (bgBaseColor, textBaseColor) => {\n const colorBgBase = bgBaseColor || '#fff';\n const colorTextBase = textBaseColor || '#000';\n return {\n colorBgBase,\n colorTextBase,\n colorText: getAlphaColor(colorTextBase, 0.88),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n colorFill: getAlphaColor(colorTextBase, 0.15),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.06),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.04),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.02),\n colorBgLayout: getSolidColor(colorBgBase, 4),\n colorBgContainer: getSolidColor(colorBgBase, 0),\n colorBgElevated: getSolidColor(colorBgBase, 0),\n colorBgSpotlight: getAlphaColor(colorTextBase, 0.85),\n colorBorder: getSolidColor(colorBgBase, 15),\n colorBorderSecondary: getSolidColor(colorBgBase, 6)\n };\n};","import genFontSizes from './genFontSizes';\nconst genFontMapToken = fontSize => {\n const fontSizePairs = genFontSizes(fontSize);\n const fontSizes = fontSizePairs.map(pair => pair.size);\n const lineHeights = fontSizePairs.map(pair => pair.lineHeight);\n return {\n fontSizeSM: fontSizes[0],\n fontSize: fontSizes[1],\n fontSizeLG: fontSizes[2],\n fontSizeXL: fontSizes[3],\n fontSizeHeading1: fontSizes[6],\n fontSizeHeading2: fontSizes[5],\n fontSizeHeading3: fontSizes[4],\n fontSizeHeading4: fontSizes[3],\n fontSizeHeading5: fontSizes[2],\n lineHeight: lineHeights[1],\n lineHeightLG: lineHeights[2],\n lineHeightSM: lineHeights[0],\n lineHeightHeading1: lineHeights[6],\n lineHeightHeading2: lineHeights[5],\n lineHeightHeading3: lineHeights[4],\n lineHeightHeading4: lineHeights[3],\n lineHeightHeading5: lineHeights[2]\n };\n};\nexport default genFontMapToken;","// https://zhuanlan.zhihu.com/p/32746810\nexport default function getFontSizes(base) {\n const fontSizes = new Array(10).fill(null).map((_, index) => {\n const i = index - 1;\n const baseSize = base * Math.pow(2.71828, i / 5);\n const intSize = index > 1 ? Math.floor(baseSize) : Math.ceil(baseSize);\n // Convert to even\n return Math.floor(intSize / 2) * 2;\n });\n fontSizes[1] = base;\n return fontSizes.map(size => {\n const height = size + 8;\n return {\n size,\n lineHeight: height / size\n };\n });\n}","import { generate } from '@ant-design/colors';\nimport genControlHeight from '../shared/genControlHeight';\nimport genSizeMapToken from '../shared/genSizeMapToken';\nimport { defaultPresetColors } from '../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport genCommonMapToken from '../shared/genCommonMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport genFontMapToken from '../shared/genFontMapToken';\nexport default function derivative(token) {\n const colorPalettes = Object.keys(defaultPresetColors).map(colorKey => {\n const colors = generate(token[colorKey]);\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {});\n }).reduce((prev, cur) => {\n prev = Object.assign(Object.assign({}, prev), cur);\n return prev;\n }, {});\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, token), colorPalettes), genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes\n })), genFontMapToken(token.fontSize)), genSizeMapToken(token)), genControlHeight(token)), genCommonMapToken(token));\n}","export default function genSizeMapToken(token) {\n const {\n sizeUnit,\n sizeStep\n } = token;\n return {\n sizeXXL: sizeUnit * (sizeStep + 8),\n sizeXL: sizeUnit * (sizeStep + 4),\n sizeLG: sizeUnit * (sizeStep + 2),\n sizeMD: sizeUnit * (sizeStep + 1),\n sizeMS: sizeUnit * sizeStep,\n size: sizeUnit * sizeStep,\n sizeSM: sizeUnit * (sizeStep - 1),\n sizeXS: sizeUnit * (sizeStep - 2),\n sizeXXS: sizeUnit * (sizeStep - 3) // 4\n };\n}","import genRadius from './genRadius';\nexport default function genCommonMapToken(token) {\n const {\n motionUnit,\n motionBase,\n borderRadius,\n lineWidth\n } = token;\n return Object.assign({\n // motion\n motionDurationFast: `${(motionBase + motionUnit).toFixed(1)}s`,\n motionDurationMid: `${(motionBase + motionUnit * 2).toFixed(1)}s`,\n motionDurationSlow: `${(motionBase + motionUnit * 3).toFixed(1)}s`,\n // line\n lineWidthBold: lineWidth + 1\n }, genRadius(borderRadius));\n}","import { TinyColor } from '@ctrl/tinycolor';\nfunction isStableColor(color) {\n return color >= 0 && color <= 255;\n}\nfunction getAlphaColor(frontColor, backgroundColor) {\n const {\n r: fR,\n g: fG,\n b: fB,\n a: originAlpha\n } = new TinyColor(frontColor).toRgb();\n if (originAlpha < 1) {\n return frontColor;\n }\n const {\n r: bR,\n g: bG,\n b: bB\n } = new TinyColor(backgroundColor).toRgb();\n for (let fA = 0.01; fA <= 1; fA += 0.01) {\n const r = Math.round((fR - bR * (1 - fA)) / fA);\n const g = Math.round((fG - bG * (1 - fA)) / fA);\n const b = Math.round((fB - bB * (1 - fA)) / fA);\n if (isStableColor(r) && isStableColor(g) && isStableColor(b)) {\n return new TinyColor({\n r,\n g,\n b,\n a: Math.round(fA * 100) / 100\n }).toRgbString();\n }\n }\n // fallback\n /* istanbul ignore next */\n return new TinyColor({\n r: fR,\n g: fG,\n b: fB,\n a: 1\n }).toRgbString();\n}\nexport default getAlphaColor;","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { TinyColor } from '@ctrl/tinycolor';\nimport getAlphaColor from './getAlphaColor';\nimport seedToken from '../themes/seed';\n/**\n * Seed (designer) > Derivative (designer) > Alias (developer).\n *\n * Merge seed & derivative & override token and generate alias token for developer.\n */\nexport default function formatToken(derivativeToken) {\n const {\n override\n } = derivativeToken,\n restToken = __rest(derivativeToken, [\"override\"]);\n const overrideTokens = Object.assign({}, override);\n Object.keys(seedToken).forEach(token => {\n delete overrideTokens[token];\n });\n const mergedToken = Object.assign(Object.assign({}, restToken), overrideTokens);\n const screenXS = 480;\n const screenSM = 576;\n const screenMD = 768;\n const screenLG = 992;\n const screenXL = 1200;\n const screenXXL = 1600;\n // Generate alias token\n const aliasToken = Object.assign(Object.assign(Object.assign({}, mergedToken), {\n colorLink: mergedToken.colorInfoText,\n colorLinkHover: mergedToken.colorInfoHover,\n colorLinkActive: mergedToken.colorInfoActive,\n // ============== Background ============== //\n colorFillContent: mergedToken.colorFillSecondary,\n colorFillContentHover: mergedToken.colorFill,\n colorFillAlter: mergedToken.colorFillQuaternary,\n colorBgContainerDisabled: mergedToken.colorFillTertiary,\n // ============== Split ============== //\n colorBorderBg: mergedToken.colorBgContainer,\n colorSplit: getAlphaColor(mergedToken.colorBorderSecondary, mergedToken.colorBgContainer),\n // ============== Text ============== //\n colorTextPlaceholder: mergedToken.colorTextQuaternary,\n colorTextDisabled: mergedToken.colorTextQuaternary,\n colorTextHeading: mergedToken.colorText,\n colorTextLabel: mergedToken.colorTextSecondary,\n colorTextDescription: mergedToken.colorTextTertiary,\n colorTextLightSolid: mergedToken.colorWhite,\n colorHighlight: mergedToken.colorError,\n colorBgTextHover: mergedToken.colorFillSecondary,\n colorBgTextActive: mergedToken.colorFill,\n colorIcon: mergedToken.colorTextTertiary,\n colorIconHover: mergedToken.colorText,\n colorErrorOutline: getAlphaColor(mergedToken.colorErrorBg, mergedToken.colorBgContainer),\n colorWarningOutline: getAlphaColor(mergedToken.colorWarningBg, mergedToken.colorBgContainer),\n // Font\n fontSizeIcon: mergedToken.fontSizeSM,\n // Line\n lineWidthFocus: mergedToken.lineWidth * 4,\n // Control\n lineWidth: mergedToken.lineWidth,\n controlOutlineWidth: mergedToken.lineWidth * 2,\n // Checkbox size and expand icon size\n controlInteractiveSize: mergedToken.controlHeight / 2,\n controlItemBgHover: mergedToken.colorFillTertiary,\n controlItemBgActive: mergedToken.colorPrimaryBg,\n controlItemBgActiveHover: mergedToken.colorPrimaryBgHover,\n controlItemBgActiveDisabled: mergedToken.colorFill,\n controlTmpOutline: mergedToken.colorFillQuaternary,\n controlOutline: getAlphaColor(mergedToken.colorPrimaryBg, mergedToken.colorBgContainer),\n lineType: mergedToken.lineType,\n borderRadius: mergedToken.borderRadius,\n borderRadiusXS: mergedToken.borderRadiusXS,\n borderRadiusSM: mergedToken.borderRadiusSM,\n borderRadiusLG: mergedToken.borderRadiusLG,\n fontWeightStrong: 600,\n opacityLoading: 0.65,\n linkDecoration: 'none',\n linkHoverDecoration: 'none',\n linkFocusDecoration: 'none',\n controlPaddingHorizontal: 12,\n controlPaddingHorizontalSM: 8,\n paddingXXS: mergedToken.sizeXXS,\n paddingXS: mergedToken.sizeXS,\n paddingSM: mergedToken.sizeSM,\n padding: mergedToken.size,\n paddingMD: mergedToken.sizeMD,\n paddingLG: mergedToken.sizeLG,\n paddingXL: mergedToken.sizeXL,\n paddingContentHorizontalLG: mergedToken.sizeLG,\n paddingContentVerticalLG: mergedToken.sizeMS,\n paddingContentHorizontal: mergedToken.sizeMS,\n paddingContentVertical: mergedToken.sizeSM,\n paddingContentHorizontalSM: mergedToken.size,\n paddingContentVerticalSM: mergedToken.sizeXS,\n marginXXS: mergedToken.sizeXXS,\n marginXS: mergedToken.sizeXS,\n marginSM: mergedToken.sizeSM,\n margin: mergedToken.size,\n marginMD: mergedToken.sizeMD,\n marginLG: mergedToken.sizeLG,\n marginXL: mergedToken.sizeXL,\n marginXXL: mergedToken.sizeXXL,\n boxShadow: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowSecondary: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowTertiary: `\n 0 1px 2px 0 rgba(0, 0, 0, 0.03),\n 0 1px 6px -1px rgba(0, 0, 0, 0.02),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,\n screenXS,\n screenXSMin: screenXS,\n screenXSMax: screenSM - 1,\n screenSM,\n screenSMMin: screenSM,\n screenSMMax: screenMD - 1,\n screenMD,\n screenMDMin: screenMD,\n screenMDMax: screenLG - 1,\n screenLG,\n screenLGMin: screenLG,\n screenLGMax: screenXL - 1,\n screenXL,\n screenXLMin: screenXL,\n screenXLMax: screenXXL - 1,\n screenXXL,\n screenXXLMin: screenXXL,\n boxShadowPopoverArrow: '2px 2px 5px rgba(0, 0, 0, 0.05)',\n boxShadowCard: `\n 0 1px 2px -2px ${new TinyColor('rgba(0, 0, 0, 0.16)').toRgbString()},\n 0 3px 6px 0 ${new TinyColor('rgba(0, 0, 0, 0.12)').toRgbString()},\n 0 5px 12px 4px ${new TinyColor('rgba(0, 0, 0, 0.09)').toRgbString()}\n `,\n boxShadowDrawerRight: `\n -6px 0 16px 0 rgba(0, 0, 0, 0.08),\n -3px 0 6px -4px rgba(0, 0, 0, 0.12),\n -9px 0 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerLeft: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.08),\n 3px 0 6px -4px rgba(0, 0, 0, 0.12),\n 9px 0 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerUp: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerDown: `\n 0 -6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 -3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 -9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowTabsOverflowLeft: 'inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowRight: 'inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowTop: 'inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowBottom: 'inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)'\n }), overrideTokens);\n return aliasToken;\n}","import { createTheme, useCacheToken, useStyleRegister } from '@ant-design/cssinjs';\nimport React from 'react';\nimport version from '../version';\nimport { PresetColors } from './interface';\nimport defaultDerivative from './themes/default';\nimport defaultSeedToken from './themes/seed';\nimport formatToken from './util/alias';\nimport genComponentStyleHook from './util/genComponentStyleHook';\nimport statisticToken, { merge as mergeToken, statistic } from './util/statistic';\nimport genPresetColor from './util/genPresetColor';\nconst defaultTheme = createTheme(defaultDerivative);\nexport {\n// colors\nPresetColors,\n// Statistic\nstatistic, statisticToken, mergeToken,\n// hooks\nuseStyleRegister, genComponentStyleHook, genPresetColor };\n// ================================ Context =================================\n// To ensure snapshot stable. We disable hashed in test env.\nexport const defaultConfig = {\n token: defaultSeedToken,\n hashed: true\n};\nexport const DesignTokenContext = /*#__PURE__*/React.createContext(defaultConfig);\n// ================================== Hook ==================================\nexport function useToken() {\n const {\n token: rootDesignToken,\n hashed,\n theme,\n components\n } = React.useContext(DesignTokenContext);\n const salt = `${version}-${hashed || ''}`;\n const mergedTheme = theme || defaultTheme;\n const [token, hashId] = useCacheToken(mergedTheme, [defaultSeedToken, rootDesignToken], {\n salt,\n override: Object.assign({\n override: rootDesignToken\n }, components),\n formatToken\n });\n return [mergedTheme, token, hashed ? hashId : ''];\n}","import React from 'react';\nimport { useToken } from '../theme/internal';\nexport const responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nconst getResponsiveMap = token => ({\n xs: `(max-width: ${token.screenXSMax}px)`,\n sm: `(min-width: ${token.screenSM}px)`,\n md: `(min-width: ${token.screenMD}px)`,\n lg: `(min-width: ${token.screenLG}px)`,\n xl: `(min-width: ${token.screenXL}px)`,\n xxl: `(min-width: ${token.screenXXL}px)`\n});\n/**\n * Ensures that the breakpoints token are valid, in good order\n * For each breakpoint : screenMin <= screen <= screenMax and screenMax <= nextScreenMin\n */\nconst validateBreakpoints = token => {\n const indexableToken = token;\n const revBreakpoints = [].concat(responsiveArray).reverse();\n revBreakpoints.forEach((breakpoint, i) => {\n const breakpointUpper = breakpoint.toUpperCase();\n const screenMin = `screen${breakpointUpper}Min`;\n const screen = `screen${breakpointUpper}`;\n if (!(indexableToken[screenMin] <= indexableToken[screen])) {\n throw new Error(`${screenMin}<=${screen} fails : !(${indexableToken[screenMin]}<=${indexableToken[screen]})`);\n }\n if (i < revBreakpoints.length - 1) {\n const screenMax = `screen${breakpointUpper}Max`;\n if (!(indexableToken[screen] <= indexableToken[screenMax])) {\n throw new Error(`${screen}<=${screenMax} fails : !(${indexableToken[screen]}<=${indexableToken[screenMax]})`);\n }\n const nextBreakpointUpperMin = revBreakpoints[i + 1].toUpperCase();\n const nextScreenMin = `screen${nextBreakpointUpperMin}Min`;\n if (!(indexableToken[screenMax] <= indexableToken[nextScreenMin])) {\n throw new Error(`${screenMax}<=${nextScreenMin} fails : !(${indexableToken[screenMax]}<=${indexableToken[nextScreenMin]})`);\n }\n }\n });\n return token;\n};\nexport default function useResponsiveObserver() {\n const [, token] = useToken();\n const responsiveMap = getResponsiveMap(validateBreakpoints(token));\n // To avoid repeat create instance, we add `useMemo` here.\n return React.useMemo(() => {\n const subscribers = new Map();\n let subUid = -1;\n let screens = {};\n return {\n matchHandlers: {},\n dispatch(pointMap) {\n screens = pointMap;\n subscribers.forEach(func => func(screens));\n return subscribers.size >= 1;\n },\n subscribe(func) {\n if (!subscribers.size) this.register();\n subUid += 1;\n subscribers.set(subUid, func);\n func(screens);\n return subUid;\n },\n unsubscribe(paramToken) {\n subscribers.delete(paramToken);\n if (!subscribers.size) this.unregister();\n },\n unregister() {\n Object.keys(responsiveMap).forEach(screen => {\n const matchMediaQuery = responsiveMap[screen];\n const handler = this.matchHandlers[matchMediaQuery];\n handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);\n });\n subscribers.clear();\n },\n register() {\n Object.keys(responsiveMap).forEach(screen => {\n const matchMediaQuery = responsiveMap[screen];\n const listener = _ref => {\n let {\n matches\n } = _ref;\n this.dispatch(Object.assign(Object.assign({}, screens), {\n [screen]: matches\n }));\n };\n const mql = window.matchMedia(matchMediaQuery);\n mql.addListener(listener);\n this.matchHandlers[matchMediaQuery] = {\n mql,\n listener\n };\n listener(mql);\n });\n },\n responsiveMap\n };\n }, [token]);\n}","import { createContext } from 'react';\nconst RowContext = /*#__PURE__*/createContext({});\nexport default RowContext;","export { operationUnit } from './operationUnit';\nexport { roundedArrow } from './roundedArrow';\nexport const textEllipsis = {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n};\nexport const resetComponent = token => ({\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n color: token.colorText,\n fontSize: token.fontSize,\n // font-variant: @font-variant-base;\n lineHeight: token.lineHeight,\n listStyle: 'none',\n // font-feature-settings: @font-feature-settings-base;\n fontFamily: token.fontFamily\n});\nexport const resetIcon = () => ({\n display: 'inline-flex',\n alignItems: 'center',\n color: 'inherit',\n fontStyle: 'normal',\n lineHeight: 0,\n textAlign: 'center',\n textTransform: 'none',\n // for SVG icon, see https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n verticalAlign: '-0.125em',\n textRendering: 'optimizeLegibility',\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale',\n '> *': {\n lineHeight: 1\n },\n svg: {\n display: 'inline-block'\n }\n});\nexport const clearFix = () => ({\n // https://github.com/ant-design/ant-design/issues/21301#issuecomment-583955229\n '&::before': {\n display: 'table',\n content: '\"\"'\n },\n '&::after': {\n // https://github.com/ant-design/ant-design/issues/21864\n display: 'table',\n clear: 'both',\n content: '\"\"'\n }\n});\nexport const genLinkStyle = token => ({\n a: {\n color: token.colorLink,\n textDecoration: token.linkDecoration,\n backgroundColor: 'transparent',\n outline: 'none',\n cursor: 'pointer',\n transition: `color ${token.motionDurationSlow}`,\n '-webkit-text-decoration-skip': 'objects',\n '&:hover': {\n color: token.colorLinkHover\n },\n '&:active': {\n color: token.colorLinkActive\n },\n [`&:active,\n &:hover`]: {\n textDecoration: token.linkHoverDecoration,\n outline: 0\n },\n // https://github.com/ant-design/ant-design/issues/22503\n '&:focus': {\n textDecoration: token.linkFocusDecoration,\n outline: 0\n },\n '&[disabled]': {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n }\n }\n});\nexport const genCommonStyle = (token, componentPrefixCls) => {\n const {\n fontFamily,\n fontSize\n } = token;\n const rootPrefixSelector = `[class^=\"${componentPrefixCls}\"], [class*=\" ${componentPrefixCls}\"]`;\n return {\n [rootPrefixSelector]: {\n fontFamily,\n fontSize,\n boxSizing: 'border-box',\n '&::before, &::after': {\n boxSizing: 'border-box'\n },\n [rootPrefixSelector]: {\n boxSizing: 'border-box',\n '&::before, &::after': {\n boxSizing: 'border-box'\n }\n }\n }\n };\n};\nexport const genFocusOutline = token => ({\n outline: `${token.lineWidthFocus}px solid ${token.colorPrimaryBorder}`,\n outlineOffset: 1,\n transition: 'outline-offset 0s, outline 0s'\n});\nexport const genFocusStyle = token => ({\n '&:focus-visible': Object.assign({}, genFocusOutline(token))\n});","const enableStatistic = process.env.NODE_ENV !== 'production' || typeof CSSINJS_STATISTIC !== 'undefined';\nlet recording = true;\n/**\n * This function will do as `Object.assign` in production. But will use Object.defineProperty:get to\n * pass all value access in development. To support statistic field usage with alias token.\n */\nexport function merge() {\n for (var _len = arguments.length, objs = new Array(_len), _key = 0; _key < _len; _key++) {\n objs[_key] = arguments[_key];\n }\n /* istanbul ignore next */\n if (!enableStatistic) {\n return Object.assign.apply(Object, [{}].concat(objs));\n }\n recording = false;\n const ret = {};\n objs.forEach(obj => {\n const keys = Object.keys(obj);\n keys.forEach(key => {\n Object.defineProperty(ret, key, {\n configurable: true,\n enumerable: true,\n get: () => obj[key]\n });\n });\n });\n recording = true;\n return ret;\n}\n/** @private Internal Usage. Not use in your production. */\nexport const statistic = {};\n/** @private Internal Usage. Not use in your production. */\n// eslint-disable-next-line camelcase\nexport const _statistic_build_ = {};\n/* istanbul ignore next */\nfunction noop() {}\n/** Statistic token usage case. Should use `merge` function if you do not want spread record. */\nexport default function statisticToken(token) {\n let tokenKeys;\n let proxy = token;\n let flush = noop;\n if (enableStatistic) {\n tokenKeys = new Set();\n proxy = new Proxy(token, {\n get(obj, prop) {\n if (recording) {\n tokenKeys.add(prop);\n }\n return obj[prop];\n }\n });\n flush = (componentName, componentToken) => {\n statistic[componentName] = {\n global: Array.from(tokenKeys),\n component: componentToken\n };\n };\n }\n return {\n token: proxy,\n keys: tokenKeys,\n flush\n };\n}","import { useStyleRegister } from '@ant-design/cssinjs';\nimport { useContext } from 'react';\nimport { ConfigContext } from '../../config-provider/context';\nimport { genCommonStyle, genLinkStyle } from '../../style';\nimport { mergeToken, statisticToken, useToken } from '../internal';\nexport default function genComponentStyleHook(component, styleFn, getDefaultToken, options) {\n return prefixCls => {\n const [theme, token, hashId] = useToken();\n const {\n getPrefixCls,\n iconPrefixCls,\n csp\n } = useContext(ConfigContext);\n const rootPrefixCls = getPrefixCls();\n // Shared config\n const sharedConfig = {\n theme,\n token,\n hashId,\n nonce: () => csp === null || csp === void 0 ? void 0 : csp.nonce\n };\n // Generate style for all a tags in antd component.\n useStyleRegister(Object.assign(Object.assign({}, sharedConfig), {\n path: ['Shared', rootPrefixCls]\n }), () => [{\n // Link\n '&': genLinkStyle(token)\n }]);\n return [useStyleRegister(Object.assign(Object.assign({}, sharedConfig), {\n path: [component, prefixCls, iconPrefixCls]\n }), () => {\n const {\n token: proxyToken,\n flush\n } = statisticToken(token);\n const defaultComponentToken = typeof getDefaultToken === 'function' ? getDefaultToken(proxyToken) : getDefaultToken;\n const mergedComponentToken = Object.assign(Object.assign({}, defaultComponentToken), token[component]);\n const componentCls = `.${prefixCls}`;\n const mergedToken = mergeToken(proxyToken, {\n componentCls,\n prefixCls,\n iconCls: `.${iconPrefixCls}`,\n antCls: `.${rootPrefixCls}`\n }, mergedComponentToken);\n const styleInterpolation = styleFn(mergedToken, {\n hashId,\n prefixCls,\n rootPrefixCls,\n iconPrefixCls,\n overrideComponentToken: token[component]\n });\n flush(component, mergedComponentToken);\n return [(options === null || options === void 0 ? void 0 : options.resetStyle) === false ? null : genCommonStyle(token, prefixCls), styleInterpolation];\n }), hashId];\n };\n}","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================== Row-Shared ==============================\nconst genGridRowStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // Grid system\n [componentCls]: {\n display: 'flex',\n flexFlow: 'row wrap',\n minWidth: 0,\n '&::before, &::after': {\n display: 'flex'\n },\n '&-no-wrap': {\n flexWrap: 'nowrap'\n },\n // The origin of the X-axis\n '&-start': {\n justifyContent: 'flex-start'\n },\n // The center of the X-axis\n '&-center': {\n justifyContent: 'center'\n },\n // The opposite of the X-axis\n '&-end': {\n justifyContent: 'flex-end'\n },\n '&-space-between': {\n justifyContent: 'space-between'\n },\n '&-space-around': {\n justifyContent: 'space-around'\n },\n '&-space-evenly': {\n justifyContent: 'space-evenly'\n },\n // Align at the top\n '&-top': {\n alignItems: 'flex-start'\n },\n // Align at the center\n '&-middle': {\n alignItems: 'center'\n },\n '&-bottom': {\n alignItems: 'flex-end'\n }\n }\n };\n};\n// ============================== Col-Shared ==============================\nconst genGridColStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // Grid system\n [componentCls]: {\n position: 'relative',\n maxWidth: '100%',\n // Prevent columns from collapsing when empty\n minHeight: 1\n }\n };\n};\nconst genLoopGridColumnsStyle = (token, sizeCls) => {\n const {\n componentCls,\n gridColumns\n } = token;\n const gridColumnsStyle = {};\n for (let i = gridColumns; i >= 0; i--) {\n if (i === 0) {\n gridColumnsStyle[`${componentCls}${sizeCls}-${i}`] = {\n display: 'none'\n };\n gridColumnsStyle[`${componentCls}-push-${i}`] = {\n insetInlineStart: 'auto'\n };\n gridColumnsStyle[`${componentCls}-pull-${i}`] = {\n insetInlineEnd: 'auto'\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-push-${i}`] = {\n insetInlineStart: 'auto'\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-pull-${i}`] = {\n insetInlineEnd: 'auto'\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-offset-${i}`] = {\n marginInlineStart: 0\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-order-${i}`] = {\n order: 0\n };\n } else {\n gridColumnsStyle[`${componentCls}${sizeCls}-${i}`] = {\n display: 'block',\n flex: `0 0 ${i / gridColumns * 100}%`,\n maxWidth: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-push-${i}`] = {\n insetInlineStart: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-pull-${i}`] = {\n insetInlineEnd: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-offset-${i}`] = {\n marginInlineStart: `${i / gridColumns * 100}%`\n };\n gridColumnsStyle[`${componentCls}${sizeCls}-order-${i}`] = {\n order: i\n };\n }\n }\n return gridColumnsStyle;\n};\nconst genGridStyle = (token, sizeCls) => genLoopGridColumnsStyle(token, sizeCls);\nconst genGridMediaStyle = (token, screenSize, sizeCls) => ({\n [`@media (min-width: ${screenSize}px)`]: Object.assign({}, genGridStyle(token, sizeCls))\n});\n// ============================== Export ==============================\nexport const useRowStyle = genComponentStyleHook('Grid', token => [genGridRowStyle(token)]);\nexport const useColStyle = genComponentStyleHook('Grid', token => {\n const gridToken = mergeToken(token, {\n gridColumns: 24 // Row is divided into 24 parts in Grid\n });\n\n const gridMediaSizesMap = {\n '-sm': gridToken.screenSMMin,\n '-md': gridToken.screenMDMin,\n '-lg': gridToken.screenLGMin,\n '-xl': gridToken.screenXLMin,\n '-xxl': gridToken.screenXXLMin\n };\n return [genGridColStyle(gridToken), genGridStyle(gridToken, ''), genGridStyle(gridToken, '-xs'), Object.keys(gridMediaSizesMap).map(key => genGridMediaStyle(gridToken, gridMediaSizesMap[key], key)).reduce((pre, cur) => Object.assign(Object.assign({}, pre), cur), {})];\n});","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useFlexGapSupport from '../_util/hooks/useFlexGapSupport';\nimport useResponsiveObserver, { responsiveArray } from '../_util/responsiveObserver';\nimport RowContext from './RowContext';\nimport { useRowStyle } from './style';\nconst RowAligns = ['top', 'middle', 'bottom', 'stretch'];\nconst RowJustify = ['start', 'end', 'center', 'space-around', 'space-between', 'space-evenly'];\nfunction useMergePropByScreen(oriProp, screen) {\n const [prop, setProp] = React.useState(typeof oriProp === 'string' ? oriProp : '');\n const calcMergeAlignOrJustify = () => {\n if (typeof oriProp === 'string') {\n setProp(oriProp);\n }\n if (typeof oriProp !== 'object') {\n return;\n }\n for (let i = 0; i < responsiveArray.length; i++) {\n const breakpoint = responsiveArray[i];\n // if do not match, do nothing\n if (!screen[breakpoint]) continue;\n const curVal = oriProp[breakpoint];\n if (curVal !== undefined) {\n setProp(curVal);\n return;\n }\n }\n };\n React.useEffect(() => {\n calcMergeAlignOrJustify();\n }, [JSON.stringify(oriProp), screen]);\n return prop;\n}\nconst Row = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n justify,\n align,\n className,\n style,\n children,\n gutter = 0,\n wrap\n } = props,\n others = __rest(props, [\"prefixCls\", \"justify\", \"align\", \"className\", \"style\", \"children\", \"gutter\", \"wrap\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const [screens, setScreens] = React.useState({\n xs: true,\n sm: true,\n md: true,\n lg: true,\n xl: true,\n xxl: true\n });\n // to save screens info when responsiveObserve callback had been call\n const [curScreens, setCurScreens] = React.useState({\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n xxl: false\n });\n // ================================== calc responsive data ==================================\n const mergeAlign = useMergePropByScreen(align, curScreens);\n const mergeJustify = useMergePropByScreen(justify, curScreens);\n const supportFlexGap = useFlexGapSupport();\n const gutterRef = React.useRef(gutter);\n const responsiveObserver = useResponsiveObserver();\n // ================================== Effect ==================================\n React.useEffect(() => {\n const token = responsiveObserver.subscribe(screen => {\n setCurScreens(screen);\n const currentGutter = gutterRef.current || 0;\n if (!Array.isArray(currentGutter) && typeof currentGutter === 'object' || Array.isArray(currentGutter) && (typeof currentGutter[0] === 'object' || typeof currentGutter[1] === 'object')) {\n setScreens(screen);\n }\n });\n return () => responsiveObserver.unsubscribe(token);\n }, []);\n // ================================== Render ==================================\n const getGutter = () => {\n const results = [undefined, undefined];\n const normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, undefined];\n normalizedGutter.forEach((g, index) => {\n if (typeof g === 'object') {\n for (let i = 0; i < responsiveArray.length; i++) {\n const breakpoint = responsiveArray[i];\n if (screens[breakpoint] && g[breakpoint] !== undefined) {\n results[index] = g[breakpoint];\n break;\n }\n }\n } else {\n results[index] = g;\n }\n });\n return results;\n };\n const prefixCls = getPrefixCls('row', customizePrefixCls);\n const [wrapSSR, hashId] = useRowStyle(prefixCls);\n const gutters = getGutter();\n const classes = classNames(prefixCls, {\n [`${prefixCls}-no-wrap`]: wrap === false,\n [`${prefixCls}-${mergeJustify}`]: mergeJustify,\n [`${prefixCls}-${mergeAlign}`]: mergeAlign,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n // Add gutter related style\n const rowStyle = {};\n const horizontalGutter = gutters[0] != null && gutters[0] > 0 ? gutters[0] / -2 : undefined;\n const verticalGutter = gutters[1] != null && gutters[1] > 0 ? gutters[1] / -2 : undefined;\n if (horizontalGutter) {\n rowStyle.marginLeft = horizontalGutter;\n rowStyle.marginRight = horizontalGutter;\n }\n if (supportFlexGap) {\n // Set gap direct if flex gap support\n [, rowStyle.rowGap] = gutters;\n } else if (verticalGutter) {\n rowStyle.marginTop = verticalGutter;\n rowStyle.marginBottom = verticalGutter;\n }\n // \"gutters\" is a new array in each rendering phase, it'll make 'React.useMemo' effectless.\n // So we deconstruct \"gutters\" variable here.\n const [gutterH, gutterV] = gutters;\n const rowContext = React.useMemo(() => ({\n gutter: [gutterH, gutterV],\n wrap,\n supportFlexGap\n }), [gutterH, gutterV, wrap, supportFlexGap]);\n return wrapSSR( /*#__PURE__*/React.createElement(RowContext.Provider, {\n value: rowContext\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n className: classes,\n style: Object.assign(Object.assign({}, rowStyle), style),\n ref: ref\n }), children)));\n});\nif (process.env.NODE_ENV !== 'production') {\n Row.displayName = 'Row';\n}\nexport default Row;","import { Row } from '../grid';\nexport default Row;","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport RowContext from './RowContext';\nimport { useColStyle } from './style';\nfunction parseFlex(flex) {\n if (typeof flex === 'number') {\n return `${flex} ${flex} auto`;\n }\n if (/^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(flex)) {\n return `0 0 ${flex}`;\n }\n return flex;\n}\nconst sizes = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nconst Col = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n gutter,\n wrap,\n supportFlexGap\n } = React.useContext(RowContext);\n const {\n prefixCls: customizePrefixCls,\n span,\n order,\n offset,\n push,\n pull,\n className,\n children,\n flex,\n style\n } = props,\n others = __rest(props, [\"prefixCls\", \"span\", \"order\", \"offset\", \"push\", \"pull\", \"className\", \"children\", \"flex\", \"style\"]);\n const prefixCls = getPrefixCls('col', customizePrefixCls);\n const [wrapSSR, hashId] = useColStyle(prefixCls);\n let sizeClassObj = {};\n sizes.forEach(size => {\n let sizeProps = {};\n const propSize = props[size];\n if (typeof propSize === 'number') {\n sizeProps.span = propSize;\n } else if (typeof propSize === 'object') {\n sizeProps = propSize || {};\n }\n delete others[size];\n sizeClassObj = Object.assign(Object.assign({}, sizeClassObj), {\n [`${prefixCls}-${size}-${sizeProps.span}`]: sizeProps.span !== undefined,\n [`${prefixCls}-${size}-order-${sizeProps.order}`]: sizeProps.order || sizeProps.order === 0,\n [`${prefixCls}-${size}-offset-${sizeProps.offset}`]: sizeProps.offset || sizeProps.offset === 0,\n [`${prefixCls}-${size}-push-${sizeProps.push}`]: sizeProps.push || sizeProps.push === 0,\n [`${prefixCls}-${size}-pull-${sizeProps.pull}`]: sizeProps.pull || sizeProps.pull === 0,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n });\n });\n const classes = classNames(prefixCls, {\n [`${prefixCls}-${span}`]: span !== undefined,\n [`${prefixCls}-order-${order}`]: order,\n [`${prefixCls}-offset-${offset}`]: offset,\n [`${prefixCls}-push-${push}`]: push,\n [`${prefixCls}-pull-${pull}`]: pull\n }, className, sizeClassObj, hashId);\n const mergedStyle = {};\n // Horizontal gutter use padding\n if (gutter && gutter[0] > 0) {\n const horizontalGutter = gutter[0] / 2;\n mergedStyle.paddingLeft = horizontalGutter;\n mergedStyle.paddingRight = horizontalGutter;\n }\n // Vertical gutter use padding when gap not support\n if (gutter && gutter[1] > 0 && !supportFlexGap) {\n const verticalGutter = gutter[1] / 2;\n mergedStyle.paddingTop = verticalGutter;\n mergedStyle.paddingBottom = verticalGutter;\n }\n if (flex) {\n mergedStyle.flex = parseFlex(flex);\n // Hack for Firefox to avoid size issue\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n if (wrap === false && !mergedStyle.minWidth) {\n mergedStyle.minWidth = 0;\n }\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n style: Object.assign(Object.assign({}, mergedStyle), style),\n className: classes,\n ref: ref\n }), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n Col.displayName = 'Col';\n}\nexport default Col;","import { Col } from '../grid';\nexport default Col;","import _typeof from \"./typeof.js\";\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n };\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nexport { _regeneratorRuntime as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as ReactDOM from 'react-dom';\n// Let compiler not to search module usage\nvar fullClone = _objectSpread({}, ReactDOM);\nvar version = fullClone.version,\n reactRender = fullClone.render,\n unmountComponentAtNode = fullClone.unmountComponentAtNode;\nvar createRoot;\ntry {\n var mainVersion = Number((version || '').split('.')[0]);\n if (mainVersion >= 18) {\n createRoot = fullClone.createRoot;\n }\n} catch (e) {\n // Do nothing;\n}\nfunction toggleWarning(skip) {\n var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n if (__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED && _typeof(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === 'object') {\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint = skip;\n }\n}\nvar MARK = '__rc_react_root__';\n\n// ========================== Render ==========================\n\nfunction modernRender(node, container) {\n toggleWarning(true);\n var root = container[MARK] || createRoot(container);\n toggleWarning(false);\n root.render(node);\n container[MARK] = root;\n}\nfunction legacyRender(node, container) {\n reactRender(node, container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _r(node, container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyRender(node, container);\n }\n}\nexport function render(node, container) {\n if (createRoot) {\n modernRender(node, container);\n return;\n }\n legacyRender(node, container);\n}\n\n// ========================= Unmount ==========================\nfunction modernUnmount(_x) {\n return _modernUnmount.apply(this, arguments);\n}\nfunction _modernUnmount() {\n _modernUnmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(container) {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", Promise.resolve().then(function () {\n var _container$MARK;\n (_container$MARK = container[MARK]) === null || _container$MARK === void 0 ? void 0 : _container$MARK.unmount();\n delete container[MARK];\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return _modernUnmount.apply(this, arguments);\n}\nfunction legacyUnmount(container) {\n unmountComponentAtNode(container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _u(container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyUnmount(container);\n }\n}\nexport function unmount(_x2) {\n return _unmount.apply(this, arguments);\n}\nfunction _unmount() {\n _unmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(container) {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (!(createRoot !== undefined)) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\", modernUnmount(container));\n case 2:\n legacyUnmount(container);\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return _unmount.apply(this, arguments);\n}","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _createSuper(t) {\n var r = isNativeReflectConstruct();\n return function () {\n var e,\n o = getPrototypeOf(t);\n if (r) {\n var s = getPrototypeOf(this).constructor;\n e = Reflect.construct(o, arguments, s);\n } else e = o.apply(this, arguments);\n return possibleConstructorReturn(this, e);\n };\n}\nexport { _createSuper as default };","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","import warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar warningFunc = function warningFunc() {\n warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\nvar Context = /*#__PURE__*/React.createContext({\n getFieldValue: warningFunc,\n getFieldsValue: warningFunc,\n getFieldError: warningFunc,\n getFieldWarning: warningFunc,\n getFieldsError: warningFunc,\n isFieldsTouched: warningFunc,\n isFieldTouched: warningFunc,\n isFieldValidating: warningFunc,\n isFieldsValidating: warningFunc,\n resetFields: warningFunc,\n setFields: warningFunc,\n setFieldValue: warningFunc,\n setFieldsValue: warningFunc,\n validateFields: warningFunc,\n submit: warningFunc,\n getInternalHooks: function getInternalHooks() {\n warningFunc();\n return {\n dispatch: warningFunc,\n initEntityValue: warningFunc,\n registerField: warningFunc,\n useSubscribe: warningFunc,\n setInitialValues: warningFunc,\n destroyForm: warningFunc,\n setCallbacks: warningFunc,\n registerWatch: warningFunc,\n getFields: warningFunc,\n setValidateMessages: warningFunc,\n setPreserve: warningFunc,\n getInitialValue: warningFunc\n };\n }\n});\nexport default Context;","export function toArray(value) {\n if (value === undefined || value === null) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n}\nexport function isFormInstance(form) {\n return form && !!form._init;\n}","/* eslint no-console:0 */\n\nimport {\n ValidateError,\n ValidateOption,\n RuleValuePackage,\n InternalRuleItem,\n SyncErrorType,\n RuleType,\n Value,\n Values,\n} from './interface';\n\nconst formatRegExp = /%[sdj%]/g;\n\ndeclare var ASYNC_VALIDATOR_NO_WARNING;\n\nexport let warning: (type: string, errors: SyncErrorType[]) => void = () => {};\n\n// don't print warning message when in production env or node runtime\nif (\n typeof process !== 'undefined' &&\n process.env &&\n process.env.NODE_ENV !== 'production' &&\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n) {\n warning = (type, errors) => {\n if (\n typeof console !== 'undefined' &&\n console.warn &&\n typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined'\n ) {\n if (errors.every(e => typeof e === 'string')) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nexport function convertFieldsError(\n errors: ValidateError[],\n): Record {\n if (!errors || !errors.length) return null;\n const fields = {};\n errors.forEach(error => {\n const field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\n\nexport function format(\n template: ((...args: any[]) => string) | string,\n ...args: any[]\n): string {\n let i = 0;\n const len = args.length;\n if (typeof template === 'function') {\n return template.apply(null, args);\n }\n if (typeof template === 'string') {\n let str = template.replace(formatRegExp, x => {\n if (x === '%%') {\n return '%';\n }\n if (i >= len) {\n return x;\n }\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return (Number(args[i++]) as unknown) as string;\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n break;\n default:\n return x;\n }\n });\n return str;\n }\n return template;\n}\n\nfunction isNativeStringType(type: string) {\n return (\n type === 'string' ||\n type === 'url' ||\n type === 'hex' ||\n type === 'email' ||\n type === 'date' ||\n type === 'pattern'\n );\n}\n\nexport function isEmptyValue(value: Value, type?: string) {\n if (value === undefined || value === null) {\n return true;\n }\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n return false;\n}\n\nexport function isEmptyObject(obj: object) {\n return Object.keys(obj).length === 0;\n}\n\nfunction asyncParallelArray(\n arr: RuleValuePackage[],\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n) {\n const results: ValidateError[] = [];\n let total = 0;\n const arrLength = arr.length;\n\n function count(errors: ValidateError[]) {\n results.push(...(errors || []));\n total++;\n if (total === arrLength) {\n callback(results);\n }\n }\n\n arr.forEach(a => {\n func(a, count);\n });\n}\n\nfunction asyncSerialArray(\n arr: RuleValuePackage[],\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n) {\n let index = 0;\n const arrLength = arr.length;\n\n function next(errors: ValidateError[]) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n const original = index;\n index = index + 1;\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n\n next([]);\n}\n\nfunction flattenObjArr(objArr: Record) {\n const ret: RuleValuePackage[] = [];\n Object.keys(objArr).forEach(k => {\n ret.push(...(objArr[k] || []));\n });\n return ret;\n}\n\nexport class AsyncValidationError extends Error {\n errors: ValidateError[];\n fields: Record;\n\n constructor(\n errors: ValidateError[],\n fields: Record,\n ) {\n super('Async Validation Error');\n this.errors = errors;\n this.fields = fields;\n }\n}\n\ntype ValidateFunc = (\n data: RuleValuePackage,\n doIt: (errors: ValidateError[]) => void,\n) => void;\n\nexport function asyncMap(\n objArr: Record,\n option: ValidateOption,\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n source: Values,\n): Promise {\n if (option.first) {\n const pending = new Promise((resolve, reject) => {\n const next = (errors: ValidateError[]) => {\n callback(errors);\n return errors.length\n ? reject(new AsyncValidationError(errors, convertFieldsError(errors)))\n : resolve(source);\n };\n const flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n pending.catch(e => e);\n return pending;\n }\n const firstFields =\n option.firstFields === true\n ? Object.keys(objArr)\n : option.firstFields || [];\n\n const objArrKeys = Object.keys(objArr);\n const objArrLength = objArrKeys.length;\n let total = 0;\n const results: ValidateError[] = [];\n const pending = new Promise((resolve, reject) => {\n const next = (errors: ValidateError[]) => {\n results.push.apply(results, errors);\n total++;\n if (total === objArrLength) {\n callback(results);\n return results.length\n ? reject(\n new AsyncValidationError(results, convertFieldsError(results)),\n )\n : resolve(source);\n }\n };\n if (!objArrKeys.length) {\n callback(results);\n resolve(source);\n }\n objArrKeys.forEach(key => {\n const arr = objArr[key];\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending.catch(e => e);\n return pending;\n}\n\nfunction isErrorObj(\n obj: ValidateError | string | (() => string),\n): obj is ValidateError {\n return !!(obj && (obj as ValidateError).message !== undefined);\n}\n\nfunction getValue(value: Values, path: string[]) {\n let v = value;\n for (let i = 0; i < path.length; i++) {\n if (v == undefined) {\n return v;\n }\n v = v[path[i]];\n }\n return v;\n}\n\nexport function complementError(rule: InternalRuleItem, source: Values) {\n return (oe: ValidateError | (() => string) | string): ValidateError => {\n let fieldValue;\n if (rule.fullFields) {\n fieldValue = getValue(source, rule.fullFields);\n } else {\n fieldValue = source[(oe as any).field || rule.fullField];\n }\n if (isErrorObj(oe)) {\n oe.field = oe.field || rule.fullField;\n oe.fieldValue = fieldValue;\n return oe;\n }\n return {\n message: typeof oe === 'function' ? oe() : oe,\n fieldValue,\n field: ((oe as unknown) as ValidateError).field || rule.fullField,\n };\n };\n}\n\nexport function deepMerge(target: T, source: Partial): T {\n if (source) {\n for (const s in source) {\n if (source.hasOwnProperty(s)) {\n const value = source[s];\n if (typeof value === 'object' && typeof target[s] === 'object') {\n target[s] = {\n ...target[s],\n ...value,\n };\n } else {\n target[s] = value;\n }\n }\n }\n }\n return target;\n}\n","import { ExecuteRule } from '../interface';\nimport { format, isEmptyValue } from '../util';\n\nconst required: ExecuteRule = (rule, value, source, errors, options, type) => {\n if (\n rule.required &&\n (!source.hasOwnProperty(rule.field) ||\n isEmptyValue(value, type || rule.type))\n ) {\n errors.push(format(options.messages.required, rule.fullField));\n }\n};\n\nexport default required;\n","// https://github.com/kevva/url-regex/blob/master/index.js\nlet urlReg: RegExp;\n\nexport default () => {\n if (urlReg) {\n return urlReg;\n }\n\n const word = '[a-fA-F\\\\d:]';\n const b = options =>\n options && options.includeBoundaries\n ? `(?:(?<=\\\\s|^)(?=${word})|(?<=${word})(?=\\\\s|$))`\n : '';\n\n const v4 =\n '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n\n const v6seg = '[a-fA-F\\\\d]{1,4}';\n const v6 = `\n(?:\n(?:${v6seg}:){7}(?:${v6seg}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${v6seg}:){6}(?:${v4}|:${v6seg}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${v6seg}:){5}(?::${v4}|(?::${v6seg}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${v6seg}:){4}(?:(?::${v6seg}){0,1}:${v4}|(?::${v6seg}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${v6seg}:){3}(?:(?::${v6seg}){0,2}:${v4}|(?::${v6seg}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${v6seg}:){2}(?:(?::${v6seg}){0,3}:${v4}|(?::${v6seg}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${v6seg}:){1}(?:(?::${v6seg}){0,4}:${v4}|(?::${v6seg}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${v6seg}){0,5}:${v4}|(?::${v6seg}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`\n .replace(/\\s*\\/\\/.*$/gm, '')\n .replace(/\\n/g, '')\n .trim();\n\n // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n const v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`);\n const v4exact = new RegExp(`^${v4}$`);\n const v6exact = new RegExp(`^${v6}$`);\n\n const ip = options =>\n options && options.exact\n ? v46Exact\n : new RegExp(\n `(?:${b(options)}${v4}${b(options)})|(?:${b(options)}${v6}${b(\n options,\n )})`,\n 'g',\n );\n\n ip.v4 = (options?) =>\n options && options.exact\n ? v4exact\n : new RegExp(`${b(options)}${v4}${b(options)}`, 'g');\n ip.v6 = (options?) =>\n options && options.exact\n ? v6exact\n : new RegExp(`${b(options)}${v6}${b(options)}`, 'g');\n\n const protocol = `(?:(?:[a-z]+:)?//)`;\n const auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n const ipv4 = ip.v4().source;\n const ipv6 = ip.v6().source;\n const host = '(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)';\n const domain =\n '(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*';\n const tld = `(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))`;\n const port = '(?::\\\\d{2,5})?';\n const path = '(?:[/?#][^\\\\s\"]*)?';\n const regex = `(?:${protocol}|www\\\\.)${auth}(?:localhost|${ipv4}|${ipv6}|${host}${domain}${tld})${port}${path}`;\n urlReg = new RegExp(`(?:^${regex}$)`, 'i');\n return urlReg;\n};\n","import { ExecuteRule, Value } from '../interface';\nimport { format } from '../util';\nimport required from './required';\nimport getUrlRegex from './url';\n/* eslint max-len:0 */\n\nconst pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n // url: new RegExp(\n // '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n // 'i',\n // ),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,\n};\n\nconst types = {\n integer(value: Value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n float(value: Value) {\n return types.number(value) && !types.integer(value);\n },\n array(value: Value) {\n return Array.isArray(value);\n },\n regexp(value: Value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date(value: Value) {\n return (\n typeof value.getTime === 'function' &&\n typeof value.getMonth === 'function' &&\n typeof value.getYear === 'function' &&\n !isNaN(value.getTime())\n );\n },\n number(value: Value) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n object(value: Value) {\n return typeof value === 'object' && !types.array(value);\n },\n method(value: Value) {\n return typeof value === 'function';\n },\n email(value: Value) {\n return (\n typeof value === 'string' &&\n value.length <= 320 &&\n !!value.match(pattern.email)\n );\n },\n url(value: Value) {\n return (\n typeof value === 'string' &&\n value.length <= 2048 &&\n !!value.match(getUrlRegex())\n );\n },\n hex(value: Value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n },\n};\n\nconst type: ExecuteRule = (rule, value, source, errors, options) => {\n if (rule.required && value === undefined) {\n required(rule, value, source, errors, options);\n return;\n }\n const custom = [\n 'integer',\n 'float',\n 'array',\n 'regexp',\n 'object',\n 'method',\n 'email',\n 'number',\n 'date',\n 'url',\n 'hex',\n ];\n const ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(\n format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n // straight typeof check\n } else if (ruleType && typeof value !== rule.type) {\n errors.push(\n format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n};\n\nexport default type;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteRule = (rule, value, source, errors, options) => {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(\n format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')),\n );\n }\n};\n\nexport default enumerable;\n","import required from './required';\nimport whitespace from './whitespace';\nimport type from './type';\nimport range from './range';\nimport enumRule from './enum';\nimport pattern from './pattern';\n\nexport default {\n required,\n whitespace,\n type,\n range,\n enum: enumRule,\n pattern,\n};\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nconst whitespace: ExecuteRule = (rule, value, source, errors, options) => {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n};\n\nexport default whitespace;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst range: ExecuteRule = (rule, value, source, errors, options) => {\n const len = typeof rule.len === 'number';\n const min = typeof rule.min === 'number';\n const max = typeof rule.max === 'number';\n // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n const spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n let val = value;\n let key = null;\n const num = typeof value === 'number';\n const str = typeof value === 'string';\n const arr = Array.isArray(value);\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n }\n // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n if (!key) {\n return false;\n }\n if (arr) {\n val = value.length;\n }\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n val = value.replace(spRegexp, '_').length;\n }\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(\n format(options.messages[key].range, rule.fullField, rule.min, rule.max),\n );\n }\n};\n\nexport default range;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst pattern: ExecuteRule = (rule, value, source, errors, options) => {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push(\n format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n } else if (typeof rule.pattern === 'string') {\n const _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push(\n format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n }\n }\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst type: ExecuteValidator = (rule, value, callback, source, options) => {\n const ruleType = rule.type;\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, ruleType);\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default type;\n","import string from './string';\nimport method from './method';\nimport number from './number';\nimport boolean from './boolean';\nimport regexp from './regexp';\nimport integer from './integer';\nimport float from './float';\nimport array from './array';\nimport object from './object';\nimport enumValidator from './enum';\nimport pattern from './pattern';\nimport date from './date';\nimport required from './required';\nimport type from './type';\nimport any from './any';\n\nexport default {\n string,\n method,\n number,\n boolean,\n regexp,\n integer,\n float,\n array,\n object,\n enum: enumValidator,\n pattern,\n date,\n url: type,\n hex: type,\n email: type,\n required,\n any,\n};\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst string: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'string');\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n};\n\nexport default string;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst method: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default method;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst number: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default number;\n","import { isEmptyValue } from '../util';\nimport rules from '../rule';\nimport { ExecuteValidator } from '../interface';\n\nconst boolean: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default boolean;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst regexp: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default regexp;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst integer: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default integer;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst floatFn: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default floatFn;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule/index';\n\nconst array: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if ((value === undefined || value === null) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'array');\n if (value !== undefined && value !== null) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default array;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst object: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default object;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteValidator = (\n rule,\n value,\n callback,\n source,\n options,\n) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules[ENUM](rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default enumerable;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst pattern: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst date: ExecuteValidator = (rule, value, callback, source, options) => {\n // console.log('integer rule called %j', rule);\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n // console.log('validate on %s value', value);\n if (validate) {\n if (isEmptyValue(value, 'date') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'date')) {\n let dateObject;\n\n if (value instanceof Date) {\n dateObject = value;\n } else {\n dateObject = new Date(value);\n }\n\n rules.type(rule, dateObject, source, errors, options);\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n};\n\nexport default date;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\n\nconst required: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const type = Array.isArray(value) ? 'array' : typeof value;\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n};\n\nexport default required;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst any: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n }\n callback(errors);\n};\n\nexport default any;\n","import { InternalValidateMessages } from './interface';\n\nexport function newMessages(): InternalValidateMessages {\n return {\n default: 'Validation error on field %s',\n required: '%s is required',\n enum: '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid',\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n boolean: '%s is not a %s',\n integer: '%s is not an %s',\n float: '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s',\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters',\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s',\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length',\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s',\n },\n clone() {\n const cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n },\n };\n}\n\nexport const messages = newMessages();\n","import {\n format,\n complementError,\n asyncMap,\n warning,\n deepMerge,\n convertFieldsError,\n} from './util';\nimport validators from './validator/index';\nimport { messages as defaultMessages, newMessages } from './messages';\nimport {\n InternalRuleItem,\n InternalValidateMessages,\n Rule,\n RuleItem,\n Rules,\n ValidateCallback,\n ValidateMessages,\n ValidateOption,\n Values,\n RuleValuePackage,\n ValidateError,\n ValidateFieldsError,\n SyncErrorType,\n ValidateResult,\n} from './interface';\n\nexport * from './interface';\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\nclass Schema {\n // ========================= Static =========================\n static register = function register(type: string, validator) {\n if (typeof validator !== 'function') {\n throw new Error(\n 'Cannot register a validator by type, validator is not a function',\n );\n }\n validators[type] = validator;\n };\n\n static warning = warning;\n\n static messages = defaultMessages;\n\n static validators = validators;\n\n // ======================== Instance ========================\n rules: Record = null;\n _messages: InternalValidateMessages = defaultMessages;\n\n constructor(descriptor: Rules) {\n this.define(descriptor);\n }\n\n define(rules: Rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if (typeof rules !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n\n Object.keys(rules).forEach(name => {\n const item: Rule = rules[name];\n this.rules[name] = Array.isArray(item) ? item : [item];\n });\n }\n\n messages(messages?: ValidateMessages) {\n if (messages) {\n this._messages = deepMerge(newMessages(), messages);\n }\n return this._messages;\n }\n\n validate(\n source: Values,\n option?: ValidateOption,\n callback?: ValidateCallback,\n ): Promise;\n validate(source: Values, callback: ValidateCallback): Promise;\n validate(source: Values): Promise;\n\n validate(source_: Values, o: any = {}, oc: any = () => {}): Promise {\n let source: Values = source_;\n let options: ValidateOption = o;\n let callback: ValidateCallback = oc;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback(null, source);\n }\n return Promise.resolve(source);\n }\n\n function complete(results: (ValidateError | ValidateError[])[]) {\n let errors: ValidateError[] = [];\n let fields: ValidateFieldsError = {};\n\n function add(e: ValidateError | ValidateError[]) {\n if (Array.isArray(e)) {\n errors = errors.concat(...e);\n } else {\n errors.push(e);\n }\n }\n\n for (let i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n callback(null, source);\n } else {\n fields = convertFieldsError(errors);\n (callback as (\n errors: ValidateError[],\n fields: ValidateFieldsError,\n ) => void)(errors, fields);\n }\n }\n\n if (options.messages) {\n let messages = this.messages();\n if (messages === defaultMessages) {\n messages = newMessages();\n }\n deepMerge(messages, options.messages);\n options.messages = messages;\n } else {\n options.messages = this.messages();\n }\n\n const series: Record = {};\n const keys = options.keys || Object.keys(this.rules);\n keys.forEach(z => {\n const arr = this.rules[z];\n let value = source[z];\n arr.forEach(r => {\n let rule: InternalRuleItem = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = { ...source };\n }\n value = source[z] = rule.transform(value);\n }\n if (typeof rule === 'function') {\n rule = {\n validator: rule,\n };\n } else {\n rule = { ...rule };\n }\n\n // Fill validator. Skip if nothing need to validate\n rule.validator = this.getValidationMethod(rule);\n if (!rule.validator) {\n return;\n }\n\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = this.getType(rule);\n series[z] = series[z] || [];\n series[z].push({\n rule,\n value,\n source,\n field: z,\n });\n });\n });\n const errorFields = {};\n return asyncMap(\n series,\n options,\n (data, doIt) => {\n const rule = data.rule;\n let deep =\n (rule.type === 'object' || rule.type === 'array') &&\n (typeof rule.fields === 'object' ||\n typeof rule.defaultField === 'object');\n deep = deep && (rule.required || (!rule.required && data.value));\n rule.field = data.field;\n\n function addFullField(key: string, schema: RuleItem) {\n return {\n ...schema,\n fullField: `${rule.fullField}.${key}`,\n fullFields: rule.fullFields ? [...rule.fullFields, key] : [key],\n };\n }\n\n function cb(e: SyncErrorType | SyncErrorType[] = []) {\n let errorList = Array.isArray(e) ? e : [e];\n if (!options.suppressWarning && errorList.length) {\n Schema.warning('async-validator:', errorList);\n }\n if (errorList.length && rule.message !== undefined) {\n errorList = [].concat(rule.message);\n }\n\n // Fill error info\n let filledErrors = errorList.map(complementError(rule, source));\n\n if (options.first && filledErrors.length) {\n errorFields[rule.field] = 1;\n return doIt(filledErrors);\n }\n if (!deep) {\n doIt(filledErrors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message !== undefined) {\n filledErrors = []\n .concat(rule.message)\n .map(complementError(rule, source));\n } else if (options.error) {\n filledErrors = [\n options.error(\n rule,\n format(options.messages.required, rule.field),\n ),\n ];\n }\n return doIt(filledErrors);\n }\n\n let fieldsSchema: Record = {};\n if (rule.defaultField) {\n Object.keys(data.value).map(key => {\n fieldsSchema[key] = rule.defaultField;\n });\n }\n fieldsSchema = {\n ...fieldsSchema,\n ...data.rule.fields,\n };\n\n const paredFieldsSchema: Record = {};\n\n Object.keys(fieldsSchema).forEach(field => {\n const fieldSchema = fieldsSchema[field];\n const fieldSchemaList = Array.isArray(fieldSchema)\n ? fieldSchema\n : [fieldSchema];\n paredFieldsSchema[field] = fieldSchemaList.map(\n addFullField.bind(null, field),\n );\n });\n const schema = new Schema(paredFieldsSchema);\n schema.messages(options.messages);\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n schema.validate(data.value, data.rule.options || options, errs => {\n const finalErrors = [];\n if (filledErrors && filledErrors.length) {\n finalErrors.push(...filledErrors);\n }\n if (errs && errs.length) {\n finalErrors.push(...errs);\n }\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n\n let res: ValidateResult;\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n try {\n res = rule.validator(rule, data.value, cb, data.source, options);\n } catch (error) {\n console.error?.(error);\n // rethrow to report error\n if (!options.suppressValidatorError) {\n setTimeout(() => {\n throw error;\n }, 0);\n }\n cb(error.message);\n }\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(\n typeof rule.message === 'function'\n ? rule.message(rule.fullField || rule.field)\n : rule.message || `${rule.fullField || rule.field} fails`,\n );\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n if (res && (res as Promise).then) {\n (res as Promise).then(\n () => cb(),\n e => cb(e),\n );\n }\n },\n results => {\n complete(results);\n },\n source,\n );\n }\n\n getType(rule: InternalRuleItem) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (\n typeof rule.validator !== 'function' &&\n rule.type &&\n !validators.hasOwnProperty(rule.type)\n ) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n }\n\n getValidationMethod(rule: InternalRuleItem) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n const keys = Object.keys(rule);\n const messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n return validators[this.getType(rule)] || undefined;\n }\n}\n\nexport default Schema;\n","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n default: \"Validation error on field '${name}'\",\n required: \"'${name}' is required\",\n enum: \"'${name}' must be one of [${enum}]\",\n whitespace: \"'${name}' cannot be empty\",\n date: {\n format: \"'${name}' is invalid for format date\",\n parse: \"'${name}' could not be parsed as date\",\n invalid: \"'${name}' is invalid date\"\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: \"'${name}' must be exactly ${len} characters\",\n min: \"'${name}' must be at least ${min} characters\",\n max: \"'${name}' cannot be longer than ${max} characters\",\n range: \"'${name}' must be between ${min} and ${max} characters\"\n },\n number: {\n len: \"'${name}' must equal ${len}\",\n min: \"'${name}' cannot be less than ${min}\",\n max: \"'${name}' cannot be greater than ${max}\",\n range: \"'${name}' must be between ${min} and ${max}\"\n },\n array: {\n len: \"'${name}' must be exactly ${len} in length\",\n min: \"'${name}' cannot be less than ${min} in length\",\n max: \"'${name}' cannot be greater than ${max} in length\",\n range: \"'${name}' must be between ${min} and ${max} in length\"\n },\n pattern: {\n mismatch: \"'${name}' does not match pattern ${pattern}\"\n }\n};","export default function get(entity, path) {\n var current = entity;\n for (var i = 0; i < path.length; i += 1) {\n if (current === null || current === undefined) {\n return undefined;\n }\n current = current[path[i]];\n }\n return current;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _toArray(r) {\n return arrayWithHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableRest();\n}\nexport { _toArray as default };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nfunction cloneDeep(val) {\n if (Array.isArray(val)) {\n return cloneArrayDeep(val);\n } else if (_typeof(val) === 'object' && val !== null) {\n return cloneObjectDeep(val);\n }\n return val;\n}\nfunction cloneObjectDeep(val) {\n if (Object.getPrototypeOf(val) === Object.prototype) {\n var res = {};\n for (var key in val) {\n res[key] = cloneDeep(val[key]);\n }\n return res;\n }\n return val;\n}\nfunction cloneArrayDeep(val) {\n return val.map(function (item) {\n return cloneDeep(item);\n });\n}\nexport default cloneDeep;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport getValue from \"rc-util/es/utils/get\";\nimport setValue from \"rc-util/es/utils/set\";\nimport { toArray } from './typeUtil';\nimport cloneDeep from '../utils/cloneDeep';\nexport { getValue, setValue };\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\nexport function getNamePath(path) {\n return toArray(path);\n}\nexport function cloneByNamePathList(store, namePathList) {\n var newStore = {};\n namePathList.forEach(function (namePath) {\n var value = getValue(store, namePath);\n newStore = setValue(newStore, namePath, value);\n });\n return newStore;\n}\nexport function containsNamePath(namePathList, namePath) {\n return namePathList && namePathList.some(function (path) {\n return matchNamePath(path, namePath);\n });\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\n/**\n * Copy values into store and return a new values object\n * ({ a: 1, b: { c: 2 } }, { a: 4, b: { d: 5 } }) => { a: 4, b: { c: 2, d: 5 } }\n */\nfunction internalSetValues(store, values) {\n var newStore = Array.isArray(store) ? _toConsumableArray(store) : _objectSpread({}, store);\n if (!values) {\n return newStore;\n }\n Object.keys(values).forEach(function (key) {\n var prevValue = newStore[key];\n var value = values[key];\n // If both are object (but target is not array), we use recursion to set deep value\n var recursive = isObject(prevValue) && isObject(value);\n newStore[key] = recursive ? internalSetValues(prevValue, value || {}) : cloneDeep(value); // Clone deep for arrays\n });\n\n return newStore;\n}\nexport function setValues(store) {\n for (var _len = arguments.length, restValues = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n restValues[_key - 1] = arguments[_key];\n }\n return restValues.reduce(function (current, newStore) {\n return internalSetValues(current, newStore);\n }, store);\n}\nexport function matchNamePath(namePath, changedNamePath) {\n if (!namePath || !changedNamePath || namePath.length !== changedNamePath.length) {\n return false;\n }\n return namePath.every(function (nameUnit, i) {\n return changedNamePath[i] === nameUnit;\n });\n}\nexport function isSimilar(source, target) {\n if (source === target) {\n return true;\n }\n if (!source && target || source && !target) {\n return false;\n }\n if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n return false;\n }\n var sourceKeys = Object.keys(source);\n var targetKeys = Object.keys(target);\n var keys = new Set([].concat(sourceKeys, targetKeys));\n return _toConsumableArray(keys).every(function (key) {\n var sourceValue = source[key];\n var targetValue = target[key];\n if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n return true;\n }\n return sourceValue === targetValue;\n });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n var event = arguments.length <= 1 ? undefined : arguments[1];\n if (event && event.target && _typeof(event.target) === 'object' && valuePropName in event.target) {\n return event.target[valuePropName];\n }\n return event;\n}\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array Array in which to move an item. (required)\n * @param moveIndex The index of the item to move. (required)\n * @param toIndex The index to move item at moveIndex to. (required)\n */\nexport function move(array, moveIndex, toIndex) {\n var length = array.length;\n if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n return array;\n }\n var item = array[moveIndex];\n var diff = moveIndex - toIndex;\n if (diff > 0) {\n // move left\n return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n }\n if (diff < 0) {\n // move right\n return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n }\n return array;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { defaultValidateMessages } from './messages';\nimport { setValues } from './valueUtil';\n// Remove incorrect original ts define\nvar AsyncValidator = RawAsyncValidator;\n/**\n * Replace with template.\n * `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\nfunction replaceMessage(template, kv) {\n return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n var key = str.slice(2, -1);\n return kv[key];\n });\n}\nvar CODE_LOGIC_ERROR = 'CODE_LOGIC_ERROR';\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\nfunction _validateRule() {\n _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(name, value, rule, options, messageVariables) {\n var cloneRule, originValidator, subRuleField, validator, messages, result, subResults, kv, fillVariableResult;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n cloneRule = _objectSpread({}, rule); // Bug of `async-validator`\n // https://github.com/react-component/field-form/issues/316\n // https://github.com/react-component/field-form/issues/313\n delete cloneRule.ruleIndex;\n // https://github.com/ant-design/ant-design/issues/40497#issuecomment-1422282378\n AsyncValidator.warning = function () {\n return void 0;\n };\n if (cloneRule.validator) {\n originValidator = cloneRule.validator;\n cloneRule.validator = function () {\n try {\n return originValidator.apply(void 0, arguments);\n } catch (error) {\n console.error(error);\n return Promise.reject(CODE_LOGIC_ERROR);\n }\n };\n }\n // We should special handle array validate\n subRuleField = null;\n if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n subRuleField = cloneRule.defaultField;\n delete cloneRule.defaultField;\n }\n validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n messages = setValues({}, defaultValidateMessages, options.validateMessages);\n validator.messages(messages);\n result = [];\n _context2.prev = 10;\n _context2.next = 13;\n return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n case 13:\n _context2.next = 18;\n break;\n case 15:\n _context2.prev = 15;\n _context2.t0 = _context2[\"catch\"](10);\n if (_context2.t0.errors) {\n result = _context2.t0.errors.map(function (_ref4, index) {\n var message = _ref4.message;\n var mergedMessage = message === CODE_LOGIC_ERROR ? messages.default : message;\n return /*#__PURE__*/React.isValidElement(mergedMessage) ?\n /*#__PURE__*/\n // Wrap ReactNode with `key`\n React.cloneElement(mergedMessage, {\n key: \"error_\".concat(index)\n }) : mergedMessage;\n });\n }\n case 18:\n if (!(!result.length && subRuleField)) {\n _context2.next = 23;\n break;\n }\n _context2.next = 21;\n return Promise.all(value.map(function (subValue, i) {\n return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n }));\n case 21:\n subResults = _context2.sent;\n return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n }, []));\n case 23:\n // Replace message with variables\n kv = _objectSpread(_objectSpread({}, rule), {}, {\n name: name,\n enum: (rule.enum || []).join(', ')\n }, messageVariables);\n fillVariableResult = result.map(function (error) {\n if (typeof error === 'string') {\n return replaceMessage(error, kv);\n }\n return error;\n });\n return _context2.abrupt(\"return\", fillVariableResult);\n case 26:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[10, 15]]);\n }));\n return _validateRule.apply(this, arguments);\n}\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n var name = namePath.join('.');\n // Fill rule with context\n var filledRules = rules.map(function (currentRule, ruleIndex) {\n var originValidatorFunc = currentRule.validator;\n var cloneRule = _objectSpread(_objectSpread({}, currentRule), {}, {\n ruleIndex: ruleIndex\n });\n // Replace validator if needed\n if (originValidatorFunc) {\n cloneRule.validator = function (rule, val, callback) {\n var hasPromise = false;\n // Wrap callback only accept when promise not provided\n var wrappedCallback = function wrappedCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n // Wait a tick to make sure return type is a promise\n Promise.resolve().then(function () {\n warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n if (!hasPromise) {\n callback.apply(void 0, args);\n }\n });\n };\n // Get promise\n var promise = originValidatorFunc(rule, val, wrappedCallback);\n hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n /**\n * 1. Use promise as the first priority.\n * 2. If promise not exist, use callback with warning instead\n */\n warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n if (hasPromise) {\n promise.then(function () {\n callback();\n }).catch(function (err) {\n callback(err || ' ');\n });\n }\n };\n }\n return cloneRule;\n }).sort(function (_ref, _ref2) {\n var w1 = _ref.warningOnly,\n i1 = _ref.ruleIndex;\n var w2 = _ref2.warningOnly,\n i2 = _ref2.ruleIndex;\n if (!!w1 === !!w2) {\n // Let keep origin order\n return i1 - i2;\n }\n if (w1) {\n return 1;\n }\n return -1;\n });\n // Do validate rules\n var summaryPromise;\n if (validateFirst === true) {\n // >>>>> Validate by serialization\n summaryPromise = new Promise( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject) {\n var i, rule, errors;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n i = 0;\n case 1:\n if (!(i < filledRules.length)) {\n _context.next = 12;\n break;\n }\n rule = filledRules[i];\n _context.next = 5;\n return validateRule(name, value, rule, options, messageVariables);\n case 5:\n errors = _context.sent;\n if (!errors.length) {\n _context.next = 9;\n break;\n }\n reject([{\n errors: errors,\n rule: rule\n }]);\n return _context.abrupt(\"return\");\n case 9:\n i += 1;\n _context.next = 1;\n break;\n case 12:\n /* eslint-enable */\n resolve([]);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n }());\n } else {\n // >>>>> Validate by parallel\n var rulePromises = filledRules.map(function (rule) {\n return validateRule(name, value, rule, options, messageVariables).then(function (errors) {\n return {\n errors: errors,\n rule: rule\n };\n });\n });\n summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n // Always change to rejection for Field to catch\n return Promise.reject(errors);\n });\n }\n // Internal catch error to avoid console error log.\n summaryPromise.catch(function (e) {\n return e;\n });\n return summaryPromise;\n}\nfunction finishOnAllFailed(_x8) {\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction _finishOnAllFailed() {\n _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(rulePromises) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n var _ref5;\n var errors = (_ref5 = []).concat.apply(_ref5, _toConsumableArray(errorsList));\n return errors;\n }));\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction finishOnFirstFailed(_x9) {\n return _finishOnFirstFailed.apply(this, arguments);\n}\nfunction _finishOnFirstFailed() {\n _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(rulePromises) {\n var count;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n count = 0;\n return _context4.abrupt(\"return\", new Promise(function (resolve) {\n rulePromises.forEach(function (promise) {\n promise.then(function (ruleError) {\n if (ruleError.errors.length) {\n resolve([ruleError]);\n }\n count += 1;\n if (count === rulePromises.length) {\n resolve([]);\n }\n });\n });\n }));\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return _finishOnFirstFailed.apply(this, arguments);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"name\"];\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport { toArray } from './utils/typeUtil';\nimport { validateRules } from './utils/validateUtil';\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from './utils/valueUtil';\nvar EMPTY_ERRORS = [];\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n if (typeof shouldUpdate === 'function') {\n return shouldUpdate(prev, next, 'source' in info ? {\n source: info.source\n } : {});\n }\n return prevValue !== nextValue;\n}\n// We use Class instead of Hooks here since it will cost much code by using Hooks.\nvar Field = /*#__PURE__*/function (_React$Component) {\n _inherits(Field, _React$Component);\n var _super = _createSuper(Field);\n // ============================== Subscriptions ==============================\n function Field(props) {\n var _this;\n _classCallCheck(this, Field);\n _this = _super.call(this, props);\n // Register on init\n _this.state = {\n resetCount: 0\n };\n _this.cancelRegisterFunc = null;\n _this.mounted = false;\n /**\n * Follow state should not management in State since it will async update by React.\n * This makes first render of form can not get correct state value.\n */\n _this.touched = false;\n /**\n * Mark when touched & validated. Currently only used for `dependencies`.\n * Note that we do not think field with `initialValue` is dirty\n * but this will be by `isFieldDirty` func.\n */\n _this.dirty = false;\n _this.validatePromise = void 0;\n _this.prevValidating = void 0;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.cancelRegister = function () {\n var _this$props = _this.props,\n preserve = _this$props.preserve,\n isListField = _this$props.isListField,\n name = _this$props.name;\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n }\n _this.cancelRegisterFunc = null;\n };\n // ================================== Utils ==================================\n _this.getNamePath = function () {\n var _this$props2 = _this.props,\n name = _this$props2.name,\n fieldContext = _this$props2.fieldContext;\n var _fieldContext$prefixN = fieldContext.prefixName,\n prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n };\n _this.getRules = function () {\n var _this$props3 = _this.props,\n _this$props3$rules = _this$props3.rules,\n rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n fieldContext = _this$props3.fieldContext;\n return rules.map(function (rule) {\n if (typeof rule === 'function') {\n return rule(fieldContext);\n }\n return rule;\n });\n };\n _this.refresh = function () {\n if (!_this.mounted) return;\n /**\n * Clean up current node.\n */\n _this.setState(function (_ref) {\n var resetCount = _ref.resetCount;\n return {\n resetCount: resetCount + 1\n };\n });\n };\n _this.triggerMetaEvent = function (destroy) {\n var onMetaChange = _this.props.onMetaChange;\n onMetaChange === null || onMetaChange === void 0 ? void 0 : onMetaChange(_objectSpread(_objectSpread({}, _this.getMeta()), {}, {\n destroy: destroy\n }));\n };\n // ========================= Field Entity Interfaces =========================\n // Trigger by store update. Check if need update the component\n _this.onStoreChange = function (prevStore, namePathList, info) {\n var _this$props4 = _this.props,\n shouldUpdate = _this$props4.shouldUpdate,\n _this$props4$dependen = _this$props4.dependencies,\n dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n onReset = _this$props4.onReset;\n var store = info.store;\n var namePath = _this.getNamePath();\n var prevValue = _this.getValue(prevStore);\n var curValue = _this.getValue(store);\n var namePathMatch = namePathList && containsNamePath(namePathList, namePath);\n // `setFieldsValue` is a quick access to update related status\n if (info.type === 'valueUpdate' && info.source === 'external' && prevValue !== curValue) {\n _this.touched = true;\n _this.dirty = true;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n }\n switch (info.type) {\n case 'reset':\n if (!namePathList || namePathMatch) {\n // Clean up state\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n onReset === null || onReset === void 0 ? void 0 : onReset();\n _this.refresh();\n return;\n }\n break;\n /**\n * In case field with `preserve = false` nest deps like:\n * - A = 1 => show B\n * - B = 1 => show C\n * - Reset A, need clean B, C\n */\n case 'remove':\n {\n if (shouldUpdate) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'setField':\n {\n if (namePathMatch) {\n var data = info.data;\n if ('touched' in data) {\n _this.touched = data.touched;\n }\n if ('validating' in data && !('originRCField' in data)) {\n _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n }\n if ('errors' in data) {\n _this.errors = data.errors || EMPTY_ERRORS;\n }\n if ('warnings' in data) {\n _this.warnings = data.warnings || EMPTY_ERRORS;\n }\n _this.dirty = true;\n _this.triggerMetaEvent();\n _this.reRender();\n return;\n }\n // Handle update by `setField` with `shouldUpdate`\n if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'dependenciesUpdate':\n {\n /**\n * Trigger when marked `dependencies` updated. Related fields will all update\n */\n var dependencyList = dependencies.map(getNamePath);\n // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n // emitted earlier and they will work there\n // If set it may cause unnecessary twice rerendering\n if (dependencyList.some(function (dependency) {\n return containsNamePath(info.relatedFields, dependency);\n })) {\n _this.reRender();\n return;\n }\n break;\n }\n default:\n // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n // For example \n // If `namePathList` is [['list']] (List value update), Field should be updated\n // If `namePathList` is [['list', 0]] (Field value update), List shouldn't be updated\n // 2.\n // 2.1 If `dependencies` is set, `name` is not set and `shouldUpdate` is not set,\n // don't use `shouldUpdate`. `dependencies` is view as a shortcut if `shouldUpdate`\n // is not provided\n // 2.2 If `shouldUpdate` provided, use customize logic to update the field\n // else to check if value changed\n if (namePathMatch || (!dependencies.length || namePath.length || shouldUpdate) && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n if (shouldUpdate === true) {\n _this.reRender();\n }\n };\n _this.validateRules = function (options) {\n // We should fixed namePath & value to avoid developer change then by form function\n var namePath = _this.getNamePath();\n var currentValue = _this.getValue();\n // Force change to async to avoid rule OOD under renderProps field\n var rootPromise = Promise.resolve().then(function () {\n if (!_this.mounted) {\n return [];\n }\n var _this$props5 = _this.props,\n _this$props5$validate = _this$props5.validateFirst,\n validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate,\n messageVariables = _this$props5.messageVariables;\n var _ref2 = options || {},\n triggerName = _ref2.triggerName;\n var filteredRules = _this.getRules();\n if (triggerName) {\n filteredRules = filteredRules.filter(function (rule) {\n return rule;\n }).filter(function (rule) {\n var validateTrigger = rule.validateTrigger;\n if (!validateTrigger) {\n return true;\n }\n var triggerList = toArray(validateTrigger);\n return triggerList.includes(triggerName);\n });\n }\n var promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n promise.catch(function (e) {\n return e;\n }).then(function () {\n var ruleErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ERRORS;\n if (_this.validatePromise === rootPromise) {\n var _ruleErrors$forEach;\n _this.validatePromise = null;\n // Get errors & warnings\n var nextErrors = [];\n var nextWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref3) {\n var warningOnly = _ref3.rule.warningOnly,\n _ref3$errors = _ref3.errors,\n errors = _ref3$errors === void 0 ? EMPTY_ERRORS : _ref3$errors;\n if (warningOnly) {\n nextWarnings.push.apply(nextWarnings, _toConsumableArray(errors));\n } else {\n nextErrors.push.apply(nextErrors, _toConsumableArray(errors));\n }\n });\n _this.errors = nextErrors;\n _this.warnings = nextWarnings;\n _this.triggerMetaEvent();\n _this.reRender();\n }\n });\n return promise;\n });\n _this.validatePromise = rootPromise;\n _this.dirty = true;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n // Force trigger re-render since we need sync renderProps with new meta\n _this.reRender();\n return rootPromise;\n };\n _this.isFieldValidating = function () {\n return !!_this.validatePromise;\n };\n _this.isFieldTouched = function () {\n return _this.touched;\n };\n _this.isFieldDirty = function () {\n // Touched or validate or has initialValue\n if (_this.dirty || _this.props.initialValue !== undefined) {\n return true;\n }\n // Form set initialValue\n var fieldContext = _this.props.fieldContext;\n var _fieldContext$getInte = fieldContext.getInternalHooks(HOOK_MARK),\n getInitialValue = _fieldContext$getInte.getInitialValue;\n if (getInitialValue(_this.getNamePath()) !== undefined) {\n return true;\n }\n return false;\n };\n _this.getErrors = function () {\n return _this.errors;\n };\n _this.getWarnings = function () {\n return _this.warnings;\n };\n _this.isListField = function () {\n return _this.props.isListField;\n };\n _this.isList = function () {\n return _this.props.isList;\n };\n _this.isPreserve = function () {\n return _this.props.preserve;\n };\n // ============================= Child Component =============================\n _this.getMeta = function () {\n // Make error & validating in cache to save perf\n _this.prevValidating = _this.isFieldValidating();\n var meta = {\n touched: _this.isFieldTouched(),\n validating: _this.prevValidating,\n errors: _this.errors,\n warnings: _this.warnings,\n name: _this.getNamePath(),\n validated: _this.validatePromise === null\n };\n return meta;\n };\n // Only return validate child node. If invalidate, will do nothing about field.\n _this.getOnlyChild = function (children) {\n // Support render props\n if (typeof children === 'function') {\n var meta = _this.getMeta();\n return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), meta, _this.props.fieldContext))), {}, {\n isFunction: true\n });\n }\n // Filed element only\n var childList = toChildrenArray(children);\n if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n return {\n child: childList,\n isFunction: false\n };\n }\n return {\n child: childList[0],\n isFunction: false\n };\n };\n // ============================== Field Control ==============================\n _this.getValue = function (store) {\n var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n var namePath = _this.getNamePath();\n return getValue(store || getFieldsValue(true), namePath);\n };\n _this.getControlled = function () {\n var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _this$props6 = _this.props,\n trigger = _this$props6.trigger,\n validateTrigger = _this$props6.validateTrigger,\n getValueFromEvent = _this$props6.getValueFromEvent,\n normalize = _this$props6.normalize,\n valuePropName = _this$props6.valuePropName,\n getValueProps = _this$props6.getValueProps,\n fieldContext = _this$props6.fieldContext;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n var namePath = _this.getNamePath();\n var getInternalHooks = fieldContext.getInternalHooks,\n getFieldsValue = fieldContext.getFieldsValue;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n dispatch = _getInternalHooks.dispatch;\n var value = _this.getValue();\n var mergedGetValueProps = getValueProps || function (val) {\n return _defineProperty({}, valuePropName, val);\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var originTriggerFunc = childProps[trigger];\n var control = _objectSpread(_objectSpread({}, childProps), mergedGetValueProps(value));\n // Add trigger\n control[trigger] = function () {\n // Mark as touched\n _this.touched = true;\n _this.dirty = true;\n _this.triggerMetaEvent();\n var newValue;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (getValueFromEvent) {\n newValue = getValueFromEvent.apply(void 0, args);\n } else {\n newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n }\n if (normalize) {\n newValue = normalize(newValue, value, getFieldsValue(true));\n }\n dispatch({\n type: 'updateValue',\n namePath: namePath,\n value: newValue\n });\n if (originTriggerFunc) {\n originTriggerFunc.apply(void 0, args);\n }\n };\n // Add validateTrigger\n var validateTriggerList = toArray(mergedValidateTrigger || []);\n validateTriggerList.forEach(function (triggerName) {\n // Wrap additional function of component, so that we can get latest value from store\n var originTrigger = control[triggerName];\n control[triggerName] = function () {\n if (originTrigger) {\n originTrigger.apply(void 0, arguments);\n }\n // Always use latest rules\n var rules = _this.props.rules;\n if (rules && rules.length) {\n // We dispatch validate to root,\n // since it will update related data with other field with same name\n dispatch({\n type: 'validateField',\n namePath: namePath,\n triggerName: triggerName\n });\n }\n };\n });\n return control;\n };\n if (props.fieldContext) {\n var getInternalHooks = props.fieldContext.getInternalHooks;\n var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n initEntityValue = _getInternalHooks2.initEntityValue;\n initEntityValue(_assertThisInitialized(_this));\n }\n return _this;\n }\n _createClass(Field, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n shouldUpdate = _this$props7.shouldUpdate,\n fieldContext = _this$props7.fieldContext;\n this.mounted = true;\n // Register on init\n if (fieldContext) {\n var getInternalHooks = fieldContext.getInternalHooks;\n var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n registerField = _getInternalHooks3.registerField;\n this.cancelRegisterFunc = registerField(this);\n }\n // One more render for component in case fields not ready\n if (shouldUpdate === true) {\n this.reRender();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRegister();\n this.triggerMetaEvent(true);\n this.mounted = false;\n }\n }, {\n key: \"reRender\",\n value: function reRender() {\n if (!this.mounted) return;\n this.forceUpdate();\n }\n }, {\n key: \"render\",\n value: function render() {\n var resetCount = this.state.resetCount;\n var children = this.props.children;\n var _this$getOnlyChild = this.getOnlyChild(children),\n child = _this$getOnlyChild.child,\n isFunction = _this$getOnlyChild.isFunction;\n // Not need to `cloneElement` since user can handle this in render function self\n var returnChildNode;\n if (isFunction) {\n returnChildNode = child;\n } else if ( /*#__PURE__*/React.isValidElement(child)) {\n returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n } else {\n warning(!child, '`children` of Field is not validate ReactElement.');\n returnChildNode = child;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: resetCount\n }, returnChildNode);\n }\n }]);\n return Field;\n}(React.Component);\nField.contextType = FieldContext;\nField.defaultProps = {\n trigger: 'onChange',\n valuePropName: 'value'\n};\nfunction WrapperField(_ref5) {\n var name = _ref5.name,\n restProps = _objectWithoutProperties(_ref5, _excluded);\n var fieldContext = React.useContext(FieldContext);\n var namePath = name !== undefined ? getNamePath(name) : undefined;\n var key = 'keep';\n if (!restProps.isListField) {\n key = \"_\".concat((namePath || []).join('_'));\n }\n // Warning if it's a directly list field.\n // We can still support multiple level field preserve.\n if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && restProps.isListField && namePath.length <= 1) {\n warning(false, '`preserve` should not apply on Form.List fields.');\n }\n return /*#__PURE__*/React.createElement(Field, _extends({\n key: key,\n name: namePath\n }, restProps, {\n fieldContext: fieldContext\n }));\n}\nexport default WrapperField;","import * as React from 'react';\nvar ListContext = /*#__PURE__*/React.createContext(null);\nexport default ListContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from './FieldContext';\nimport Field from './Field';\nimport { move as _move, getNamePath } from './utils/valueUtil';\nimport ListContext from './ListContext';\nvar List = function List(_ref) {\n var name = _ref.name,\n initialValue = _ref.initialValue,\n children = _ref.children,\n rules = _ref.rules,\n validateTrigger = _ref.validateTrigger,\n isListField = _ref.isListField;\n var context = React.useContext(FieldContext);\n var keyRef = React.useRef({\n keys: [],\n id: 0\n });\n var keyManager = keyRef.current;\n var prefixName = React.useMemo(function () {\n var parentPrefixName = getNamePath(context.prefixName) || [];\n return [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n }, [context.prefixName, name]);\n var fieldContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, context), {}, {\n prefixName: prefixName\n });\n }, [context, prefixName]);\n // List context\n var listContext = React.useMemo(function () {\n return {\n getKey: function getKey(namePath) {\n var len = prefixName.length;\n var pathName = namePath[len];\n return [keyManager.keys[pathName], namePath.slice(len + 1)];\n }\n };\n }, [prefixName]);\n // User should not pass `children` as other type.\n if (typeof children !== 'function') {\n warning(false, 'Form.List only accepts function as children.');\n return null;\n }\n var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n var source = _ref2.source;\n if (source === 'internal') {\n return false;\n }\n return prevValue !== nextValue;\n };\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: listContext\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: fieldContext\n }, /*#__PURE__*/React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate,\n rules: rules,\n validateTrigger: validateTrigger,\n initialValue: initialValue,\n isList: true,\n isListField: isListField\n }, function (_ref3, meta) {\n var _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? [] : _ref3$value,\n onChange = _ref3.onChange;\n var getFieldValue = context.getFieldValue;\n var getNewValue = function getNewValue() {\n var values = getFieldValue(prefixName || []);\n return values || [];\n };\n /**\n * Always get latest value in case user update fields by `form` api.\n */\n var operations = {\n add: function add(defaultValue, index) {\n // Mapping keys\n var newValue = getNewValue();\n if (index >= 0 && index <= newValue.length) {\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n } else {\n if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n warning(false, 'The second parameter of the add function should be a valid positive number.');\n }\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n }\n keyManager.id += 1;\n },\n remove: function remove(index) {\n var newValue = getNewValue();\n var indexSet = new Set(Array.isArray(index) ? index : [index]);\n if (indexSet.size <= 0) {\n return;\n }\n keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n return !indexSet.has(keysIndex);\n });\n // Trigger store change\n onChange(newValue.filter(function (_, valueIndex) {\n return !indexSet.has(valueIndex);\n }));\n },\n move: function move(from, to) {\n if (from === to) {\n return;\n }\n var newValue = getNewValue();\n // Do not handle out of range\n if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n return;\n }\n keyManager.keys = _move(keyManager.keys, from, to);\n // Trigger store change\n onChange(_move(newValue, from, to));\n }\n };\n var listValue = value || [];\n if (!Array.isArray(listValue)) {\n listValue = [];\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n }\n }\n return children(listValue.map(function (__, index) {\n var key = keyManager.keys[index];\n if (key === undefined) {\n keyManager.keys[index] = keyManager.id;\n key = keyManager.keys[index];\n keyManager.id += 1;\n }\n return {\n name: index,\n key: key,\n isListField: true\n };\n }), operations, meta);\n })));\n};\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\nfunction normalize(namePath) {\n return namePath.map(function (cell) {\n return \"\".concat(_typeof(cell), \":\").concat(cell);\n })\n // Magic split\n .join(SPLIT);\n}\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n this.kvs = new Map();\n }\n _createClass(NameMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.kvs.set(normalize(key), value);\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.kvs.get(normalize(key));\n }\n }, {\n key: \"update\",\n value: function update(key, updater) {\n var origin = this.get(key);\n var next = updater(origin);\n if (!next) {\n this.delete(key);\n } else {\n this.set(key, next);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this.kvs.delete(normalize(key));\n }\n // Since we only use this in test, let simply realize this\n }, {\n key: \"map\",\n value: function map(callback) {\n return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n var cells = key.split(SPLIT);\n return callback({\n key: cells.map(function (cell) {\n var _cell$match = cell.match(/^([^:]*):(.*)$/),\n _cell$match2 = _slicedToArray(_cell$match, 3),\n type = _cell$match2[1],\n unit = _cell$match2[2];\n return type === 'number' ? Number(unit) : unit;\n }),\n value: value\n });\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var json = {};\n this.map(function (_ref3) {\n var key = _ref3.key,\n value = _ref3.value;\n json[key.join('.')] = value;\n return null;\n });\n return json;\n }\n }]);\n return NameMap;\n}();\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nvar _excluded = [\"name\"];\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { HOOK_MARK } from './FieldContext';\nimport { allPromiseFinish } from './utils/asyncUtil';\nimport cloneDeep from './utils/cloneDeep';\nimport { defaultValidateMessages } from './utils/messages';\nimport NameMap from './utils/NameMap';\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue, setValues } from './utils/valueUtil';\nexport var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {\n var _this = this;\n _classCallCheck(this, FormStore);\n this.formHooked = false;\n this.forceRootUpdate = void 0;\n this.subscribable = true;\n this.store = {};\n this.fieldEntities = [];\n this.initialValues = {};\n this.callbacks = {};\n this.validateMessages = null;\n this.preserve = null;\n this.lastValidatePromise = null;\n this.getForm = function () {\n return {\n getFieldValue: _this.getFieldValue,\n getFieldsValue: _this.getFieldsValue,\n getFieldError: _this.getFieldError,\n getFieldWarning: _this.getFieldWarning,\n getFieldsError: _this.getFieldsError,\n isFieldsTouched: _this.isFieldsTouched,\n isFieldTouched: _this.isFieldTouched,\n isFieldValidating: _this.isFieldValidating,\n isFieldsValidating: _this.isFieldsValidating,\n resetFields: _this.resetFields,\n setFields: _this.setFields,\n setFieldValue: _this.setFieldValue,\n setFieldsValue: _this.setFieldsValue,\n validateFields: _this.validateFields,\n submit: _this.submit,\n _init: true,\n getInternalHooks: _this.getInternalHooks\n };\n };\n // ======================== Internal Hooks ========================\n this.getInternalHooks = function (key) {\n if (key === HOOK_MARK) {\n _this.formHooked = true;\n return {\n dispatch: _this.dispatch,\n initEntityValue: _this.initEntityValue,\n registerField: _this.registerField,\n useSubscribe: _this.useSubscribe,\n setInitialValues: _this.setInitialValues,\n destroyForm: _this.destroyForm,\n setCallbacks: _this.setCallbacks,\n setValidateMessages: _this.setValidateMessages,\n getFields: _this.getFields,\n setPreserve: _this.setPreserve,\n getInitialValue: _this.getInitialValue,\n registerWatch: _this.registerWatch\n };\n }\n warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n };\n this.useSubscribe = function (subscribable) {\n _this.subscribable = subscribable;\n };\n /**\n * Record prev Form unmount fieldEntities which config preserve false.\n * This need to be refill with initialValues instead of store value.\n */\n this.prevWithoutPreserves = null;\n /**\n * First time `setInitialValues` should update store with initial value\n */\n this.setInitialValues = function (initialValues, init) {\n _this.initialValues = initialValues || {};\n if (init) {\n var _this$prevWithoutPres;\n var nextStore = setValues({}, initialValues, _this.store);\n // We will take consider prev form unmount fields.\n // When the field is not `preserve`, we need fill this with initialValues instead of store.\n // eslint-disable-next-line array-callback-return\n (_this$prevWithoutPres = _this.prevWithoutPreserves) === null || _this$prevWithoutPres === void 0 ? void 0 : _this$prevWithoutPres.map(function (_ref) {\n var namePath = _ref.key;\n nextStore = setValue(nextStore, namePath, getValue(initialValues, namePath));\n });\n _this.prevWithoutPreserves = null;\n _this.updateStore(nextStore);\n }\n };\n this.destroyForm = function () {\n var prevWithoutPreserves = new NameMap();\n _this.getFieldEntities(true).forEach(function (entity) {\n if (!_this.isMergedPreserve(entity.isPreserve())) {\n prevWithoutPreserves.set(entity.getNamePath(), true);\n }\n });\n _this.prevWithoutPreserves = prevWithoutPreserves;\n };\n this.getInitialValue = function (namePath) {\n var initValue = getValue(_this.initialValues, namePath);\n // Not cloneDeep when without `namePath`\n return namePath.length ? cloneDeep(initValue) : initValue;\n };\n this.setCallbacks = function (callbacks) {\n _this.callbacks = callbacks;\n };\n this.setValidateMessages = function (validateMessages) {\n _this.validateMessages = validateMessages;\n };\n this.setPreserve = function (preserve) {\n _this.preserve = preserve;\n };\n // ============================= Watch ============================\n this.watchList = [];\n this.registerWatch = function (callback) {\n _this.watchList.push(callback);\n return function () {\n _this.watchList = _this.watchList.filter(function (fn) {\n return fn !== callback;\n });\n };\n };\n this.notifyWatch = function () {\n var namePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n // No need to cost perf when nothing need to watch\n if (_this.watchList.length) {\n var values = _this.getFieldsValue();\n var allValues = _this.getFieldsValue(true);\n _this.watchList.forEach(function (callback) {\n callback(values, allValues, namePath);\n });\n }\n };\n // ========================== Dev Warning =========================\n this.timeoutId = null;\n this.warningUnhooked = function () {\n if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n _this.timeoutId = setTimeout(function () {\n _this.timeoutId = null;\n if (!_this.formHooked) {\n warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n }\n });\n }\n };\n // ============================ Store =============================\n this.updateStore = function (nextStore) {\n _this.store = nextStore;\n };\n // ============================ Fields ============================\n /**\n * Get registered field entities.\n * @param pure Only return field which has a `name`. Default: false\n */\n this.getFieldEntities = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (!pure) {\n return _this.fieldEntities;\n }\n return _this.fieldEntities.filter(function (field) {\n return field.getNamePath().length;\n });\n };\n this.getFieldsMap = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cache = new NameMap();\n _this.getFieldEntities(pure).forEach(function (field) {\n var namePath = field.getNamePath();\n cache.set(namePath, field);\n });\n return cache;\n };\n this.getFieldEntitiesForNamePathList = function (nameList) {\n if (!nameList) {\n return _this.getFieldEntities(true);\n }\n var cache = _this.getFieldsMap(true);\n return nameList.map(function (name) {\n var namePath = getNamePath(name);\n return cache.get(namePath) || {\n INVALIDATE_NAME_PATH: getNamePath(name)\n };\n });\n };\n this.getFieldsValue = function (nameList, filterFunc) {\n _this.warningUnhooked();\n if (nameList === true && !filterFunc) {\n return _this.store;\n }\n var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(nameList) ? nameList : null);\n var filteredNameList = [];\n fieldEntities.forEach(function (entity) {\n var _entity$isListField;\n var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath();\n // Ignore when it's a list item and not specific the namePath,\n // since parent field is already take in count\n if (!nameList && ((_entity$isListField = entity.isListField) === null || _entity$isListField === void 0 ? void 0 : _entity$isListField.call(entity))) {\n return;\n }\n if (!filterFunc) {\n filteredNameList.push(namePath);\n } else {\n var meta = 'getMeta' in entity ? entity.getMeta() : null;\n if (filterFunc(meta)) {\n filteredNameList.push(namePath);\n }\n }\n });\n return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n };\n this.getFieldValue = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n return getValue(_this.store, namePath);\n };\n this.getFieldsError = function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n return fieldEntities.map(function (entity, index) {\n if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n return {\n name: entity.getNamePath(),\n errors: entity.getErrors(),\n warnings: entity.getWarnings()\n };\n }\n return {\n name: getNamePath(nameList[index]),\n errors: [],\n warnings: []\n };\n });\n };\n this.getFieldError = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.errors;\n };\n this.getFieldWarning = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.warnings;\n };\n this.isFieldsTouched = function () {\n _this.warningUnhooked();\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var arg0 = args[0],\n arg1 = args[1];\n var namePathList;\n var isAllFieldsTouched = false;\n if (args.length === 0) {\n namePathList = null;\n } else if (args.length === 1) {\n if (Array.isArray(arg0)) {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = false;\n } else {\n namePathList = null;\n isAllFieldsTouched = arg0;\n }\n } else {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = arg1;\n }\n var fieldEntities = _this.getFieldEntities(true);\n var isFieldTouched = function isFieldTouched(field) {\n return field.isFieldTouched();\n };\n // ===== Will get fully compare when not config namePathList =====\n if (!namePathList) {\n return isAllFieldsTouched ? fieldEntities.every(isFieldTouched) : fieldEntities.some(isFieldTouched);\n }\n // Generate a nest tree for validate\n var map = new NameMap();\n namePathList.forEach(function (shortNamePath) {\n map.set(shortNamePath, []);\n });\n fieldEntities.forEach(function (field) {\n var fieldNamePath = field.getNamePath();\n // Find matched entity and put into list\n namePathList.forEach(function (shortNamePath) {\n if (shortNamePath.every(function (nameUnit, i) {\n return fieldNamePath[i] === nameUnit;\n })) {\n map.update(shortNamePath, function (list) {\n return [].concat(_toConsumableArray(list), [field]);\n });\n }\n });\n });\n // Check if NameMap value is touched\n var isNamePathListTouched = function isNamePathListTouched(entities) {\n return entities.some(isFieldTouched);\n };\n var namePathListEntities = map.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n });\n return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n };\n this.isFieldTouched = function (name) {\n _this.warningUnhooked();\n return _this.isFieldsTouched([name]);\n };\n this.isFieldsValidating = function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntities();\n if (!nameList) {\n return fieldEntities.some(function (testField) {\n return testField.isFieldValidating();\n });\n }\n var namePathList = nameList.map(getNamePath);\n return fieldEntities.some(function (testField) {\n var fieldNamePath = testField.getNamePath();\n return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n });\n };\n this.isFieldValidating = function (name) {\n _this.warningUnhooked();\n return _this.isFieldsValidating([name]);\n };\n /**\n * Reset Field with field `initialValue` prop.\n * Can pass `entities` or `namePathList` or just nothing.\n */\n this.resetWithFieldInitialValue = function () {\n var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Create cache\n var cache = new NameMap();\n var fieldEntities = _this.getFieldEntities(true);\n fieldEntities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n var namePath = field.getNamePath();\n // Record only if has `initialValue`\n if (initialValue !== undefined) {\n var records = cache.get(namePath) || new Set();\n records.add({\n entity: field,\n value: initialValue\n });\n cache.set(namePath, records);\n }\n });\n // Reset\n var resetWithFields = function resetWithFields(entities) {\n entities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = field.getNamePath();\n var formInitialValue = _this.getInitialValue(namePath);\n if (formInitialValue !== undefined) {\n // Warning if conflict with form initialValues and do not modify value\n warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n } else {\n var records = cache.get(namePath);\n if (records && records.size > 1) {\n // Warning if multiple field set `initialValue`and do not modify value\n warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n } else if (records) {\n var originValue = _this.getFieldValue(namePath);\n // Set `initialValue`\n if (!info.skipExist || originValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, _toConsumableArray(records)[0].value));\n }\n }\n }\n }\n });\n };\n var requiredFieldEntities;\n if (info.entities) {\n requiredFieldEntities = info.entities;\n } else if (info.namePathList) {\n requiredFieldEntities = [];\n info.namePathList.forEach(function (namePath) {\n var records = cache.get(namePath);\n if (records) {\n var _requiredFieldEntitie;\n (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n return r.entity;\n })));\n }\n });\n } else {\n requiredFieldEntities = fieldEntities;\n }\n resetWithFields(requiredFieldEntities);\n };\n this.resetFields = function (nameList) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (!nameList) {\n _this.updateStore(setValues({}, _this.initialValues));\n _this.resetWithFieldInitialValue();\n _this.notifyObservers(prevStore, null, {\n type: 'reset'\n });\n _this.notifyWatch();\n return;\n }\n // Reset by `nameList`\n var namePathList = nameList.map(getNamePath);\n namePathList.forEach(function (namePath) {\n var initialValue = _this.getInitialValue(namePath);\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n });\n _this.resetWithFieldInitialValue({\n namePathList: namePathList\n });\n _this.notifyObservers(prevStore, namePathList, {\n type: 'reset'\n });\n _this.notifyWatch(namePathList);\n };\n this.setFields = function (fields) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n var namePathList = [];\n fields.forEach(function (fieldData) {\n var name = fieldData.name,\n data = _objectWithoutProperties(fieldData, _excluded);\n var namePath = getNamePath(name);\n namePathList.push(namePath);\n // Value\n if ('value' in data) {\n _this.updateStore(setValue(_this.store, namePath, data.value));\n }\n _this.notifyObservers(prevStore, [namePath], {\n type: 'setField',\n data: fieldData\n });\n });\n _this.notifyWatch(namePathList);\n };\n this.getFields = function () {\n var entities = _this.getFieldEntities(true);\n var fields = entities.map(function (field) {\n var namePath = field.getNamePath();\n var meta = field.getMeta();\n var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n name: namePath,\n value: _this.getFieldValue(namePath)\n });\n Object.defineProperty(fieldData, 'originRCField', {\n value: true\n });\n return fieldData;\n });\n return fields;\n };\n // =========================== Observer ===========================\n /**\n * This only trigger when a field is on constructor to avoid we get initialValue too late\n */\n this.initEntityValue = function (entity) {\n var initialValue = entity.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = entity.getNamePath();\n var prevValue = getValue(_this.store, namePath);\n if (prevValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n }\n }\n };\n this.isMergedPreserve = function (fieldPreserve) {\n var mergedPreserve = fieldPreserve !== undefined ? fieldPreserve : _this.preserve;\n return mergedPreserve !== null && mergedPreserve !== void 0 ? mergedPreserve : true;\n };\n this.registerField = function (entity) {\n _this.fieldEntities.push(entity);\n var namePath = entity.getNamePath();\n _this.notifyWatch([namePath]);\n // Set initial values\n if (entity.props.initialValue !== undefined) {\n var prevStore = _this.store;\n _this.resetWithFieldInitialValue({\n entities: [entity],\n skipExist: true\n });\n _this.notifyObservers(prevStore, [entity.getNamePath()], {\n type: 'valueUpdate',\n source: 'internal'\n });\n }\n // un-register field callback\n return function (isListField, preserve) {\n var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n return item !== entity;\n });\n // Clean up store value if not preserve\n if (!_this.isMergedPreserve(preserve) && (!isListField || subNamePath.length > 1)) {\n var defaultValue = isListField ? undefined : _this.getInitialValue(namePath);\n if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n return (\n // Only reset when no namePath exist\n !matchNamePath(field.getNamePath(), namePath)\n );\n })) {\n var _prevStore = _this.store;\n _this.updateStore(setValue(_prevStore, namePath, defaultValue, true));\n // Notify that field is unmount\n _this.notifyObservers(_prevStore, [namePath], {\n type: 'remove'\n });\n // Dependencies update\n _this.triggerDependenciesUpdate(_prevStore, namePath);\n }\n }\n _this.notifyWatch([namePath]);\n };\n };\n this.dispatch = function (action) {\n switch (action.type) {\n case 'updateValue':\n {\n var namePath = action.namePath,\n value = action.value;\n _this.updateValue(namePath, value);\n break;\n }\n case 'validateField':\n {\n var _namePath = action.namePath,\n triggerName = action.triggerName;\n _this.validateFields([_namePath], {\n triggerName: triggerName\n });\n break;\n }\n default:\n // Currently we don't have other action. Do nothing.\n }\n };\n this.notifyObservers = function (prevStore, namePathList, info) {\n if (_this.subscribable) {\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n store: _this.getFieldsValue(true)\n });\n _this.getFieldEntities().forEach(function (_ref3) {\n var onStoreChange = _ref3.onStoreChange;\n onStoreChange(prevStore, namePathList, mergedInfo);\n });\n } else {\n _this.forceRootUpdate();\n }\n };\n /**\n * Notify dependencies children with parent update\n * We need delay to trigger validate in case Field is under render props\n */\n this.triggerDependenciesUpdate = function (prevStore, namePath) {\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n if (childrenFields.length) {\n _this.validateFields(childrenFields);\n }\n _this.notifyObservers(prevStore, childrenFields, {\n type: 'dependenciesUpdate',\n relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n });\n return childrenFields;\n };\n this.updateValue = function (name, value) {\n var namePath = getNamePath(name);\n var prevStore = _this.store;\n _this.updateStore(setValue(_this.store, namePath, value));\n _this.notifyObservers(prevStore, [namePath], {\n type: 'valueUpdate',\n source: 'internal'\n });\n _this.notifyWatch([namePath]);\n // Dependencies update\n var childrenFields = _this.triggerDependenciesUpdate(prevStore, namePath);\n // trigger callback function\n var onValuesChange = _this.callbacks.onValuesChange;\n if (onValuesChange) {\n var changedValues = cloneByNamePathList(_this.store, [namePath]);\n onValuesChange(changedValues, _this.getFieldsValue());\n }\n _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n };\n // Let all child Field get update.\n this.setFieldsValue = function (store) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (store) {\n var nextStore = setValues(_this.store, store);\n _this.updateStore(nextStore);\n }\n _this.notifyObservers(prevStore, null, {\n type: 'valueUpdate',\n source: 'external'\n });\n _this.notifyWatch();\n };\n this.setFieldValue = function (name, value) {\n _this.setFields([{\n name: name,\n value: value\n }]);\n };\n this.getDependencyChildrenFields = function (rootNamePath) {\n var children = new Set();\n var childrenFields = [];\n var dependencies2fields = new NameMap();\n /**\n * Generate maps\n * Can use cache to save perf if user report performance issue with this\n */\n _this.getFieldEntities().forEach(function (field) {\n var dependencies = field.props.dependencies;\n (dependencies || []).forEach(function (dependency) {\n var dependencyNamePath = getNamePath(dependency);\n dependencies2fields.update(dependencyNamePath, function () {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n fields.add(field);\n return fields;\n });\n });\n });\n var fillChildren = function fillChildren(namePath) {\n var fields = dependencies2fields.get(namePath) || new Set();\n fields.forEach(function (field) {\n if (!children.has(field)) {\n children.add(field);\n var fieldNamePath = field.getNamePath();\n if (field.isFieldDirty() && fieldNamePath.length) {\n childrenFields.push(fieldNamePath);\n fillChildren(fieldNamePath);\n }\n }\n });\n };\n fillChildren(rootNamePath);\n return childrenFields;\n };\n this.triggerOnFieldsChange = function (namePathList, filedErrors) {\n var onFieldsChange = _this.callbacks.onFieldsChange;\n if (onFieldsChange) {\n var fields = _this.getFields();\n /**\n * Fill errors since `fields` may be replaced by controlled fields\n */\n if (filedErrors) {\n var cache = new NameMap();\n filedErrors.forEach(function (_ref4) {\n var name = _ref4.name,\n errors = _ref4.errors;\n cache.set(name, errors);\n });\n fields.forEach(function (field) {\n // eslint-disable-next-line no-param-reassign\n field.errors = cache.get(field.name) || field.errors;\n });\n }\n var changedFields = fields.filter(function (_ref5) {\n var fieldName = _ref5.name;\n return containsNamePath(namePathList, fieldName);\n });\n onFieldsChange(changedFields, fields);\n }\n };\n // =========================== Validate ===========================\n this.validateFields = function (nameList, options) {\n _this.warningUnhooked();\n var provideNameList = !!nameList;\n var namePathList = provideNameList ? nameList.map(getNamePath) : [];\n // Collect result in promise list\n var promiseList = [];\n _this.getFieldEntities(true).forEach(function (field) {\n // Add field if not provide `nameList`\n if (!provideNameList) {\n namePathList.push(field.getNamePath());\n }\n /**\n * Recursive validate if configured.\n * TODO: perf improvement @zombieJ\n */\n if ((options === null || options === void 0 ? void 0 : options.recursive) && provideNameList) {\n var namePath = field.getNamePath();\n if (\n // nameList[i] === undefined 说明是以 nameList 开头的\n // ['name'] -> ['name','list']\n namePath.every(function (nameUnit, i) {\n return nameList[i] === nameUnit || nameList[i] === undefined;\n })) {\n namePathList.push(namePath);\n }\n }\n // Skip if without rule\n if (!field.props.rules || !field.props.rules.length) {\n return;\n }\n var fieldNamePath = field.getNamePath();\n // Add field validate rule in to promise list\n if (!provideNameList || containsNamePath(namePathList, fieldNamePath)) {\n var promise = field.validateRules(_objectSpread({\n validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n }, options));\n // Wrap promise with field\n promiseList.push(promise.then(function () {\n return {\n name: fieldNamePath,\n errors: [],\n warnings: []\n };\n }).catch(function (ruleErrors) {\n var _ruleErrors$forEach;\n var mergedErrors = [];\n var mergedWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref6) {\n var warningOnly = _ref6.rule.warningOnly,\n errors = _ref6.errors;\n if (warningOnly) {\n mergedWarnings.push.apply(mergedWarnings, _toConsumableArray(errors));\n } else {\n mergedErrors.push.apply(mergedErrors, _toConsumableArray(errors));\n }\n });\n if (mergedErrors.length) {\n return Promise.reject({\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n });\n }\n return {\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n };\n }));\n }\n });\n var summaryPromise = allPromiseFinish(promiseList);\n _this.lastValidatePromise = summaryPromise;\n // Notify fields with rule that validate has finished and need update\n summaryPromise.catch(function (results) {\n return results;\n }).then(function (results) {\n var resultNamePathList = results.map(function (_ref7) {\n var name = _ref7.name;\n return name;\n });\n _this.notifyObservers(_this.store, resultNamePathList, {\n type: 'validateFinish'\n });\n _this.triggerOnFieldsChange(resultNamePathList, results);\n });\n var returnPromise = summaryPromise.then(function () {\n if (_this.lastValidatePromise === summaryPromise) {\n return Promise.resolve(_this.getFieldsValue(namePathList));\n }\n return Promise.reject([]);\n }).catch(function (results) {\n var errorList = results.filter(function (result) {\n return result && result.errors.length;\n });\n return Promise.reject({\n values: _this.getFieldsValue(namePathList),\n errorFields: errorList,\n outOfDate: _this.lastValidatePromise !== summaryPromise\n });\n });\n // Do not throw in console\n returnPromise.catch(function (e) {\n return e;\n });\n // `validating` changed. Trigger `onFieldsChange`\n _this.triggerOnFieldsChange(namePathList);\n return returnPromise;\n };\n // ============================ Submit ============================\n this.submit = function () {\n _this.warningUnhooked();\n _this.validateFields().then(function (values) {\n var onFinish = _this.callbacks.onFinish;\n if (onFinish) {\n try {\n onFinish(values);\n } catch (err) {\n // Should print error if user `onFinish` callback failed\n console.error(err);\n }\n }\n }).catch(function (e) {\n var onFinishFailed = _this.callbacks.onFinishFailed;\n if (onFinishFailed) {\n onFinishFailed(e);\n }\n });\n };\n this.forceRootUpdate = forceRootUpdate;\n});\nfunction useForm(form) {\n var formRef = React.useRef();\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n var forceReRender = function forceReRender() {\n forceUpdate({});\n };\n var formStore = new FormStore(forceReRender);\n formRef.current = formStore.getForm();\n }\n }\n return [formRef.current];\n}\nexport default useForm;","export function allPromiseFinish(promiseList) {\n var hasError = false;\n var count = promiseList.length;\n var results = [];\n if (!promiseList.length) {\n return Promise.resolve([]);\n }\n return new Promise(function (resolve, reject) {\n promiseList.forEach(function (promise, index) {\n promise.catch(function (e) {\n hasError = true;\n return e;\n }).then(function (result) {\n count -= 1;\n results[index] = result;\n if (count > 0) {\n return;\n }\n if (hasError) {\n reject(results);\n }\n resolve(results);\n });\n });\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n triggerFormChange: function triggerFormChange() {},\n triggerFormFinish: function triggerFormFinish() {},\n registerForm: function registerForm() {},\n unregisterForm: function unregisterForm() {}\n});\nvar FormProvider = function FormProvider(_ref) {\n var validateMessages = _ref.validateMessages,\n onFormChange = _ref.onFormChange,\n onFormFinish = _ref.onFormFinish,\n children = _ref.children;\n var formContext = React.useContext(FormContext);\n var formsRef = React.useRef({});\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: _objectSpread(_objectSpread({}, formContext), {}, {\n validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n // =========================================================\n // = Global Form Control =\n // =========================================================\n triggerFormChange: function triggerFormChange(name, changedFields) {\n if (onFormChange) {\n onFormChange(name, {\n changedFields: changedFields,\n forms: formsRef.current\n });\n }\n formContext.triggerFormChange(name, changedFields);\n },\n triggerFormFinish: function triggerFormFinish(name, values) {\n if (onFormFinish) {\n onFormFinish(name, {\n values: values,\n forms: formsRef.current\n });\n }\n formContext.triggerFormFinish(name, values);\n },\n registerForm: function registerForm(name, form) {\n if (name) {\n formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n }\n formContext.registerForm(name, form);\n },\n unregisterForm: function unregisterForm(name) {\n var newForms = _objectSpread({}, formsRef.current);\n delete newForms[name];\n formsRef.current = newForms;\n formContext.unregisterForm(name);\n }\n })\n }, children);\n};\nexport { FormProvider };\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\"];\nimport * as React from 'react';\nimport useForm from './useForm';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport FormContext from './FormContext';\nimport { isSimilar } from './utils/valueUtil';\nvar Form = function Form(_ref, ref) {\n var name = _ref.name,\n initialValues = _ref.initialValues,\n fields = _ref.fields,\n form = _ref.form,\n preserve = _ref.preserve,\n children = _ref.children,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'form' : _ref$component,\n validateMessages = _ref.validateMessages,\n _ref$validateTrigger = _ref.validateTrigger,\n validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n onValuesChange = _ref.onValuesChange,\n _onFieldsChange = _ref.onFieldsChange,\n _onFinish = _ref.onFinish,\n onFinishFailed = _ref.onFinishFailed,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var formContext = React.useContext(FormContext);\n // We customize handle event since Context will makes all the consumer re-render:\n // https://reactjs.org/docs/context.html#contextprovider\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n formInstance = _useForm2[0];\n var _formInstance$getInte = formInstance.getInternalHooks(HOOK_MARK),\n useSubscribe = _formInstance$getInte.useSubscribe,\n setInitialValues = _formInstance$getInte.setInitialValues,\n setCallbacks = _formInstance$getInte.setCallbacks,\n setValidateMessages = _formInstance$getInte.setValidateMessages,\n setPreserve = _formInstance$getInte.setPreserve,\n destroyForm = _formInstance$getInte.destroyForm;\n // Pass ref with form instance\n React.useImperativeHandle(ref, function () {\n return formInstance;\n });\n // Register form into Context\n React.useEffect(function () {\n formContext.registerForm(name, formInstance);\n return function () {\n formContext.unregisterForm(name);\n };\n }, [formContext, formInstance, name]);\n // Pass props to store\n setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n setCallbacks({\n onValuesChange: onValuesChange,\n onFieldsChange: function onFieldsChange(changedFields) {\n formContext.triggerFormChange(name, changedFields);\n if (_onFieldsChange) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n }\n },\n onFinish: function onFinish(values) {\n formContext.triggerFormFinish(name, values);\n if (_onFinish) {\n _onFinish(values);\n }\n },\n onFinishFailed: onFinishFailed\n });\n setPreserve(preserve);\n // Set initial value, init store value when first mount\n var mountRef = React.useRef(null);\n setInitialValues(initialValues, !mountRef.current);\n if (!mountRef.current) {\n mountRef.current = true;\n }\n React.useEffect(function () {\n return destroyForm;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // Prepare children by `children` type\n var childrenNode;\n var childrenRenderProps = typeof children === 'function';\n if (childrenRenderProps) {\n var values = formInstance.getFieldsValue(true);\n childrenNode = children(values, formInstance);\n } else {\n childrenNode = children;\n }\n // Not use subscribe when using render props\n useSubscribe(!childrenRenderProps);\n // Listen if fields provided. We use ref to save prev data here to avoid additional render\n var prevFieldsRef = React.useRef();\n React.useEffect(function () {\n if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n formInstance.setFields(fields || []);\n }\n prevFieldsRef.current = fields;\n }, [fields, formInstance]);\n var formContextValue = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, formInstance), {}, {\n validateTrigger: validateTrigger\n });\n }, [formInstance, validateTrigger]);\n var wrapperNode = /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode);\n if (Component === false) {\n return wrapperNode;\n }\n return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n formInstance.submit();\n },\n onReset: function onReset(event) {\n var _restProps$onReset;\n event.preventDefault();\n formInstance.resetFields();\n (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 ? void 0 : _restProps$onReset.call(restProps, event);\n }\n }), wrapperNode);\n};\nexport default Form;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { FieldContext } from '.';\nimport warning from \"rc-util/es/warning\";\nimport { HOOK_MARK } from './FieldContext';\nimport { useState, useContext, useEffect, useRef, useMemo } from 'react';\nimport { getNamePath, getValue } from './utils/valueUtil';\nimport { isFormInstance } from './utils/typeUtil';\nexport function stringify(value) {\n try {\n return JSON.stringify(value);\n } catch (err) {\n return Math.random();\n }\n}\nvar useWatchWarning = process.env.NODE_ENV !== 'production' ? function (namePath) {\n var fullyStr = namePath.join('__RC_FIELD_FORM_SPLIT__');\n var nameStrRef = useRef(fullyStr);\n warning(nameStrRef.current === fullyStr, '`useWatch` is not support dynamic `namePath`. Please provide static instead.');\n} : function () {};\nfunction useWatch() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var _args$ = args[0],\n dependencies = _args$ === void 0 ? [] : _args$,\n _args$2 = args[1],\n _form = _args$2 === void 0 ? {} : _args$2;\n var options = isFormInstance(_form) ? {\n form: _form\n } : _form;\n var form = options.form;\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n var valueStr = useMemo(function () {\n return stringify(value);\n }, [value]);\n var valueStrRef = useRef(valueStr);\n valueStrRef.current = valueStr;\n var fieldContext = useContext(FieldContext);\n var formInstance = form || fieldContext;\n var isValidForm = formInstance && formInstance._init;\n // Warning if not exist form instance\n if (process.env.NODE_ENV !== 'production') {\n warning(args.length === 2 ? form ? isValidForm : true : isValidForm, 'useWatch requires a form instance since it can not auto detect from context.');\n }\n var namePath = getNamePath(dependencies);\n var namePathRef = useRef(namePath);\n namePathRef.current = namePath;\n useWatchWarning(namePath);\n useEffect(function () {\n // Skip if not exist form instance\n if (!isValidForm) {\n return;\n }\n var getFieldsValue = formInstance.getFieldsValue,\n getInternalHooks = formInstance.getInternalHooks;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n registerWatch = _getInternalHooks.registerWatch;\n var cancelRegister = registerWatch(function (values, allValues) {\n var newValue = getValue(options.preserve ? allValues : values, namePathRef.current);\n var nextValueStr = stringify(newValue);\n // Compare stringify in case it's nest object\n if (valueStrRef.current !== nextValueStr) {\n valueStrRef.current = nextValueStr;\n setValue(newValue);\n }\n });\n // TODO: We can improve this perf in future\n var initialValue = getValue(options.preserve ? getFieldsValue(true) : getFieldsValue(), namePathRef.current);\n setValue(initialValue);\n return cancelRegister;\n },\n // We do not need re-register since namePath content is the same\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isValidForm]);\n return value;\n}\nexport default useWatch;","import * as React from 'react';\nimport Field from './Field';\nimport List from './List';\nimport useForm from './useForm';\nimport FieldForm from './Form';\nimport { FormProvider } from './FormContext';\nimport FieldContext from './FieldContext';\nimport ListContext from './ListContext';\nimport useWatch from './useWatch';\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nRefForm.useWatch = useWatch;\nexport { Field, List, useForm, FormProvider, FieldContext, ListContext, useWatch };\nexport default RefForm;","export default {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: 'Page',\n // Pagination.jsx\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages',\n page_size: 'Page Size'\n};","var locale = {\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'OK',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};\nexport default locale;","const locale = {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n};\nexport default locale;","import CalendarLocale from \"rc-picker/es/locale/en_US\";\nimport TimePickerLocale from '../../time-picker/locale/en_US';\n// Merge into a locale object\nconst locale = {\n lang: Object.assign({\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeQuarterPlaceholder: ['Start quarter', 'End quarter'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week']\n }, CalendarLocale),\n timePickerLocale: Object.assign({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/en_US\";\nimport Calendar from '../calendar/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nconst typeTemplate = '${label} is not a valid ${type}';\nconst localeValues = {\n locale: 'en',\n Pagination,\n DatePicker,\n TimePicker,\n Calendar,\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n filterCheckall: 'Select all items',\n filterSearchPlaceholder: 'Search in filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectNone: 'Clear all data',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting'\n },\n Tour: {\n Next: 'Next',\n Previous: 'Previous',\n Finish: 'Finish'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n },\n Form: {\n optional: '(optional)',\n defaultValidateMessages: {\n default: 'Field validation error for ${label}',\n required: 'Please enter ${label}',\n enum: '${label} must be one of [${enum}]',\n whitespace: '${label} cannot be a blank character',\n date: {\n format: '${label} date format is invalid',\n parse: '${label} cannot be converted to a date',\n invalid: '${label} is an invalid date'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} must be ${len} characters',\n min: '${label} must be at least ${min} characters',\n max: '${label} must be up to ${max} characters',\n range: '${label} must be between ${min}-${max} characters'\n },\n number: {\n len: '${label} must be equal to ${len}',\n min: '${label} must be minimum ${min}',\n max: '${label} must be maximum ${max}',\n range: '${label} must be between ${min}-${max}'\n },\n array: {\n len: 'Must be ${len} ${label}',\n min: 'At least ${min} ${label}',\n max: 'At most ${max} ${label}',\n range: 'The amount of ${label} must be between ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} does not match the pattern ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Preview'\n },\n QRCode: {\n expired: 'QR code expired',\n refresh: 'Refresh'\n }\n};\nexport default localeValues;","import defaultLocale from '../locale/en_US';\nlet runtimeLocale = Object.assign({}, defaultLocale.Modal);\nexport function changeConfirmLocale(newLocale) {\n if (newLocale) {\n runtimeLocale = Object.assign(Object.assign({}, runtimeLocale), newLocale);\n } else {\n runtimeLocale = Object.assign({}, defaultLocale.Modal);\n }\n}\nexport function getConfirmLocale() {\n return runtimeLocale;\n}","import { createContext } from 'react';\nconst LocaleContext = /*#__PURE__*/createContext(undefined);\nexport default LocaleContext;","import * as React from 'react';\nimport warning from '../_util/warning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport { default as useLocale } from './useLocale';\nexport const ANT_MARK = 'internalMark';\nconst LocaleProvider = props => {\n const {\n locale = {},\n children,\n _ANT_MARK__\n } = props;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(_ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale') : void 0;\n }\n React.useEffect(() => {\n changeConfirmLocale(locale && locale.Modal);\n return () => {\n changeConfirmLocale();\n };\n }, [locale]);\n const getMemoizedContextValue = React.useMemo(() => Object.assign(Object.assign({}, locale), {\n exist: true\n }), [locale]);\n return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n value: getMemoizedContextValue\n }, children);\n};\nif (process.env.NODE_ENV !== 'production') {\n LocaleProvider.displayName = 'LocaleProvider';\n}\nexport default LocaleProvider;","/* eslint-disable import/prefer-default-export, prefer-destructuring */\nimport { generate } from '@ant-design/colors';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport warning from '../_util/warning';\nconst dynamicStyleMark = `-ant-${Date.now()}-${Math.random()}`;\nexport function getStyle(globalPrefixCls, theme) {\n const variables = {};\n const formatColor = (color, updater) => {\n let clone = color.clone();\n clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n return clone.toRgbString();\n };\n const fillColor = (colorVal, type) => {\n const baseColor = new TinyColor(colorVal);\n const colorPalettes = generate(baseColor.toRgbString());\n variables[`${type}-color`] = formatColor(baseColor);\n variables[`${type}-color-disabled`] = colorPalettes[1];\n variables[`${type}-color-hover`] = colorPalettes[4];\n variables[`${type}-color-active`] = colorPalettes[6];\n variables[`${type}-color-outline`] = baseColor.clone().setAlpha(0.2).toRgbString();\n variables[`${type}-color-deprecated-bg`] = colorPalettes[0];\n variables[`${type}-color-deprecated-border`] = colorPalettes[2];\n };\n // ================ Primary Color ================\n if (theme.primaryColor) {\n fillColor(theme.primaryColor, 'primary');\n const primaryColor = new TinyColor(theme.primaryColor);\n const primaryColors = generate(primaryColor.toRgbString());\n // Legacy - We should use semantic naming standard\n primaryColors.forEach((color, index) => {\n variables[`primary-${index + 1}`] = color;\n });\n // Deprecated\n variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, c => c.lighten(35));\n variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, c => c.lighten(20));\n variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, c => c.tint(20));\n variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, c => c.tint(50));\n variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, c => c.setAlpha(c.getAlpha() * 0.12));\n const primaryActiveColor = new TinyColor(primaryColors[0]);\n variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, c => c.setAlpha(c.getAlpha() * 0.3));\n variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, c => c.darken(2));\n }\n // ================ Success Color ================\n if (theme.successColor) {\n fillColor(theme.successColor, 'success');\n }\n // ================ Warning Color ================\n if (theme.warningColor) {\n fillColor(theme.warningColor, 'warning');\n }\n // ================= Error Color =================\n if (theme.errorColor) {\n fillColor(theme.errorColor, 'error');\n }\n // ================= Info Color ==================\n if (theme.infoColor) {\n fillColor(theme.infoColor, 'info');\n }\n // Convert to css variables\n const cssList = Object.keys(variables).map(key => `--${globalPrefixCls}-${key}: ${variables[key]};`);\n return `\n :root {\n ${cssList.join('\\n')}\n }\n `.trim();\n}\nexport function registerTheme(globalPrefixCls, theme) {\n const style = getStyle(globalPrefixCls, theme);\n if (canUseDom()) {\n updateCSS(style, `${dynamicStyleMark}-dynamic-theme`);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.') : void 0;\n }\n}","import * as React from 'react';\nconst DisabledContext = /*#__PURE__*/React.createContext(false);\nexport const DisabledContextProvider = _ref => {\n let {\n children,\n disabled\n } = _ref;\n const originDisabled = React.useContext(DisabledContext);\n return /*#__PURE__*/React.createElement(DisabledContext.Provider, {\n value: disabled !== null && disabled !== void 0 ? disabled : originDisabled\n }, children);\n};\nexport default DisabledContext;","import * as React from 'react';\nconst SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport const SizeContextProvider = _ref => {\n let {\n children,\n size\n } = _ref;\n const originSize = React.useContext(SizeContext);\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n};\nexport default SizeContext;","import { useContext } from 'react';\nimport DisabledContext from '../DisabledContext';\nimport SizeContext from '../SizeContext';\nfunction useConfig() {\n const componentDisabled = useContext(DisabledContext);\n const componentSize = useContext(SizeContext);\n return {\n componentDisabled,\n componentSize\n };\n}\nexport default useConfig;","import { useStyleRegister } from '@ant-design/cssinjs';\nimport { resetIcon } from '../../style';\nimport { useToken } from '../../theme/internal';\nconst useStyle = (iconPrefixCls, csp) => {\n const [theme, token] = useToken();\n // Generate style for icons\n return useStyleRegister({\n theme,\n token,\n hashId: '',\n path: ['ant-design-icons', iconPrefixCls],\n nonce: () => csp === null || csp === void 0 ? void 0 : csp.nonce\n }, () => [{\n [`.${iconPrefixCls}`]: Object.assign(Object.assign({}, resetIcon()), {\n [`.${iconPrefixCls} .${iconPrefixCls}-icon`]: {\n display: 'block'\n }\n })\n }]);\n};\nexport default useStyle;","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { createTheme } from '@ant-design/cssinjs';\nimport IconContext from \"@ant-design/icons/es/components/Context\";\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport { setValues } from \"rc-field-form/es/utils/valueUtil\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport * as React from 'react';\nimport LocaleProvider, { ANT_MARK } from '../locale';\nimport LocaleContext from '../locale/context';\nimport defaultLocale from '../locale/en_US';\nimport { DesignTokenContext } from '../theme/internal';\nimport defaultSeedToken from '../theme/themes/seed';\nimport warning from '../_util/warning';\nimport { ConfigConsumer, ConfigContext, defaultIconPrefixCls } from './context';\nimport { registerTheme } from './cssVariables';\nimport { DisabledContextProvider } from './DisabledContext';\nimport useConfig from './hooks/useConfig';\nimport useTheme from './hooks/useTheme';\nimport SizeContext, { SizeContextProvider } from './SizeContext';\nimport useStyle from './style';\n/**\n * Since too many feedback using static method like `Modal.confirm` not getting theme,\n * we record the theme register info here to help developer get warning info.\n */\nlet existThemeConfig = false;\nexport const warnContext = process.env.NODE_ENV !== 'production' ? componentName => {\n process.env.NODE_ENV !== \"production\" ? warning(!existThemeConfig, componentName, `Static function can not consume context like dynamic theme. Please use 'App' component instead.`) : void 0;\n} : /* istanbul ignore next */\nnull;\nexport { ConfigContext, ConfigConsumer };\nexport { defaultIconPrefixCls };\nexport const configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\n// These props is used by `useContext` directly in sub component\nconst PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'pageHeader', 'input', 'pagination', 'form', 'select'];\nexport const defaultPrefixCls = 'ant';\nlet globalPrefixCls;\nlet globalIconPrefixCls;\nfunction getGlobalPrefixCls() {\n return globalPrefixCls || defaultPrefixCls;\n}\nfunction getGlobalIconPrefixCls() {\n return globalIconPrefixCls || defaultIconPrefixCls;\n}\nconst setGlobalConfig = _ref => {\n let {\n prefixCls,\n iconPrefixCls,\n theme\n } = _ref;\n if (prefixCls !== undefined) {\n globalPrefixCls = prefixCls;\n }\n if (iconPrefixCls !== undefined) {\n globalIconPrefixCls = iconPrefixCls;\n }\n if (theme) {\n registerTheme(getGlobalPrefixCls(), theme);\n }\n};\nexport const globalConfig = () => ({\n getPrefixCls: (suffixCls, customizePrefixCls) => {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? `${getGlobalPrefixCls()}-${suffixCls}` : getGlobalPrefixCls();\n },\n getIconPrefixCls: getGlobalIconPrefixCls,\n getRootPrefixCls: () => {\n // If Global prefixCls provided, use this\n if (globalPrefixCls) {\n return globalPrefixCls;\n }\n // Fallback to default prefixCls\n return getGlobalPrefixCls();\n }\n});\nconst ProviderChildren = props => {\n const {\n children,\n csp: customCsp,\n autoInsertSpaceInButton,\n form,\n locale,\n componentSize,\n direction,\n space,\n virtual,\n dropdownMatchSelectWidth,\n legacyLocale,\n parentContext,\n iconPrefixCls: customIconPrefixCls,\n theme,\n componentDisabled\n } = props;\n const getPrefixCls = React.useCallback((suffixCls, customizePrefixCls) => {\n const {\n prefixCls\n } = props;\n if (customizePrefixCls) return customizePrefixCls;\n const mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n return suffixCls ? `${mergedPrefixCls}-${suffixCls}` : mergedPrefixCls;\n }, [parentContext.getPrefixCls, props.prefixCls]);\n const iconPrefixCls = customIconPrefixCls || parentContext.iconPrefixCls || defaultIconPrefixCls;\n const shouldWrapSSR = iconPrefixCls !== parentContext.iconPrefixCls;\n const csp = customCsp || parentContext.csp;\n const wrapSSR = useStyle(iconPrefixCls, csp);\n const mergedTheme = useTheme(theme, parentContext.theme);\n if (process.env.NODE_ENV !== 'production') {\n existThemeConfig = existThemeConfig || !!mergedTheme;\n }\n const baseConfig = {\n csp,\n autoInsertSpaceInButton,\n locale: locale || legacyLocale,\n direction,\n space,\n virtual,\n dropdownMatchSelectWidth,\n getPrefixCls,\n iconPrefixCls,\n theme: mergedTheme\n };\n const config = Object.assign({}, parentContext);\n Object.keys(baseConfig).forEach(key => {\n if (baseConfig[key] !== undefined) {\n config[key] = baseConfig[key];\n }\n });\n // Pass the props used by `useContext` directly with child component.\n // These props should merged into `config`.\n PASSED_PROPS.forEach(propName => {\n const propValue = props[propName];\n if (propValue) {\n config[propName] = propValue;\n }\n });\n // https://github.com/ant-design/ant-design/issues/27617\n const memoedConfig = useMemo(() => config, config, (prevConfig, currentConfig) => {\n const prevKeys = Object.keys(prevConfig);\n const currentKeys = Object.keys(currentConfig);\n return prevKeys.length !== currentKeys.length || prevKeys.some(key => prevConfig[key] !== currentConfig[key]);\n });\n const memoIconContextValue = React.useMemo(() => ({\n prefixCls: iconPrefixCls,\n csp\n }), [iconPrefixCls, csp]);\n let childNode = shouldWrapSSR ? wrapSSR(children) : children;\n const validateMessages = React.useMemo(() => {\n var _a, _b, _c;\n return setValues({}, ((_a = defaultLocale.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || {}, ((_c = (_b = memoedConfig.locale) === null || _b === void 0 ? void 0 : _b.Form) === null || _c === void 0 ? void 0 : _c.defaultValidateMessages) || {}, (form === null || form === void 0 ? void 0 : form.validateMessages) || {});\n }, [memoedConfig, form === null || form === void 0 ? void 0 : form.validateMessages]);\n if (Object.keys(validateMessages).length > 0) {\n childNode = /*#__PURE__*/React.createElement(RcFormProvider, {\n validateMessages: validateMessages\n }, children);\n }\n if (locale) {\n childNode = /*#__PURE__*/React.createElement(LocaleProvider, {\n locale: locale,\n _ANT_MARK__: ANT_MARK\n }, childNode);\n }\n if (iconPrefixCls || csp) {\n childNode = /*#__PURE__*/React.createElement(IconContext.Provider, {\n value: memoIconContextValue\n }, childNode);\n }\n if (componentSize) {\n childNode = /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: componentSize\n }, childNode);\n }\n // ================================ Dynamic theme ================================\n const memoTheme = React.useMemo(() => {\n const _a = mergedTheme || {},\n {\n algorithm,\n token\n } = _a,\n rest = __rest(_a, [\"algorithm\", \"token\"]);\n const themeObj = algorithm && (!Array.isArray(algorithm) || algorithm.length > 0) ? createTheme(algorithm) : undefined;\n return Object.assign(Object.assign({}, rest), {\n theme: themeObj,\n token: Object.assign(Object.assign({}, defaultSeedToken), token)\n });\n }, [mergedTheme]);\n if (theme) {\n childNode = /*#__PURE__*/React.createElement(DesignTokenContext.Provider, {\n value: memoTheme\n }, childNode);\n }\n // =================================== Render ===================================\n if (componentDisabled !== undefined) {\n childNode = /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: componentDisabled\n }, childNode);\n }\n return /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n value: memoedConfig\n }, childNode);\n};\nconst ConfigProvider = props => {\n const context = React.useContext(ConfigContext);\n const antLocale = React.useContext(LocaleContext);\n return /*#__PURE__*/React.createElement(ProviderChildren, Object.assign({\n parentContext: context,\n legacyLocale: antLocale\n }, props));\n};\nConfigProvider.ConfigContext = ConfigContext;\nConfigProvider.SizeContext = SizeContext;\nConfigProvider.config = setGlobalConfig;\nConfigProvider.useConfig = useConfig;\nObject.defineProperty(ConfigProvider, 'SizeContext', {\n get: () => {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'ConfigProvider.SizeContext is deprecated. Please use `ConfigProvider.useConfig().componentSize` instead.') : void 0;\n return SizeContext;\n }\n});\nif (process.env.NODE_ENV !== 'production') {\n ConfigProvider.displayName = 'ConfigProvider';\n}\nexport default ConfigProvider;","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport { defaultConfig } from '../../theme/internal';\nexport default function useTheme(theme, parentTheme) {\n const themeConfig = theme || {};\n const parentThemeConfig = themeConfig.inherit === false || !parentTheme ? defaultConfig : parentTheme;\n const mergedTheme = useMemo(() => {\n if (!theme) {\n return parentTheme;\n }\n // Override\n const mergedComponents = Object.assign({}, parentThemeConfig.components);\n Object.keys(theme.components || {}).forEach(componentName => {\n mergedComponents[componentName] = Object.assign(Object.assign({}, mergedComponents[componentName]), theme.components[componentName]);\n });\n // Base token\n return Object.assign(Object.assign(Object.assign({}, parentThemeConfig), themeConfig), {\n token: Object.assign(Object.assign({}, parentThemeConfig.token), themeConfig.token),\n components: mergedComponents\n });\n }, [themeConfig, parentThemeConfig], (prev, next) => prev.some((prevTheme, index) => {\n const nextTheme = next[index];\n return !isEqual(prevTheme, nextTheme, true);\n }));\n return mergedTheme;\n}","// This icon file is generated automatically.\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexport default LoadingOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport React, { useContext, useEffect } from 'react';\nimport warn from \"rc-util/es/warning\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport IconContext from './components/Context';\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n acc[key] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n var _useContext = useContext(IconContext),\n csp = _useContext.csp,\n prefixCls = _useContext.prefixCls;\n var mergedStyleStr = styleStr;\n if (prefixCls) {\n mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n }\n useEffect(function () {\n updateCSS(mergedStyleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n if (!isIconDefinition(icon)) {\n return null;\n }\n var target = icon;\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps));\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Context from './Context';\nimport ReactIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils';\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor('#1890ff');\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,\n rootClassName = _React$useContext.rootClassName;\n var classString = classNames(rootClassName, prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), _classNames), className);\n var iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return /*#__PURE__*/React.createElement(\"span\", _objectSpread(_objectSpread({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps), {}, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar LoadingOutlined = function LoadingOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: LoadingOutlinedSvg\n }));\n};\nLoadingOutlined.displayName = 'LoadingOutlined';\nexport default /*#__PURE__*/React.forwardRef(LoadingOutlined);","// This icon file is generated automatically.\nvar ExclamationCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"filled\" };\nexport default ExclamationCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationCircleFilledSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar ExclamationCircleFilled = function ExclamationCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ExclamationCircleFilledSvg\n }));\n};\nExclamationCircleFilled.displayName = 'ExclamationCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleFilled);","// This icon file is generated automatically.\nvar CloseCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z\" } }] }, \"name\": \"close-circle\", \"theme\": \"filled\" };\nexport default CloseCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CloseCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar CloseCircleFilled = function CloseCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CloseCircleFilledSvg\n }));\n};\nCloseCircleFilled.displayName = 'CloseCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(CloseCircleFilled);","// This icon file is generated automatically.\nvar CheckCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\" } }] }, \"name\": \"check-circle\", \"theme\": \"filled\" };\nexport default CheckCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CheckCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar CheckCircleFilled = function CheckCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CheckCircleFilledSvg\n }));\n};\nCheckCircleFilled.displayName = 'CheckCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(CheckCircleFilled);","// This icon file is generated automatically.\nvar InfoCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"info-circle\", \"theme\": \"filled\" };\nexport default InfoCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport InfoCircleFilledSvg from \"@ant-design/icons-svg/es/asn/InfoCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\nvar InfoCircleFilled = function InfoCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: InfoCircleFilledSvg\n }));\n};\nInfoCircleFilled.displayName = 'InfoCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(InfoCircleFilled);","import React from 'react';\nimport ReactDOM from 'react-dom';\nexport function isDOM(node) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element\n // Since XULElement is also subclass of Element, we only need HTMLElement and SVGElement\n return node instanceof HTMLElement || node instanceof SVGElement;\n}\n\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\nexport default function findDOMNode(node) {\n if (isDOM(node)) {\n return node;\n }\n if (node instanceof React.Component) {\n return ReactDOM.findDOMNode(node);\n }\n return null;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable no-param-reassign */\n\nimport { isMemo } from 'react-is';\nimport useMemo from \"./hooks/useMemo\";\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(function (ref) {\n return ref;\n });\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length === next.length && prev.every(function (ref, i) {\n return ref === next[i];\n });\n });\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render)) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render)) {\n return false;\n }\n return true;\n}\n/* eslint-enable */","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\";\n\n// ================= Transition =================\n// Event wrapper. Copy from react source code\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\n\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\n\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n\n style = _document$createEleme.style;\n}\n\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id);\n\n // Trigger\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n });\n\n // Bind real raf id\n rafIds.set(id, realId);\n }\n }\n callRef(times);\n return id;\n};\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(realId);\n return caf(realId);\n};\nexport default wrapperRaf;","import { useEffect, useLayoutEffect } from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\"; // It's safe to use `useLayoutEffect` but the warning is annoying\n\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { STEP_PREPARE, STEP_ACTIVE, STEP_START, STEP_ACTIVATED, STEP_NONE } from \"../interface\";\nimport useNextFrame from \"./useNextFrame\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nvar STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\n/** Skip current step */\n\nexport var SkipStep = false;\n/** Current step should be update in */\n\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, callback) {\n var _useState = useState(STEP_NONE),\n _useState2 = _slicedToArray(_useState, 2),\n step = _useState2[0],\n setStep = _useState2[1];\n\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n\n function startQueue() {\n setStep(STEP_PREPARE, true);\n }\n\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep, true);\n } else {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep, true);\n }\n\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from \"../util/motion\";\nexport default (function (callback) {\n var cacheElementRef = useRef(); // Cache callback\n\n var callbackRef = useRef(callback);\n callbackRef.current = callback; // Internal motion event handler\n\n var onInternalMotionEnd = React.useCallback(function (event) {\n callbackRef.current(event);\n }, []); // Remove events\n\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n } // Patch events\n\n\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd); // Save as cache in case dom removed trigger by `motionDeadline`\n\n cacheElementRef.current = element;\n }\n } // Clean up when removed\n\n\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n\n var _super = _createSuper(DomWrapper);\n\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return DomWrapper;\n}(React.Component);\n\nexport default DomWrapper;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, supportRef } from \"rc-util/es/ref\";\nimport classNames from 'classnames';\nimport { getTransitionName, supportTransition } from \"./util/motion\";\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from \"./interface\";\nimport useStatus from \"./hooks/useStatus\";\nimport DomWrapper from \"./DomWrapper\";\nimport { isActive } from \"./hooks/useStepQueue\";\n\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n\n function isSupportTransition(props) {\n return !!(props.motionName && transitionSupport);\n }\n\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var supportMotion = isSupportTransition(props); // Ref to the react node, it may be a HTMLElement\n\n var nodeRef = useRef(); // Ref to the dom wrapper in case ref can not pass to HTMLElement\n\n var wrapperNodeRef = useRef();\n\n function getDomElement() {\n try {\n // Here we're avoiding call for findDOMNode since it's deprecated\n // in strict mode. We're calling it only when node ref is not\n // an instance of DOM HTMLElement. Otherwise use\n // findDOMNode as a final resort\n return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3]; // Record whether content has rendered\n // Will return null for un-rendered even when `removeOnLeave={false}`\n\n\n var renderedRef = React.useRef(mergedVisible);\n\n if (mergedVisible) {\n renderedRef.current = true;\n } // ====================== Refs ======================\n\n\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(ref, node);\n }, [ref]); // ===================== Render =====================\n\n var motionChildren;\n\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE || !isSupportTransition(props)) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current && leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender || !removeOnLeave && !leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n var _classNames;\n\n // In motion\n var statusSuffix;\n\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), (_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix)), statusSuffix), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n }), setNodeRef);\n } // Auto inject ref if child node not have `ref` props\n\n\n if ( /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n var _ref = motionChildren,\n originNodeRef = _ref.ref;\n\n if (!originNodeRef) {\n motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n ref: setNodeRef\n });\n }\n }\n\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { STATUS_APPEAR, STATUS_NONE, STATUS_LEAVE, STATUS_ENTER, STEP_PREPARE, STEP_START, STEP_ACTIVE } from \"../interface\";\nimport useStepQueue, { DoStep, SkipStep, isActive } from \"./useStepQueue\";\nimport useDomMotionEvents from \"./useDomMotionEvents\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n\n var _useState3 = useState(STATUS_NONE),\n _useState4 = _slicedToArray(_useState3, 2),\n status = _useState4[0],\n setStatus = _useState4[1];\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n style = _useState6[0],\n setStyle = _useState6[1];\n\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null); // =========================== Dom Node ===========================\n\n function getDomElement() {\n return getElement();\n } // ========================== Motion End ==========================\n\n\n var activeRef = useRef(false);\n\n function onInternalMotionEnd(event) {\n var element = getDomElement();\n\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n\n var currentActive = activeRef.current;\n var canEnd;\n\n if (status === STATUS_APPEAR && currentActive) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && currentActive) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && currentActive) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n } // Only update status when `canEnd` and not destroyed\n\n\n if (status !== STATUS_NONE && currentActive && canEnd !== false) {\n setStatus(STATUS_NONE, true);\n setStyle(null, true);\n }\n }\n\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0]; // ============================= Step =============================\n\n\n var eventHandlers = React.useMemo(function () {\n var _ref2, _ref3, _ref4;\n\n switch (status) {\n case STATUS_APPEAR:\n return _ref2 = {}, _defineProperty(_ref2, STEP_PREPARE, onAppearPrepare), _defineProperty(_ref2, STEP_START, onAppearStart), _defineProperty(_ref2, STEP_ACTIVE, onAppearActive), _ref2;\n\n case STATUS_ENTER:\n return _ref3 = {}, _defineProperty(_ref3, STEP_PREPARE, onEnterPrepare), _defineProperty(_ref3, STEP_START, onEnterStart), _defineProperty(_ref3, STEP_ACTIVE, onEnterActive), _ref3;\n\n case STATUS_LEAVE:\n return _ref4 = {}, _defineProperty(_ref4, STEP_PREPARE, onLeavePrepare), _defineProperty(_ref4, STEP_START, onLeaveStart), _defineProperty(_ref4, STEP_ACTIVE, onLeaveActive), _ref4;\n\n default:\n return {};\n }\n }, [status]);\n\n var _useStepQueue = useStepQueue(status, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n\n if (!onPrepare) {\n return SkipStep;\n }\n\n return onPrepare(getDomElement());\n } // Rest step is sync update\n\n\n if (step in eventHandlers) {\n var _eventHandlers$step;\n\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n\n if (step === STEP_ACTIVE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n\n var active = isActive(step);\n activeRef.current = active; // ============================ Status ============================\n // Update with new status\n\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n if (!supportMotion) {\n return;\n }\n\n var nextStatus; // Appear\n\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n } // Enter\n\n\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n } // Leave\n\n\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n } // Update to next status\n\n\n if (nextStatus) {\n setStatus(nextStatus);\n startStep();\n }\n }, [visible]); // ============================ Effect ============================\n // Reset when motion changed\n\n useEffect(function () {\n if ( // Cancel appear\n status === STATUS_APPEAR && !motionAppear || // Cancel enter\n status === STATUS_ENTER && !motionEnter || // Cancel leave\n status === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n mountedRef.current = false;\n clearTimeout(deadlineRef.current);\n };\n }, []); // Trigger `onVisibleChanged`\n\n var firstMountChangeRef = React.useRef(false);\n useEffect(function () {\n // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n if (asyncVisible) {\n firstMountChangeRef.current = true;\n }\n\n if (asyncVisible !== undefined && status === STATUS_NONE) {\n // Skip first render is invisible since it's nothing changed\n if (firstMountChangeRef.current || asyncVisible) {\n onVisibleChanged === null || onVisibleChanged === void 0 ? void 0 : onVisibleChanged(asyncVisible);\n }\n\n firstMountChangeRef.current = true;\n }\n }, [asyncVisible, status]); // ============================ Styles ============================\n\n var mergedStyle = style;\n\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n\n return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys); // Check prev keys to insert or keep\n\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n } // If not hit, it means key is removed\n\n\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n }); // Add rest to the list\n\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n\n\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n }); // Update `STATUS_ADD` to `STATUS_KEEP`\n\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n _excluded2 = [\"status\"];\n\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from \"./CSSMotion\";\nimport { supportTransition } from \"./util/motion\";\nimport { STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED, diffKeys, parseKeys } from \"./util/diff\";\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n\n var _super = _createSuper(CSSMotionList);\n\n function CSSMotionList() {\n var _this;\n\n _classCallCheck(this, CSSMotionList);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n keyEntities: []\n });\n\n _defineProperty(_assertThisInitialized(_this), \"removeKey\", function (removeKey) {\n var keyEntities = _this.state.keyEntities;\n var nextKeyEntities = keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n });\n\n _this.setState({\n keyEntities: nextKeyEntities\n });\n\n return nextKeyEntities.filter(function (_ref) {\n var status = _ref.status;\n return status !== STATUS_REMOVED;\n }).length;\n });\n\n return _this;\n }\n\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var keyEntities = this.state.keyEntities;\n\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n onAllRemoved = _this$props.onAllRemoved,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, _excluded2);\n\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 ? void 0 : _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n\n if (!changedVisible) {\n var restKeysCount = _this2.removeKey(eventProps.key);\n\n if (restKeysCount === 0 && onAllRemoved) {\n onAllRemoved();\n }\n }\n }\n }), children);\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n }); // Remove if already mark as removed\n\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n\n return true;\n })\n };\n } // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n\n }]);\n\n return CSSMotionList;\n }(React.Component);\n\n _defineProperty(CSSMotionList, \"defaultProps\", {\n component: 'div'\n });\n\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import CSSMotion from \"./CSSMotion\";\nimport CSSMotionList from \"./CSSMotionList\";\nexport { CSSMotionList };\nexport default CSSMotion;","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nvar Notify = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n style = props.style,\n className = props.className,\n _props$duration = props.duration,\n duration = _props$duration === void 0 ? 4.5 : _props$duration,\n eventKey = props.eventKey,\n content = props.content,\n closable = props.closable,\n _props$closeIcon = props.closeIcon,\n closeIcon = _props$closeIcon === void 0 ? 'x' : _props$closeIcon,\n divProps = props.props,\n onClick = props.onClick,\n onNoticeClose = props.onNoticeClose,\n times = props.times;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n hovering = _React$useState2[0],\n setHovering = _React$useState2[1];\n // ======================== Close =========================\n var onInternalClose = function onInternalClose() {\n onNoticeClose(eventKey);\n };\n var onCloseKeyDown = function onCloseKeyDown(e) {\n if (e.key === 'Enter' || e.code === 'Enter' || e.keyCode === KeyCode.ENTER) {\n onInternalClose();\n }\n };\n // ======================== Effect ========================\n React.useEffect(function () {\n if (!hovering && duration > 0) {\n var timeout = setTimeout(function () {\n onInternalClose();\n }, duration * 1000);\n return function () {\n clearTimeout(timeout);\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [duration, hovering, times]);\n // ======================== Render ========================\n var noticePrefixCls = \"\".concat(prefixCls, \"-notice\");\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n ref: ref,\n className: classNames(noticePrefixCls, className, _defineProperty({}, \"\".concat(noticePrefixCls, \"-closable\"), closable)),\n style: style,\n onMouseEnter: function onMouseEnter() {\n setHovering(true);\n },\n onMouseLeave: function onMouseLeave() {\n setHovering(false);\n },\n onClick: onClick\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(noticePrefixCls, \"-content\")\n }, content), closable && /*#__PURE__*/React.createElement(\"a\", {\n tabIndex: 0,\n className: \"\".concat(noticePrefixCls, \"-close\"),\n onKeyDown: onCloseKeyDown,\n onClick: function onClick(e) {\n e.preventDefault();\n e.stopPropagation();\n onInternalClose();\n }\n }, closeIcon));\n});\nexport default Notify;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { CSSMotionList } from 'rc-motion';\nimport classNames from 'classnames';\nimport Notice from './Notice';\n// ant-notification ant-notification-topRight\nvar Notifications = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-notification' : _props$prefixCls,\n container = props.container,\n motion = props.motion,\n maxCount = props.maxCount,\n className = props.className,\n style = props.style,\n onAllRemoved = props.onAllRemoved;\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n configList = _React$useState2[0],\n setConfigList = _React$useState2[1];\n // ======================== Close =========================\n var onNoticeClose = function onNoticeClose(key) {\n var _config$onClose;\n // Trigger close event\n var config = configList.find(function (item) {\n return item.key === key;\n });\n config === null || config === void 0 ? void 0 : (_config$onClose = config.onClose) === null || _config$onClose === void 0 ? void 0 : _config$onClose.call(config);\n setConfigList(function (list) {\n return list.filter(function (item) {\n return item.key !== key;\n });\n });\n };\n // ========================= Refs =========================\n React.useImperativeHandle(ref, function () {\n return {\n open: function open(config) {\n setConfigList(function (list) {\n var clone = _toConsumableArray(list);\n // Replace if exist\n var index = clone.findIndex(function (item) {\n return item.key === config.key;\n });\n var innerConfig = _objectSpread({}, config);\n if (index >= 0) {\n var _list$index;\n innerConfig.times = (((_list$index = list[index]) === null || _list$index === void 0 ? void 0 : _list$index.times) || 0) + 1;\n clone[index] = innerConfig;\n } else {\n innerConfig.times = 0;\n clone.push(innerConfig);\n }\n if (maxCount > 0 && clone.length > maxCount) {\n clone = clone.slice(-maxCount);\n }\n return clone;\n });\n },\n close: function close(key) {\n onNoticeClose(key);\n },\n destroy: function destroy() {\n setConfigList([]);\n }\n };\n });\n // ====================== Placements ======================\n var _React$useState3 = React.useState({}),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n placements = _React$useState4[0],\n setPlacements = _React$useState4[1];\n React.useEffect(function () {\n var nextPlacements = {};\n configList.forEach(function (config) {\n var _config$placement = config.placement,\n placement = _config$placement === void 0 ? 'topRight' : _config$placement;\n if (placement) {\n nextPlacements[placement] = nextPlacements[placement] || [];\n nextPlacements[placement].push(config);\n }\n });\n // Fill exist placements to avoid empty list causing remove without motion\n Object.keys(placements).forEach(function (placement) {\n nextPlacements[placement] = nextPlacements[placement] || [];\n });\n setPlacements(nextPlacements);\n }, [configList]);\n // Clean up container if all notices fade out\n var onAllNoticeRemoved = function onAllNoticeRemoved(placement) {\n setPlacements(function (originPlacements) {\n var clone = _objectSpread({}, originPlacements);\n var list = clone[placement] || [];\n if (!list.length) {\n delete clone[placement];\n }\n return clone;\n });\n };\n // Effect tell that placements is empty now\n var emptyRef = React.useRef(false);\n React.useEffect(function () {\n if (Object.keys(placements).length > 0) {\n emptyRef.current = true;\n } else if (emptyRef.current) {\n // Trigger only when from exist to empty\n onAllRemoved === null || onAllRemoved === void 0 ? void 0 : onAllRemoved();\n emptyRef.current = false;\n }\n }, [placements]);\n // ======================== Render ========================\n if (!container) {\n return null;\n }\n var placementList = Object.keys(placements);\n return /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(React.Fragment, null, placementList.map(function (placement) {\n var placementConfigList = placements[placement];\n var keys = placementConfigList.map(function (config) {\n return {\n config: config,\n key: config.key\n };\n });\n var placementMotion = typeof motion === 'function' ? motion(placement) : motion;\n return /*#__PURE__*/React.createElement(CSSMotionList, _extends({\n key: placement,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(placement), className === null || className === void 0 ? void 0 : className(placement)),\n style: style === null || style === void 0 ? void 0 : style(placement),\n keys: keys,\n motionAppear: true\n }, placementMotion, {\n onAllRemoved: function onAllRemoved() {\n onAllNoticeRemoved(placement);\n }\n }), function (_ref, nodeRef) {\n var config = _ref.config,\n motionClassName = _ref.className,\n motionStyle = _ref.style;\n var key = config.key,\n times = config.times;\n var configClassName = config.className,\n configStyle = config.style;\n return /*#__PURE__*/React.createElement(Notice, _extends({}, config, {\n ref: nodeRef,\n prefixCls: prefixCls,\n className: classNames(motionClassName, configClassName),\n style: _objectSpread(_objectSpread({}, motionStyle), configStyle),\n times: times,\n key: key,\n eventKey: key,\n onNoticeClose: onNoticeClose\n }));\n });\n })), container);\n});\nif (process.env.NODE_ENV !== 'production') {\n Notifications.displayName = 'Notifications';\n}\nexport default Notifications;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"getContainer\", \"motion\", \"prefixCls\", \"maxCount\", \"className\", \"style\", \"onAllRemoved\"];\nimport * as React from 'react';\nimport Notifications from './Notifications';\nvar defaultGetContainer = function defaultGetContainer() {\n return document.body;\n};\nvar uniqueKey = 0;\nfunction mergeConfig() {\n var clone = {};\n for (var _len = arguments.length, objList = new Array(_len), _key = 0; _key < _len; _key++) {\n objList[_key] = arguments[_key];\n }\n objList.forEach(function (obj) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n var val = obj[key];\n if (val !== undefined) {\n clone[key] = val;\n }\n });\n }\n });\n return clone;\n}\nexport default function useNotification() {\n var rootConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _rootConfig$getContai = rootConfig.getContainer,\n getContainer = _rootConfig$getContai === void 0 ? defaultGetContainer : _rootConfig$getContai,\n motion = rootConfig.motion,\n prefixCls = rootConfig.prefixCls,\n maxCount = rootConfig.maxCount,\n className = rootConfig.className,\n style = rootConfig.style,\n onAllRemoved = rootConfig.onAllRemoved,\n shareConfig = _objectWithoutProperties(rootConfig, _excluded);\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n container = _React$useState2[0],\n setContainer = _React$useState2[1];\n var notificationsRef = React.useRef();\n var contextHolder = /*#__PURE__*/React.createElement(Notifications, {\n container: container,\n ref: notificationsRef,\n prefixCls: prefixCls,\n motion: motion,\n maxCount: maxCount,\n className: className,\n style: style,\n onAllRemoved: onAllRemoved\n });\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n taskQueue = _React$useState4[0],\n setTaskQueue = _React$useState4[1];\n // ========================= Refs =========================\n var api = React.useMemo(function () {\n return {\n open: function open(config) {\n var mergedConfig = mergeConfig(shareConfig, config);\n if (mergedConfig.key === null || mergedConfig.key === undefined) {\n mergedConfig.key = \"rc-notification-\".concat(uniqueKey);\n uniqueKey += 1;\n }\n setTaskQueue(function (queue) {\n return [].concat(_toConsumableArray(queue), [{\n type: 'open',\n config: mergedConfig\n }]);\n });\n },\n close: function close(key) {\n setTaskQueue(function (queue) {\n return [].concat(_toConsumableArray(queue), [{\n type: 'close',\n key: key\n }]);\n });\n },\n destroy: function destroy() {\n setTaskQueue(function (queue) {\n return [].concat(_toConsumableArray(queue), [{\n type: 'destroy'\n }]);\n });\n }\n };\n }, []);\n // ======================= Container ======================\n // React 18 should all in effect that we will check container in each render\n // Which means getContainer should be stable.\n React.useEffect(function () {\n setContainer(getContainer());\n });\n // ======================== Effect ========================\n React.useEffect(function () {\n // Flush task when node ready\n if (notificationsRef.current && taskQueue.length) {\n taskQueue.forEach(function (task) {\n switch (task.type) {\n case 'open':\n notificationsRef.current.open(task.config);\n break;\n case 'close':\n notificationsRef.current.close(task.key);\n break;\n case 'destroy':\n notificationsRef.current.destroy();\n break;\n }\n });\n setTaskQueue([]);\n }\n }, [taskQueue]);\n // ======================== Return ========================\n return [api, contextHolder];\n}","// deps-lint-skip-all\nimport { Keyframes } from '@ant-design/cssinjs';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent } from '../../style';\nconst genMessageStyle = token => {\n const {\n componentCls,\n iconCls,\n boxShadow,\n colorText,\n colorBgElevated,\n colorSuccess,\n colorError,\n colorWarning,\n colorInfo,\n fontSizeLG,\n motionEaseInOutCirc,\n motionDurationSlow,\n marginXS,\n paddingXS,\n borderRadiusLG,\n zIndexPopup,\n // Custom token\n messageNoticeContentPadding\n } = token;\n const messageMoveIn = new Keyframes('MessageMoveIn', {\n '0%': {\n padding: 0,\n transform: 'translateY(-100%)',\n opacity: 0\n },\n '100%': {\n padding: paddingXS,\n transform: 'translateY(0)',\n opacity: 1\n }\n });\n const messageMoveOut = new Keyframes('MessageMoveOut', {\n '0%': {\n maxHeight: token.height,\n padding: paddingXS,\n opacity: 1\n },\n '100%': {\n maxHeight: 0,\n padding: 0,\n opacity: 0\n }\n });\n return [\n // ============================ Holder ============================\n {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n color: colorText,\n position: 'fixed',\n top: marginXS,\n width: '100%',\n pointerEvents: 'none',\n zIndex: zIndexPopup,\n [`${componentCls}-move-up`]: {\n animationFillMode: 'forwards'\n },\n [`\n ${componentCls}-move-up-appear,\n ${componentCls}-move-up-enter\n `]: {\n animationName: messageMoveIn,\n animationDuration: motionDurationSlow,\n animationPlayState: 'paused',\n animationTimingFunction: motionEaseInOutCirc\n },\n [`\n ${componentCls}-move-up-appear${componentCls}-move-up-appear-active,\n ${componentCls}-move-up-enter${componentCls}-move-up-enter-active\n `]: {\n animationPlayState: 'running'\n },\n [`${componentCls}-move-up-leave`]: {\n animationName: messageMoveOut,\n animationDuration: motionDurationSlow,\n animationPlayState: 'paused',\n animationTimingFunction: motionEaseInOutCirc\n },\n [`${componentCls}-move-up-leave${componentCls}-move-up-leave-active`]: {\n animationPlayState: 'running'\n },\n '&-rtl': {\n direction: 'rtl',\n span: {\n direction: 'rtl'\n }\n }\n })\n },\n // ============================ Notice ============================\n {\n [`${componentCls}-notice`]: {\n padding: paddingXS,\n textAlign: 'center',\n [`${componentCls}-custom-content > ${iconCls}`]: {\n verticalAlign: 'text-bottom',\n marginInlineEnd: marginXS,\n fontSize: fontSizeLG\n },\n [`${componentCls}-notice-content`]: {\n display: 'inline-block',\n padding: messageNoticeContentPadding,\n background: colorBgElevated,\n borderRadius: borderRadiusLG,\n boxShadow,\n pointerEvents: 'all'\n },\n [`${componentCls}-success > ${iconCls}`]: {\n color: colorSuccess\n },\n [`${componentCls}-error > ${iconCls}`]: {\n color: colorError\n },\n [`${componentCls}-warning > ${iconCls}`]: {\n color: colorWarning\n },\n [`\n ${componentCls}-info > ${iconCls},\n ${componentCls}-loading > ${iconCls}`]: {\n color: colorInfo\n }\n }\n },\n // ============================= Pure =============================\n {\n [`${componentCls}-notice-pure-panel`]: {\n padding: 0,\n textAlign: 'start'\n }\n }];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Message', token => {\n // Gen-style functions here\n const combinedToken = mergeToken(token, {\n messageNoticeContentPadding: `${(token.controlHeightLG - token.fontSize * token.lineHeight) / 2}px ${token.paddingSM}px`\n });\n return [genMessageStyle(combinedToken)];\n}, token => ({\n height: 150,\n zIndexPopup: token.zIndexPopupBase + 10\n}));","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport { Notice } from 'rc-notification';\nimport classNames from 'classnames';\nimport useStyle from './style';\nimport { ConfigContext } from '../config-provider';\nexport const TypeIcon = {\n info: /*#__PURE__*/React.createElement(InfoCircleFilled, null),\n success: /*#__PURE__*/React.createElement(CheckCircleFilled, null),\n error: /*#__PURE__*/React.createElement(CloseCircleFilled, null),\n warning: /*#__PURE__*/React.createElement(ExclamationCircleFilled, null),\n loading: /*#__PURE__*/React.createElement(LoadingOutlined, null)\n};\nexport function PureContent(_ref) {\n let {\n prefixCls,\n type,\n icon,\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-custom-content`, `${prefixCls}-${type}`)\n }, icon || TypeIcon[type], /*#__PURE__*/React.createElement(\"span\", null, children));\n}\n/** @private Internal Component. Do not use in your production. */\nexport default function PurePanel(props) {\n const {\n prefixCls: staticPrefixCls,\n className,\n type,\n icon,\n content\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"type\", \"icon\", \"content\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = staticPrefixCls || getPrefixCls('message');\n const [, hashId] = useStyle(prefixCls);\n return /*#__PURE__*/React.createElement(Notice, Object.assign({}, restProps, {\n prefixCls: prefixCls,\n className: classNames(className, hashId, `${prefixCls}-notice-pure-panel`),\n eventKey: \"pure\",\n duration: null,\n content: /*#__PURE__*/React.createElement(PureContent, {\n prefixCls: prefixCls,\n type: type,\n icon: icon\n }, content)\n }));\n}","// This icon file is generated automatically.\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexport default CloseOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar CloseOutlined = function CloseOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CloseOutlinedSvg\n }));\n};\nCloseOutlined.displayName = 'CloseOutlined';\nexport default /*#__PURE__*/React.forwardRef(CloseOutlined);","export function getMotion(prefixCls, transitionName) {\n return {\n motionName: transitionName !== null && transitionName !== void 0 ? transitionName : `${prefixCls}-move-up`\n };\n}\n/** Wrap message open with promise like function */\nexport function wrapPromiseFn(openFn) {\n let closeFn;\n const closePromise = new Promise(resolve => {\n closeFn = openFn(() => {\n resolve(true);\n });\n });\n const result = () => {\n closeFn === null || closeFn === void 0 ? void 0 : closeFn();\n };\n result.then = (filled, rejected) => closePromise.then(filled, rejected);\n result.promise = closePromise;\n return result;\n}","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { useNotification as useRcNotification } from 'rc-notification';\nimport classNames from 'classnames';\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport { getMotion, wrapPromiseFn } from './util';\nimport warning from '../_util/warning';\nimport { PureContent } from './PurePanel';\nconst DEFAULT_OFFSET = 8;\nconst DEFAULT_DURATION = 3;\nconst Holder = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n top,\n prefixCls: staticPrefixCls,\n getContainer: staticGetContainer,\n maxCount,\n duration = DEFAULT_DURATION,\n rtl,\n transitionName,\n onAllRemoved\n } = props;\n const {\n getPrefixCls,\n getPopupContainer\n } = React.useContext(ConfigContext);\n const prefixCls = staticPrefixCls || getPrefixCls('message');\n const [, hashId] = useStyle(prefixCls);\n // =============================== Style ===============================\n const getStyle = () => ({\n left: '50%',\n transform: 'translateX(-50%)',\n top: top !== null && top !== void 0 ? top : DEFAULT_OFFSET\n });\n const getClassName = () => classNames(hashId, rtl ? `${prefixCls}-rtl` : '');\n // ============================== Motion ===============================\n const getNotificationMotion = () => getMotion(prefixCls, transitionName);\n // ============================ Close Icon =============================\n const mergedCloseIcon = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-close-x`\n }, /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close-icon`\n }));\n // ============================== Origin ===============================\n const [api, holder] = useRcNotification({\n prefixCls,\n style: getStyle,\n className: getClassName,\n motion: getNotificationMotion,\n closable: false,\n closeIcon: mergedCloseIcon,\n duration,\n getContainer: () => (staticGetContainer === null || staticGetContainer === void 0 ? void 0 : staticGetContainer()) || (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer()) || document.body,\n maxCount,\n onAllRemoved\n });\n // ================================ Ref ================================\n React.useImperativeHandle(ref, () => Object.assign(Object.assign({}, api), {\n prefixCls,\n hashId\n }));\n return holder;\n});\n// ==============================================================================\n// == Hook ==\n// ==============================================================================\nlet keyIndex = 0;\nexport function useInternalMessage(messageConfig) {\n const holderRef = React.useRef(null);\n // ================================ API ================================\n const wrapAPI = React.useMemo(() => {\n // Wrap with notification content\n // >>> close\n const close = key => {\n var _a;\n (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.close(key);\n };\n // >>> Open\n const open = config => {\n if (!holderRef.current) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Message', 'You are calling notice in render which will break in React 18 concurrent mode. Please trigger in effect instead.') : void 0;\n const fakeResult = () => {};\n fakeResult.then = () => {};\n return fakeResult;\n }\n const {\n open: originOpen,\n prefixCls,\n hashId\n } = holderRef.current;\n const noticePrefixCls = `${prefixCls}-notice`;\n const {\n content,\n icon,\n type,\n key,\n className,\n onClose\n } = config,\n restConfig = __rest(config, [\"content\", \"icon\", \"type\", \"key\", \"className\", \"onClose\"]);\n let mergedKey = key;\n if (mergedKey === undefined || mergedKey === null) {\n keyIndex += 1;\n mergedKey = `antd-message-${keyIndex}`;\n }\n return wrapPromiseFn(resolve => {\n originOpen(Object.assign(Object.assign({}, restConfig), {\n key: mergedKey,\n content: /*#__PURE__*/React.createElement(PureContent, {\n prefixCls: prefixCls,\n type: type,\n icon: icon\n }, content),\n placement: 'top',\n className: classNames(type && `${noticePrefixCls}-${type}`, hashId, className),\n onClose: () => {\n onClose === null || onClose === void 0 ? void 0 : onClose();\n resolve();\n }\n }));\n // Return close function\n return () => {\n close(mergedKey);\n };\n });\n };\n // >>> destroy\n const destroy = key => {\n var _a;\n if (key !== undefined) {\n close(key);\n } else {\n (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n }\n };\n const clone = {\n open,\n destroy\n };\n const keys = ['info', 'success', 'warning', 'error', 'loading'];\n keys.forEach(type => {\n const typeOpen = (jointContent, duration, onClose) => {\n let config;\n if (jointContent && typeof jointContent === 'object' && 'content' in jointContent) {\n config = jointContent;\n } else {\n config = {\n content: jointContent\n };\n }\n // Params\n let mergedDuration;\n let mergedOnClose;\n if (typeof duration === 'function') {\n mergedOnClose = duration;\n } else {\n mergedDuration = duration;\n mergedOnClose = onClose;\n }\n const mergedConfig = Object.assign(Object.assign({\n onClose: mergedOnClose,\n duration: mergedDuration\n }, config), {\n type\n });\n return open(mergedConfig);\n };\n clone[type] = typeOpen;\n });\n return clone;\n }, []);\n // ============================== Return ===============================\n return [wrapAPI, /*#__PURE__*/React.createElement(Holder, Object.assign({\n key: \"message-holder\"\n }, messageConfig, {\n ref: holderRef\n }))];\n}\nexport default function useMessage(messageConfig) {\n return useInternalMessage(messageConfig);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { render } from \"rc-util/es/React/render\";\nimport * as React from 'react';\nimport ConfigProvider, { globalConfig, warnContext } from '../config-provider';\nimport PurePanel from './PurePanel';\nimport useMessage, { useInternalMessage } from './useMessage';\nimport { wrapPromiseFn } from './util';\nlet message = null;\nlet act = callback => callback();\nlet taskQueue = [];\nlet defaultGlobalConfig = {};\nfunction getGlobalContext() {\n const {\n prefixCls: globalPrefixCls,\n getContainer: globalGetContainer,\n duration,\n rtl,\n maxCount,\n top\n } = defaultGlobalConfig;\n const mergedPrefixCls = globalPrefixCls !== null && globalPrefixCls !== void 0 ? globalPrefixCls : globalConfig().getPrefixCls('message');\n const mergedContainer = (globalGetContainer === null || globalGetContainer === void 0 ? void 0 : globalGetContainer()) || document.body;\n return {\n prefixCls: mergedPrefixCls,\n container: mergedContainer,\n duration,\n rtl,\n maxCount,\n top\n };\n}\nconst GlobalHolder = /*#__PURE__*/React.forwardRef((_, ref) => {\n const initializeMessageConfig = () => {\n const {\n prefixCls,\n container,\n maxCount,\n duration,\n rtl,\n top\n } = getGlobalContext();\n return {\n prefixCls,\n getContainer: () => container,\n maxCount,\n duration,\n rtl,\n top\n };\n };\n const [messageConfig, setMessageConfig] = React.useState(initializeMessageConfig);\n const [api, holder] = useInternalMessage(messageConfig);\n const global = globalConfig();\n const rootPrefixCls = global.getRootPrefixCls();\n const rootIconPrefixCls = global.getIconPrefixCls();\n const sync = () => {\n setMessageConfig(initializeMessageConfig);\n };\n React.useEffect(sync, []);\n React.useImperativeHandle(ref, () => {\n const instance = Object.assign({}, api);\n Object.keys(instance).forEach(method => {\n instance[method] = function () {\n sync();\n return api[method].apply(api, arguments);\n };\n });\n return {\n instance,\n sync\n };\n });\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls,\n iconPrefixCls: rootIconPrefixCls\n }, holder);\n});\nfunction flushNotice() {\n if (!message) {\n const holderFragment = document.createDocumentFragment();\n const newMessage = {\n fragment: holderFragment\n };\n message = newMessage;\n // Delay render to avoid sync issue\n act(() => {\n render( /*#__PURE__*/React.createElement(GlobalHolder, {\n ref: node => {\n const {\n instance,\n sync\n } = node || {};\n // React 18 test env will throw if call immediately in ref\n Promise.resolve().then(() => {\n if (!newMessage.instance && instance) {\n newMessage.instance = instance;\n newMessage.sync = sync;\n flushNotice();\n }\n });\n }\n }), holderFragment);\n });\n return;\n }\n // Notification not ready\n if (!message.instance) {\n return;\n }\n // >>> Execute task\n taskQueue.forEach(task => {\n const {\n type,\n skipped\n } = task;\n // Only `skipped` when user call notice but cancel it immediately\n // and instance not ready\n if (!skipped) {\n switch (type) {\n case 'open':\n {\n act(() => {\n const closeFn = message.instance.open(Object.assign(Object.assign({}, defaultGlobalConfig), task.config));\n closeFn === null || closeFn === void 0 ? void 0 : closeFn.then(task.resolve);\n task.setCloseFn(closeFn);\n });\n break;\n }\n case 'destroy':\n act(() => {\n message === null || message === void 0 ? void 0 : message.instance.destroy(task.key);\n });\n break;\n // Other type open\n default:\n {\n act(() => {\n var _message$instance;\n const closeFn = (_message$instance = message.instance)[type].apply(_message$instance, _toConsumableArray(task.args));\n closeFn === null || closeFn === void 0 ? void 0 : closeFn.then(task.resolve);\n task.setCloseFn(closeFn);\n });\n }\n }\n }\n });\n // Clean up\n taskQueue = [];\n}\n// ==============================================================================\n// == Export ==\n// ==============================================================================\nfunction setMessageGlobalConfig(config) {\n defaultGlobalConfig = Object.assign(Object.assign({}, defaultGlobalConfig), config);\n // Trigger sync for it\n act(() => {\n var _a;\n (_a = message === null || message === void 0 ? void 0 : message.sync) === null || _a === void 0 ? void 0 : _a.call(message);\n });\n}\nfunction open(config) {\n const result = wrapPromiseFn(resolve => {\n let closeFn;\n const task = {\n type: 'open',\n config,\n resolve,\n setCloseFn: fn => {\n closeFn = fn;\n }\n };\n taskQueue.push(task);\n return () => {\n if (closeFn) {\n act(() => {\n closeFn();\n });\n } else {\n task.skipped = true;\n }\n };\n });\n flushNotice();\n return result;\n}\nfunction typeOpen(type, args) {\n // Warning if exist theme\n if (process.env.NODE_ENV !== 'production') {\n warnContext('message');\n }\n const result = wrapPromiseFn(resolve => {\n let closeFn;\n const task = {\n type,\n args,\n resolve,\n setCloseFn: fn => {\n closeFn = fn;\n }\n };\n taskQueue.push(task);\n return () => {\n if (closeFn) {\n act(() => {\n closeFn();\n });\n } else {\n task.skipped = true;\n }\n };\n });\n flushNotice();\n return result;\n}\nfunction destroy(key) {\n taskQueue.push({\n type: 'destroy',\n key\n });\n flushNotice();\n}\nconst methods = ['success', 'info', 'warning', 'error', 'loading'];\nconst baseStaticMethods = {\n open,\n destroy,\n config: setMessageGlobalConfig,\n useMessage,\n _InternalPanelDoNotUseOrYouWillBeFired: PurePanel\n};\nconst staticMethods = baseStaticMethods;\nmethods.forEach(type => {\n staticMethods[type] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return typeOpen(type, args);\n };\n});\n// ==============================================================================\n// == Test ==\n// ==============================================================================\nconst noop = () => {};\n/** @private Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actWrapper = noop;\nif (process.env.NODE_ENV === 'test') {\n actWrapper = wrapper => {\n act = wrapper;\n };\n}\n/** @private Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actDestroy = noop;\nif (process.env.NODE_ENV === 'test') {\n actDestroy = () => {\n message = null;\n };\n}\nexport default staticMethods;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nexport default function omit(obj, fields) {\n var clone = _objectSpread({}, obj);\n if (Array.isArray(fields)) {\n fields.forEach(function (key) {\n delete clone[key];\n });\n }\n return clone;\n}","import { FormProvider as RcFormProvider } from 'rc-field-form';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nexport const FormContext = /*#__PURE__*/React.createContext({\n labelAlign: 'right',\n vertical: false,\n itemRef: () => {}\n});\nexport const NoStyleItemContext = /*#__PURE__*/React.createContext(null);\nexport const FormProvider = props => {\n const providerProps = omit(props, ['prefixCls']);\n return /*#__PURE__*/React.createElement(RcFormProvider, Object.assign({}, providerProps));\n};\nexport const FormItemPrefixContext = /*#__PURE__*/React.createContext({\n prefixCls: ''\n});\nexport const FormItemInputContext = /*#__PURE__*/React.createContext({});\nexport const NoFormStyle = _ref => {\n let {\n children,\n status,\n override\n } = _ref;\n const formItemInputContext = useContext(FormItemInputContext);\n const newFormItemInputContext = useMemo(() => {\n const newContext = Object.assign({}, formItemInputContext);\n if (override) {\n delete newContext.isFormItemInput;\n }\n if (status) {\n delete newContext.status;\n delete newContext.hasFeedback;\n delete newContext.feedbackIcon;\n }\n return newContext;\n }, [status, override, formItemInputContext]);\n return /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: newFormItemInputContext\n }, children);\n};","// ================== Collapse Motion ==================\nconst getCollapsedHeight = () => ({\n height: 0,\n opacity: 0\n});\nconst getRealHeight = node => {\n const {\n scrollHeight\n } = node;\n return {\n height: scrollHeight,\n opacity: 1\n };\n};\nconst getCurrentHeight = node => ({\n height: node ? node.offsetHeight : 0\n});\nconst skipOpacityTransition = (_, event) => (event === null || event === void 0 ? void 0 : event.deadline) === true || event.propertyName === 'height';\nconst initCollapseMotion = function () {\n let rootCls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'ant';\n return {\n motionName: `${rootCls}-motion-collapse`,\n onAppearStart: getCollapsedHeight,\n onEnterStart: getCollapsedHeight,\n onAppearActive: getRealHeight,\n onEnterActive: getRealHeight,\n onLeaveStart: getCurrentHeight,\n onLeaveActive: getCollapsedHeight,\n onAppearEnd: skipOpacityTransition,\n onEnterEnd: skipOpacityTransition,\n onLeaveEnd: skipOpacityTransition,\n motionDeadline: 500\n };\n};\nconst SelectPlacements = ['bottomLeft', 'bottomRight', 'topLeft', 'topRight'];\nconst getTransitionDirection = placement => {\n if (placement !== undefined && (placement === 'topLeft' || placement === 'topRight')) {\n return `slide-down`;\n }\n return `slide-up`;\n};\nconst getTransitionName = (rootPrefixCls, motion, transitionName) => {\n if (transitionName !== undefined) {\n return transitionName;\n }\n return `${rootPrefixCls}-${motion}`;\n};\nexport { getTransitionName, getTransitionDirection };\nexport default initCollapseMotion;","import * as React from 'react';\nexport default function useDebounce(value) {\n const [cacheValue, setCacheValue] = React.useState(value);\n React.useEffect(() => {\n const timeout = setTimeout(() => {\n setCacheValue(value);\n }, value.length ? 0 : 10);\n return () => {\n clearTimeout(timeout);\n };\n }, [value]);\n return cacheValue;\n}","const initMotionCommon = duration => ({\n animationDuration: duration,\n animationFillMode: 'both'\n});\n// FIXME: origin less code seems same as initMotionCommon. Maybe we can safe remove\nconst initMotionCommonLeave = duration => ({\n animationDuration: duration,\n animationFillMode: 'both'\n});\nexport const initMotion = function (motionCls, inKeyframes, outKeyframes, duration) {\n let sameLevel = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n const sameLevelPrefix = sameLevel ? '&' : '';\n return {\n [`\n ${sameLevelPrefix}${motionCls}-enter,\n ${sameLevelPrefix}${motionCls}-appear\n `]: Object.assign(Object.assign({}, initMotionCommon(duration)), {\n animationPlayState: 'paused'\n }),\n [`${sameLevelPrefix}${motionCls}-leave`]: Object.assign(Object.assign({}, initMotionCommonLeave(duration)), {\n animationPlayState: 'paused'\n }),\n [`\n ${sameLevelPrefix}${motionCls}-enter${motionCls}-enter-active,\n ${sameLevelPrefix}${motionCls}-appear${motionCls}-appear-active\n `]: {\n animationName: inKeyframes,\n animationPlayState: 'running'\n },\n [`${sameLevelPrefix}${motionCls}-leave${motionCls}-leave-active`]: {\n animationName: outKeyframes,\n animationPlayState: 'running',\n pointerEvents: 'none'\n }\n };\n};","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const zoomIn = new Keyframes('antZoomIn', {\n '0%': {\n transform: 'scale(0.2)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 1\n }\n});\nexport const zoomOut = new Keyframes('antZoomOut', {\n '0%': {\n transform: 'scale(1)'\n },\n '100%': {\n transform: 'scale(0.2)',\n opacity: 0\n }\n});\nexport const zoomBigIn = new Keyframes('antZoomBigIn', {\n '0%': {\n transform: 'scale(0.8)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 1\n }\n});\nexport const zoomBigOut = new Keyframes('antZoomBigOut', {\n '0%': {\n transform: 'scale(1)'\n },\n '100%': {\n transform: 'scale(0.8)',\n opacity: 0\n }\n});\nexport const zoomUpIn = new Keyframes('antZoomUpIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '50% 0%'\n }\n});\nexport const zoomUpOut = new Keyframes('antZoomUpOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '50% 0%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 0%',\n opacity: 0\n }\n});\nexport const zoomLeftIn = new Keyframes('antZoomLeftIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '0% 50%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '0% 50%'\n }\n});\nexport const zoomLeftOut = new Keyframes('antZoomLeftOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '0% 50%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '0% 50%',\n opacity: 0\n }\n});\nexport const zoomRightIn = new Keyframes('antZoomRightIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '100% 50%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '100% 50%'\n }\n});\nexport const zoomRightOut = new Keyframes('antZoomRightOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '100% 50%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '100% 50%',\n opacity: 0\n }\n});\nexport const zoomDownIn = new Keyframes('antZoomDownIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 100%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '50% 100%'\n }\n});\nexport const zoomDownOut = new Keyframes('antZoomDownOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '50% 100%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 100%',\n opacity: 0\n }\n});\nconst zoomMotion = {\n zoom: {\n inKeyframes: zoomIn,\n outKeyframes: zoomOut\n },\n 'zoom-big': {\n inKeyframes: zoomBigIn,\n outKeyframes: zoomBigOut\n },\n 'zoom-big-fast': {\n inKeyframes: zoomBigIn,\n outKeyframes: zoomBigOut\n },\n 'zoom-left': {\n inKeyframes: zoomLeftIn,\n outKeyframes: zoomLeftOut\n },\n 'zoom-right': {\n inKeyframes: zoomRightIn,\n outKeyframes: zoomRightOut\n },\n 'zoom-up': {\n inKeyframes: zoomUpIn,\n outKeyframes: zoomUpOut\n },\n 'zoom-down': {\n inKeyframes: zoomDownIn,\n outKeyframes: zoomDownOut\n }\n};\nexport const initZoomMotion = (token, motionName) => {\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-${motionName}`;\n const {\n inKeyframes,\n outKeyframes\n } = zoomMotion[motionName];\n return [initMotion(motionCls, inKeyframes, outKeyframes, motionName === 'zoom-big-fast' ? token.motionDurationFast : token.motionDurationMid), {\n [`\n ${motionCls}-enter,\n ${motionCls}-appear\n `]: {\n transform: 'scale(0)',\n opacity: 0,\n animationTimingFunction: token.motionEaseOutCirc,\n '&-prepare': {\n transform: 'none'\n }\n },\n [`${motionCls}-leave`]: {\n animationTimingFunction: token.motionEaseInOutCirc\n }\n }];\n};","const genCollapseMotion = token => ({\n [token.componentCls]: {\n // For common/openAnimation\n [`${token.antCls}-motion-collapse-legacy`]: {\n overflow: 'hidden',\n '&-active': {\n transition: `height ${token.motionDurationMid} ${token.motionEaseInOut},\n opacity ${token.motionDurationMid} ${token.motionEaseInOut} !important`\n }\n },\n [`${token.antCls}-motion-collapse`]: {\n overflow: 'hidden',\n transition: `height ${token.motionDurationMid} ${token.motionEaseInOut},\n opacity ${token.motionDurationMid} ${token.motionEaseInOut} !important`\n }\n }\n});\nexport default genCollapseMotion;","const genFormValidateMotionStyle = token => {\n const {\n componentCls\n } = token;\n const helpCls = `${componentCls}-show-help`;\n const helpItemCls = `${componentCls}-show-help-item`;\n return {\n [helpCls]: {\n // Explain holder\n transition: `opacity ${token.motionDurationSlow} ${token.motionEaseInOut}`,\n '&-appear, &-enter': {\n opacity: 0,\n '&-active': {\n opacity: 1\n }\n },\n '&-leave': {\n opacity: 1,\n '&-active': {\n opacity: 0\n }\n },\n // Explain\n [helpItemCls]: {\n overflow: 'hidden',\n transition: `height ${token.motionDurationSlow} ${token.motionEaseInOut},\n opacity ${token.motionDurationSlow} ${token.motionEaseInOut},\n transform ${token.motionDurationSlow} ${token.motionEaseInOut} !important`,\n [`&${helpItemCls}-appear, &${helpItemCls}-enter`]: {\n transform: `translateY(-5px)`,\n opacity: 0,\n [`&-active`]: {\n transform: 'translateY(0)',\n opacity: 1\n }\n },\n [`&${helpItemCls}-leave-active`]: {\n transform: `translateY(-5px)`\n }\n }\n }\n };\n};\nexport default genFormValidateMotionStyle;","import { genCollapseMotion, zoomIn } from '../../style/motion';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport { resetComponent } from '../../style';\nimport genFormValidateMotionStyle from './explain';\nconst resetForm = token => ({\n legend: {\n display: 'block',\n width: '100%',\n marginBottom: token.marginLG,\n padding: 0,\n color: token.colorTextDescription,\n fontSize: token.fontSizeLG,\n lineHeight: 'inherit',\n border: 0,\n borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`\n },\n label: {\n fontSize: token.fontSize\n },\n 'input[type=\"search\"]': {\n boxSizing: 'border-box'\n },\n // Position radios and checkboxes better\n 'input[type=\"radio\"], input[type=\"checkbox\"]': {\n lineHeight: 'normal'\n },\n 'input[type=\"file\"]': {\n display: 'block'\n },\n // Make range inputs behave like textual form controls\n 'input[type=\"range\"]': {\n display: 'block',\n width: '100%'\n },\n // Make multiple select elements height not fixed\n 'select[multiple], select[size]': {\n height: 'auto'\n },\n // Focus for file, radio, and checkbox\n [`input[type='file']:focus,\n input[type='radio']:focus,\n input[type='checkbox']:focus`]: {\n outline: 0,\n boxShadow: `0 0 0 ${token.controlOutlineWidth}px ${token.controlOutline}`\n },\n // Adjust output element\n output: {\n display: 'block',\n paddingTop: 15,\n color: token.colorText,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight\n }\n});\nconst genFormSize = (token, height) => {\n const {\n formItemCls\n } = token;\n return {\n [formItemCls]: {\n [`${formItemCls}-label > label`]: {\n height\n },\n [`${formItemCls}-control-input`]: {\n minHeight: height\n }\n }\n };\n};\nconst genFormStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [token.componentCls]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), resetForm(token)), {\n [`${componentCls}-text`]: {\n display: 'inline-block',\n paddingInlineEnd: token.paddingSM\n },\n // ================================================================\n // = Size =\n // ================================================================\n '&-small': Object.assign({}, genFormSize(token, token.controlHeightSM)),\n '&-large': Object.assign({}, genFormSize(token, token.controlHeightLG))\n })\n };\n};\nconst genFormItemStyle = token => {\n const {\n formItemCls,\n iconCls,\n componentCls,\n rootPrefixCls\n } = token;\n return {\n [formItemCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n marginBottom: token.marginLG,\n verticalAlign: 'top',\n '&-with-help': {\n transition: 'none'\n },\n [`&-hidden,\n &-hidden.${rootPrefixCls}-row`]: {\n // https://github.com/ant-design/ant-design/issues/26141\n display: 'none'\n },\n '&-has-warning': {\n [`${formItemCls}-split`]: {\n color: token.colorError\n }\n },\n '&-has-error': {\n [`${formItemCls}-split`]: {\n color: token.colorWarning\n }\n },\n // ==============================================================\n // = Label =\n // ==============================================================\n [`${formItemCls}-label`]: {\n display: 'inline-block',\n flexGrow: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textAlign: 'end',\n verticalAlign: 'middle',\n '&-left': {\n textAlign: 'start'\n },\n '&-wrap': {\n overflow: 'unset',\n lineHeight: `${token.lineHeight} - 0.25em`,\n whiteSpace: 'unset'\n },\n '> label': {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n maxWidth: '100%',\n height: token.controlHeight,\n color: token.colorTextHeading,\n fontSize: token.fontSize,\n [`> ${iconCls}`]: {\n fontSize: token.fontSize,\n verticalAlign: 'top'\n },\n // Required mark\n [`&${formItemCls}-required:not(${formItemCls}-required-mark-optional)::before`]: {\n display: 'inline-block',\n marginInlineEnd: token.marginXXS,\n color: token.colorError,\n fontSize: token.fontSize,\n fontFamily: 'SimSun, sans-serif',\n lineHeight: 1,\n content: '\"*\"',\n [`${componentCls}-hide-required-mark &`]: {\n display: 'none'\n }\n },\n // Optional mark\n [`${formItemCls}-optional`]: {\n display: 'inline-block',\n marginInlineStart: token.marginXXS,\n color: token.colorTextDescription,\n [`${componentCls}-hide-required-mark &`]: {\n display: 'none'\n }\n },\n // Optional mark\n [`${formItemCls}-tooltip`]: {\n color: token.colorTextDescription,\n cursor: 'help',\n writingMode: 'horizontal-tb',\n marginInlineStart: token.marginXXS\n },\n '&::after': {\n content: '\":\"',\n position: 'relative',\n marginBlock: 0,\n marginInlineStart: token.marginXXS / 2,\n marginInlineEnd: token.marginXS\n },\n [`&${formItemCls}-no-colon::after`]: {\n content: '\" \"'\n }\n }\n },\n // ==============================================================\n // = Input =\n // ==============================================================\n [`${formItemCls}-control`]: {\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n [`&:first-child:not([class^=\"'${rootPrefixCls}-col-'\"]):not([class*=\"' ${rootPrefixCls}-col-'\"])`]: {\n width: '100%'\n },\n '&-input': {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n minHeight: token.controlHeight,\n '&-content': {\n flex: 'auto',\n maxWidth: '100%'\n }\n }\n },\n // ==============================================================\n // = Explain =\n // ==============================================================\n [formItemCls]: {\n '&-explain, &-extra': {\n clear: 'both',\n color: token.colorTextDescription,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight\n },\n '&-explain-connected': {\n width: '100%'\n },\n '&-extra': {\n minHeight: token.controlHeightSM,\n transition: `color ${token.motionDurationMid} ${token.motionEaseOut}` // sync input color transition\n },\n\n '&-explain': {\n '&-error': {\n color: token.colorError\n },\n '&-warning': {\n color: token.colorWarning\n }\n }\n },\n [`&-with-help ${formItemCls}-explain`]: {\n height: 'auto',\n opacity: 1\n },\n // ==============================================================\n // = Feedback Icon =\n // ==============================================================\n [`${formItemCls}-feedback-icon`]: {\n fontSize: token.fontSize,\n textAlign: 'center',\n visibility: 'visible',\n animationName: zoomIn,\n animationDuration: token.motionDurationMid,\n animationTimingFunction: token.motionEaseOutBack,\n pointerEvents: 'none',\n '&-success': {\n color: token.colorSuccess\n },\n '&-error': {\n color: token.colorError\n },\n '&-warning': {\n color: token.colorWarning\n },\n '&-validating': {\n color: token.colorPrimary\n }\n }\n })\n };\n};\nconst genHorizontalStyle = token => {\n const {\n componentCls,\n formItemCls,\n rootPrefixCls\n } = token;\n return {\n [`${componentCls}-horizontal`]: {\n [`${formItemCls}-label`]: {\n flexGrow: 0\n },\n [`${formItemCls}-control`]: {\n flex: '1 1 0',\n // https://github.com/ant-design/ant-design/issues/32777\n // https://github.com/ant-design/ant-design/issues/33773\n minWidth: 0\n },\n // https://github.com/ant-design/ant-design/issues/32980\n [`${formItemCls}-label.${rootPrefixCls}-col-24 + ${formItemCls}-control`]: {\n minWidth: 'unset'\n }\n }\n };\n};\nconst genInlineStyle = token => {\n const {\n componentCls,\n formItemCls\n } = token;\n return {\n [`${componentCls}-inline`]: {\n display: 'flex',\n flexWrap: 'wrap',\n [formItemCls]: {\n flex: 'none',\n marginInlineEnd: token.margin,\n marginBottom: 0,\n '&-row': {\n flexWrap: 'nowrap'\n },\n '&-with-help': {\n marginBottom: token.marginLG\n },\n [`> ${formItemCls}-label,\n > ${formItemCls}-control`]: {\n display: 'inline-block',\n verticalAlign: 'top'\n },\n [`> ${formItemCls}-label`]: {\n flex: 'none'\n },\n [`${componentCls}-text`]: {\n display: 'inline-block'\n },\n [`${formItemCls}-has-feedback`]: {\n display: 'inline-block'\n }\n }\n }\n };\n};\nconst makeVerticalLayoutLabel = token => ({\n margin: 0,\n padding: `0 0 ${token.paddingXS}px`,\n whiteSpace: 'initial',\n textAlign: 'start',\n '> label': {\n margin: 0,\n '&::after': {\n display: 'none'\n }\n }\n});\nconst makeVerticalLayout = token => {\n const {\n componentCls,\n formItemCls\n } = token;\n return {\n [`${formItemCls} ${formItemCls}-label`]: makeVerticalLayoutLabel(token),\n [componentCls]: {\n [formItemCls]: {\n flexWrap: 'wrap',\n [`${formItemCls}-label,\n ${formItemCls}-control`]: {\n flex: '0 0 100%',\n maxWidth: '100%'\n }\n }\n }\n };\n};\nconst genVerticalStyle = token => {\n const {\n componentCls,\n formItemCls,\n rootPrefixCls\n } = token;\n return {\n [`${componentCls}-vertical`]: {\n [formItemCls]: {\n '&-row': {\n flexDirection: 'column'\n },\n '&-label > label': {\n height: 'auto'\n },\n [`${componentCls}-item-control`]: {\n width: '100%'\n }\n }\n },\n [`${componentCls}-vertical ${formItemCls}-label,\n .${rootPrefixCls}-col-24${formItemCls}-label,\n .${rootPrefixCls}-col-xl-24${formItemCls}-label`]: makeVerticalLayoutLabel(token),\n [`@media (max-width: ${token.screenXSMax}px)`]: [makeVerticalLayout(token), {\n [componentCls]: {\n [`.${rootPrefixCls}-col-xs-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }],\n [`@media (max-width: ${token.screenSMMax}px)`]: {\n [componentCls]: {\n [`.${rootPrefixCls}-col-sm-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n },\n [`@media (max-width: ${token.screenMDMax}px)`]: {\n [componentCls]: {\n [`.${rootPrefixCls}-col-md-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n },\n [`@media (max-width: ${token.screenLGMax}px)`]: {\n [componentCls]: {\n [`.${rootPrefixCls}-col-lg-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Form', (token, _ref) => {\n let {\n rootPrefixCls\n } = _ref;\n const formToken = mergeToken(token, {\n formItemCls: `${token.componentCls}-item`,\n rootPrefixCls\n });\n return [genFormStyle(formToken), genFormItemStyle(formToken), genFormValidateMotionStyle(formToken), genHorizontalStyle(formToken), genInlineStyle(formToken), genVerticalStyle(formToken), genCollapseMotion(formToken), zoomIn];\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport CSSMotion, { CSSMotionList } from 'rc-motion';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport initCollapseMotion from '../_util/motion';\nimport { FormItemPrefixContext } from './context';\nimport useDebounce from './hooks/useDebounce';\nimport useStyle from './style';\nconst EMPTY_LIST = [];\nfunction toErrorEntity(error, prefix, errorStatus) {\n let index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n return {\n key: typeof error === 'string' ? error : `${prefix}-${index}`,\n error,\n errorStatus\n };\n}\nexport default function ErrorList(_ref) {\n let {\n help,\n helpStatus,\n errors = EMPTY_LIST,\n warnings = EMPTY_LIST,\n className: rootClassName,\n fieldId,\n onVisibleChanged\n } = _ref;\n const {\n prefixCls\n } = React.useContext(FormItemPrefixContext);\n const baseClassName = `${prefixCls}-item-explain`;\n const [, hashId] = useStyle(prefixCls);\n const collapseMotion = useMemo(() => initCollapseMotion(prefixCls), [prefixCls]);\n // We have to debounce here again since somewhere use ErrorList directly still need no shaking\n // ref: https://github.com/ant-design/ant-design/issues/36336\n const debounceErrors = useDebounce(errors);\n const debounceWarnings = useDebounce(warnings);\n const fullKeyList = React.useMemo(() => {\n if (help !== undefined && help !== null) {\n return [toErrorEntity(help, 'help', helpStatus)];\n }\n return [].concat(_toConsumableArray(debounceErrors.map((error, index) => toErrorEntity(error, 'error', 'error', index))), _toConsumableArray(debounceWarnings.map((warning, index) => toErrorEntity(warning, 'warning', 'warning', index))));\n }, [help, helpStatus, debounceErrors, debounceWarnings]);\n const helpProps = {};\n if (fieldId) {\n helpProps.id = `${fieldId}_help`;\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n motionDeadline: collapseMotion.motionDeadline,\n motionName: `${prefixCls}-show-help`,\n visible: !!fullKeyList.length,\n onVisibleChanged: onVisibleChanged\n }, holderProps => {\n const {\n className: holderClassName,\n style: holderStyle\n } = holderProps;\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, helpProps, {\n className: classNames(baseClassName, holderClassName, rootClassName, hashId),\n style: holderStyle,\n role: \"alert\"\n }), /*#__PURE__*/React.createElement(CSSMotionList, Object.assign({\n keys: fullKeyList\n }, initCollapseMotion(prefixCls), {\n motionName: `${prefixCls}-show-help-item`,\n component: false\n }), itemProps => {\n const {\n key,\n error,\n errorStatus,\n className: itemClassName,\n style: itemStyle\n } = itemProps;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n className: classNames(itemClassName, {\n [`${baseClassName}-${errorStatus}`]: errorStatus\n }),\n style: itemStyle\n }, error);\n }));\n });\n}","// Compute what scrolling needs to be done on required scrolling boxes for target to be in view\n\n// The type names here are named after the spec to make it easier to find more information around what they mean:\n// To reduce churn and reduce things that need be maintained things from the official TS DOM library is used here\n// https://drafts.csswg.org/cssom-view/\n\n// For a definition on what is \"block flow direction\" exactly, check this: https://drafts.csswg.org/css-writing-modes-4/#block-flow-direction\n\n/**\n * This new option is tracked in this PR, which is the most likely candidate at the time: https://github.com/w3c/csswg-drafts/pull/1805\n * @public\n */\nexport type ScrollMode = 'always' | 'if-needed'\n\n/** @public */\nexport interface Options {\n /**\n * Control the logical scroll position on the y-axis. The spec states that the `block` direction is related to the [writing-mode](https://developer.mozilla.org/en-US/docs/Web/CSS/writing-mode), but this is not implemented yet in this library.\n * This means that `block: 'start'` aligns to the top edge and `block: 'end'` to the bottom.\n * @defaultValue 'center'\n */\n block?: ScrollLogicalPosition\n /**\n * Like `block` this is affected by the [writing-mode](https://developer.mozilla.org/en-US/docs/Web/CSS/writing-mode). In left-to-right pages `inline: 'start'` will align to the left edge. In right-to-left it should be flipped. This will be supported in a future release.\n * @defaultValue 'nearest'\n */\n inline?: ScrollLogicalPosition\n /**\n * This is a proposed addition to the spec that you can track here: https://github.com/w3c/csswg-drafts/pull/5677\n *\n * This library will be updated to reflect any changes to the spec and will provide a migration path.\n * To be backwards compatible with `Element.scrollIntoViewIfNeeded` if something is not 100% visible it will count as \"needs scrolling\". If you need a different visibility ratio your best option would be to implement an [Intersection Observer](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API).\n * @defaultValue 'always'\n */\n scrollMode?: ScrollMode\n /**\n * By default there is no boundary. All the parent elements of your target is checked until it reaches the viewport ([`document.scrollingElement`](https://developer.mozilla.org/en-US/docs/Web/API/document/scrollingElement)) when calculating layout and what to scroll.\n * By passing a boundary you can short-circuit this loop depending on your needs:\n * \n * - Prevent the browser window from scrolling.\n * - Scroll elements into view in a list, without scrolling container elements.\n * \n * You can also pass a function to do more dynamic checks to override the scroll scoping:\n * \n * ```js\n * let actions = compute(target, {\n * boundary: (parent) => {\n * // By default `overflow: hidden` elements are allowed, only `overflow: visible | clip` is skipped as\n * // this is required by the CSSOM spec\n * if (getComputedStyle(parent)['overflow'] === 'hidden') {\n * return false\n * }\n\n * return true\n * },\n * })\n * ```\n * @defaultValue null\n */\n boundary?: Element | ((parent: Element) => boolean) | null\n /**\n * New option that skips auto-scrolling all nodes with overflow: hidden set\n * See FF implementation: https://hg.mozilla.org/integration/fx-team/rev/c48c3ec05012#l7.18\n * @defaultValue false\n * @public\n */\n skipOverflowHiddenElements?: boolean\n}\n\n/** @public */\nexport interface ScrollAction {\n el: Element\n top: number\n left: number\n}\n\n// @TODO better shadowdom test, 11 = document fragment\nconst isElement = (el: any): el is Element =>\n typeof el === 'object' && el != null && el.nodeType === 1\n\nconst canOverflow = (\n overflow: string | null,\n skipOverflowHiddenElements?: boolean\n) => {\n if (skipOverflowHiddenElements && overflow === 'hidden') {\n return false\n }\n\n return overflow !== 'visible' && overflow !== 'clip'\n}\n\nconst getFrameElement = (el: Element) => {\n if (!el.ownerDocument || !el.ownerDocument.defaultView) {\n return null\n }\n\n try {\n return el.ownerDocument.defaultView.frameElement\n } catch (e) {\n return null\n }\n}\n\nconst isHiddenByFrame = (el: Element): boolean => {\n const frame = getFrameElement(el)\n if (!frame) {\n return false\n }\n\n return (\n frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth\n )\n}\n\nconst isScrollable = (el: Element, skipOverflowHiddenElements?: boolean) => {\n if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {\n const style = getComputedStyle(el, null)\n return (\n canOverflow(style.overflowY, skipOverflowHiddenElements) ||\n canOverflow(style.overflowX, skipOverflowHiddenElements) ||\n isHiddenByFrame(el)\n )\n }\n\n return false\n}\n/**\n * Find out which edge to align against when logical scroll position is \"nearest\"\n * Interesting fact: \"nearest\" works similarily to \"if-needed\", if the element is fully visible it will not scroll it\n *\n * Legends:\n * ┌────────┐ ┏ ━ ━ ━ ┓\n * │ target │ frame\n * └────────┘ ┗ ━ ━ ━ ┛\n */\nconst alignNearest = (\n scrollingEdgeStart: number,\n scrollingEdgeEnd: number,\n scrollingSize: number,\n scrollingBorderStart: number,\n scrollingBorderEnd: number,\n elementEdgeStart: number,\n elementEdgeEnd: number,\n elementSize: number\n) => {\n /**\n * If element edge A and element edge B are both outside scrolling box edge A and scrolling box edge B\n *\n * ┌──┐\n * ┏━│━━│━┓\n * │ │\n * ┃ │ │ ┃ do nothing\n * │ │\n * ┗━│━━│━┛\n * └──┘\n *\n * If element edge C and element edge D are both outside scrolling box edge C and scrolling box edge D\n *\n * ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐\n * │┃ ┃│ do nothing\n * └───────────┘\n * ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart < scrollingEdgeStart &&\n elementEdgeEnd > scrollingEdgeEnd) ||\n (elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd)\n ) {\n return 0\n }\n\n /**\n * If element edge A is outside scrolling box edge A and element height is less than scrolling box height\n *\n * ┌──┐\n * ┏━│━━│━┓ ┏━┌━━┐━┓\n * └──┘ │ │\n * from ┃ ┃ to ┃ └──┘ ┃\n *\n * ┗━ ━━ ━┛ ┗━ ━━ ━┛\n *\n * If element edge B is outside scrolling box edge B and element height is greater than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━┌━━┐━┓\n * │ │\n * from ┃ ┌──┐ ┃ to ┃ │ │ ┃\n * │ │ │ │\n * ┗━│━━│━┛ ┗━│━━│━┛\n * │ │ └──┘\n * │ │\n * └──┘\n *\n * If element edge C is outside scrolling box edge C and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * │ ┃ │ ┃ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * ┃ │ ┃ │ ┃ ┃ │\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize) ||\n (elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize)\n ) {\n return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart\n }\n\n /**\n * If element edge B is outside scrolling box edge B and element height is less than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━ ━━ ━┓\n *\n * from ┃ ┃ to ┃ ┌──┐ ┃\n * ┌──┐ │ │\n * ┗━│━━│━┛ ┗━└━━┘━┛\n * └──┘\n *\n * If element edge A is outside scrolling box edge A and element height is greater than scrolling box height\n *\n * ┌──┐\n * │ │\n * │ │ ┌──┐\n * ┏━│━━│━┓ ┏━│━━│━┓\n * │ │ │ │\n * from ┃ └──┘ ┃ to ┃ │ │ ┃\n * │ │\n * ┗━ ━━ ━┛ ┗━└━━┘━┛\n *\n * If element edge C is outside scrolling box edge C and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * │ ┃ │ ┃ │ ┃ ┃\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * ┃ │ ┃ │ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n */\n if (\n (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize) ||\n (elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize)\n ) {\n return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd\n }\n\n return 0\n}\n\nconst getParentElement = (element: Node): Element | null => {\n const parent = element.parentElement\n if (parent == null) {\n return (element.getRootNode() as ShadowRoot).host || null\n }\n return parent\n}\n\n/** @public */\nexport const compute = (target: Element, options: Options): ScrollAction[] => {\n if (typeof document === 'undefined') {\n // If there's no DOM we assume it's not in a browser environment\n return []\n }\n\n const { scrollMode, block, inline, boundary, skipOverflowHiddenElements } =\n options\n // Allow using a callback to check the boundary\n // The default behavior is to check if the current target matches the boundary element or not\n // If undefined it'll check that target is never undefined (can happen as we recurse up the tree)\n const checkBoundary =\n typeof boundary === 'function' ? boundary : (node: any) => node !== boundary\n\n if (!isElement(target)) {\n throw new TypeError('Invalid target')\n }\n\n // Used to handle the top most element that can be scrolled\n const scrollingElement = document.scrollingElement || document.documentElement\n\n // Collect all the scrolling boxes, as defined in the spec: https://drafts.csswg.org/cssom-view/#scrolling-box\n const frames: Element[] = []\n let cursor: Element | null = target\n while (isElement(cursor) && checkBoundary(cursor)) {\n // Move cursor to parent\n cursor = getParentElement(cursor)\n\n // Stop when we reach the viewport\n if (cursor === scrollingElement) {\n frames.push(cursor)\n break\n }\n\n // Skip document.body if it's not the scrollingElement and documentElement isn't independently scrollable\n if (\n cursor != null &&\n cursor === document.body &&\n isScrollable(cursor) &&\n !isScrollable(document.documentElement)\n ) {\n continue\n }\n\n // Now we check if the element is scrollable, this code only runs if the loop haven't already hit the viewport or a custom boundary\n if (cursor != null && isScrollable(cursor, skipOverflowHiddenElements)) {\n frames.push(cursor)\n }\n }\n\n // Support pinch-zooming properly, making sure elements scroll into the visual viewport\n // Browsers that don't support visualViewport will report the layout viewport dimensions on document.documentElement.clientWidth/Height\n // and viewport dimensions on window.innerWidth/Height\n // https://www.quirksmode.org/mobile/viewports2.html\n // https://bokand.github.io/viewport/index.html\n const viewportWidth = window.visualViewport?.width ?? innerWidth\n const viewportHeight = window.visualViewport?.height ?? innerHeight\n const { scrollX, scrollY } = window\n\n const {\n height: targetHeight,\n width: targetWidth,\n top: targetTop,\n right: targetRight,\n bottom: targetBottom,\n left: targetLeft,\n } = target.getBoundingClientRect()\n\n // These values mutate as we loop through and generate scroll coordinates\n let targetBlock: number =\n block === 'start' || block === 'nearest'\n ? targetTop\n : block === 'end'\n ? targetBottom\n : targetTop + targetHeight / 2 // block === 'center\n let targetInline: number =\n inline === 'center'\n ? targetLeft + targetWidth / 2\n : inline === 'end'\n ? targetRight\n : targetLeft // inline === 'start || inline === 'nearest\n\n // Collect new scroll positions\n const computations: ScrollAction[] = []\n // In chrome there's no longer a difference between caching the `frames.length` to a var or not, so we don't in this case (size > speed anyways)\n for (let index = 0; index < frames.length; index++) {\n const frame = frames[index]\n\n // @TODO add a shouldScroll hook here that allows userland code to take control\n\n const { height, width, top, right, bottom, left } =\n frame.getBoundingClientRect()\n\n // If the element is already visible we can end it here\n // @TODO targetBlock and targetInline should be taken into account to be compliant with https://github.com/w3c/csswg-drafts/pull/1805/files#diff-3c17f0e43c20f8ecf89419d49e7ef5e0R1333\n if (\n scrollMode === 'if-needed' &&\n targetTop >= 0 &&\n targetLeft >= 0 &&\n targetBottom <= viewportHeight &&\n targetRight <= viewportWidth &&\n targetTop >= top &&\n targetBottom <= bottom &&\n targetLeft >= left &&\n targetRight <= right\n ) {\n // Break the loop and return the computations for things that are not fully visible\n return computations\n }\n\n const frameStyle = getComputedStyle(frame)\n const borderLeft = parseInt(frameStyle.borderLeftWidth as string, 10)\n const borderTop = parseInt(frameStyle.borderTopWidth as string, 10)\n const borderRight = parseInt(frameStyle.borderRightWidth as string, 10)\n const borderBottom = parseInt(frameStyle.borderBottomWidth as string, 10)\n\n let blockScroll: number = 0\n let inlineScroll: number = 0\n\n // The property existance checks for offfset[Width|Height] is because only HTMLElement objects have them, but any Element might pass by here\n // @TODO find out if the \"as HTMLElement\" overrides can be dropped\n const scrollbarWidth =\n 'offsetWidth' in frame\n ? (frame as HTMLElement).offsetWidth -\n (frame as HTMLElement).clientWidth -\n borderLeft -\n borderRight\n : 0\n const scrollbarHeight =\n 'offsetHeight' in frame\n ? (frame as HTMLElement).offsetHeight -\n (frame as HTMLElement).clientHeight -\n borderTop -\n borderBottom\n : 0\n\n const scaleX =\n 'offsetWidth' in frame\n ? (frame as HTMLElement).offsetWidth === 0\n ? 0\n : width / (frame as HTMLElement).offsetWidth\n : 0\n const scaleY =\n 'offsetHeight' in frame\n ? (frame as HTMLElement).offsetHeight === 0\n ? 0\n : height / (frame as HTMLElement).offsetHeight\n : 0\n\n if (scrollingElement === frame) {\n // Handle viewport logic (document.documentElement or document.body)\n\n if (block === 'start') {\n blockScroll = targetBlock\n } else if (block === 'end') {\n blockScroll = targetBlock - viewportHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n scrollY,\n scrollY + viewportHeight,\n viewportHeight,\n borderTop,\n borderBottom,\n scrollY + targetBlock,\n scrollY + targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - viewportHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline\n } else if (inline === 'center') {\n inlineScroll = targetInline - viewportWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - viewportWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n scrollX,\n scrollX + viewportWidth,\n viewportWidth,\n borderLeft,\n borderRight,\n scrollX + targetInline,\n scrollX + targetInline + targetWidth,\n targetWidth\n )\n }\n\n // Apply scroll position offsets and ensure they are within bounds\n // @TODO add more test cases to cover this 100%\n blockScroll = Math.max(0, blockScroll + scrollY)\n inlineScroll = Math.max(0, inlineScroll + scrollX)\n } else {\n // Handle each scrolling frame that might exist between the target and the viewport\n if (block === 'start') {\n blockScroll = targetBlock - top - borderTop\n } else if (block === 'end') {\n blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n top,\n bottom,\n height,\n borderTop,\n borderBottom + scrollbarHeight,\n targetBlock,\n targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline - left - borderLeft\n } else if (inline === 'center') {\n inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - right + borderRight + scrollbarWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n left,\n right,\n width,\n borderLeft,\n borderRight + scrollbarWidth,\n targetInline,\n targetInline + targetWidth,\n targetWidth\n )\n }\n\n const { scrollLeft, scrollTop } = frame\n // Ensure scroll coordinates are not out of bounds while applying scroll offsets\n blockScroll = Math.max(\n 0,\n Math.min(\n scrollTop + blockScroll / scaleY,\n frame.scrollHeight - height / scaleY + scrollbarHeight\n )\n )\n inlineScroll = Math.max(\n 0,\n Math.min(\n scrollLeft + inlineScroll / scaleX,\n frame.scrollWidth - width / scaleX + scrollbarWidth\n )\n )\n\n // Cache the offset so that parent frames can scroll this into view correctly\n targetBlock += scrollTop - blockScroll\n targetInline += scrollLeft - inlineScroll\n }\n\n computations.push({ el: frame, top: blockScroll, left: inlineScroll })\n }\n\n return computations\n}\n","import { compute } from 'compute-scroll-into-view'\nimport type {\n Options as BaseOptions,\n ScrollAction,\n} from 'compute-scroll-into-view'\n\n/** @public */\nexport type Options =\n | StandardBehaviorOptions\n | CustomBehaviorOptions\n\n/**\n * Only scrolls if the `node` is partially out of view:\n * ```ts\n * scrollIntoView(node, { scrollMode: 'if-needed' })\n * ```\n * Skips scrolling `overflow: hidden` elements:\n * ```ts\n * scrollIntoView(node, { skipOverflowHiddenElements: true })\n * ```\n * When scrolling is needed do the least and smoothest scrolling possible:\n * ```ts\n * scrollIntoView(node, {\n * behavior: 'smooth',\n * scrollMode: 'if-needed',\n * block: 'nearest',\n * inline: 'nearest',\n * })\n * ```\n * @public\n */\nexport interface StandardBehaviorOptions extends BaseOptions {\n /**\n * @defaultValue 'auto\n */\n behavior?: ScrollBehavior\n}\n\n/** @public */\nexport interface CustomBehaviorOptions extends BaseOptions {\n behavior: CustomScrollBehaviorCallback\n}\n\n/** @public */\nexport type CustomScrollBehaviorCallback = (\n actions: ScrollAction[]\n) => T\n\nconst isStandardScrollBehavior = (\n options: any\n): options is StandardBehaviorOptions =>\n options === Object(options) && Object.keys(options).length !== 0\n\nconst isCustomScrollBehavior = (\n options: any\n): options is CustomBehaviorOptions =>\n typeof options === 'object' ? typeof options.behavior === 'function' : false\n\nconst getOptions = (options: any): StandardBehaviorOptions => {\n // Handle alignToTop for legacy reasons, to be compatible with the spec\n if (options === false) {\n return { block: 'end', inline: 'nearest' }\n }\n\n if (isStandardScrollBehavior(options)) {\n // compute.ts ensures the defaults are block: 'center' and inline: 'nearest', to conform to the spec\n return options\n }\n\n // if options = {}, options = true or options = null, based on w3c web platform test\n return { block: 'start', inline: 'nearest' }\n}\n\n// Determine if the element is part of the document (including shadow dom)\n// Derived from code of Andy Desmarais\n// https://terodox.tech/how-to-tell-if-an-element-is-in-the-dom-including-the-shadow-dom/\nconst isInDocument = (element: Node) => {\n let currentElement = element\n while (currentElement && currentElement.parentNode) {\n if (currentElement.parentNode === document) {\n return true\n } else if (currentElement.parentNode instanceof ShadowRoot) {\n currentElement = (currentElement.parentNode as ShadowRoot).host\n } else {\n currentElement = currentElement.parentNode\n }\n }\n return false\n}\n\n/**\n * Scrolls the given element into view, with options for when, and how.\n * Supports the same `options` as [`Element.prototype.scrollIntoView`](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView) with additions such as `scrollMode`, `behavior: Function` and `skipOverflowHiddenElements`.\n * @public\n */\nfunction scrollIntoView(\n target: Element,\n options?: StandardBehaviorOptions | boolean\n): void\n/**\n * Scrolls the given element into view, with options for when, and how.\n * Supports the same `options` as [`Element.prototype.scrollIntoView`](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView) with additions such as `scrollMode`, `behavior: Function` and `skipOverflowHiddenElements`.\n *\n * You can set the expected return type for `behavior: Function`:\n * ```ts\n * await scrollIntoView>(node, {\n * behavior: async actions => {\n * return Promise.all(actions.map(\n * // animate() resolves to `true` if anything was animated, `false` if the element already were in the end state\n * ({ el, left, top }) => animate(el, {scroll: {left, top}})\n * ))\n * }\n * })\n * ```\n * @public\n */\nfunction scrollIntoView(\n target: Element,\n options: CustomBehaviorOptions\n): T\nfunction scrollIntoView(\n target: Element,\n options?: StandardBehaviorOptions | CustomBehaviorOptions | boolean\n): T | void {\n // Browsers treats targets that aren't in the dom as a no-op and so should we\n if (!target.isConnected || !isInDocument(target)) {\n return\n }\n\n if (isCustomScrollBehavior(options)) {\n return options.behavior(compute(target, options))\n }\n\n const behavior = typeof options === 'boolean' ? undefined : options?.behavior\n\n for (const { el, top, left } of compute(target, getOptions(options))) {\n el.scroll({ top, left, behavior })\n }\n}\n\nexport default scrollIntoView\n","// form item name black list. in form ,you can use form.id get the form item element.\n// use object hasOwnProperty will get better performance if black list is longer.\nconst formItemNameBlackList = ['parentNode'];\n// default form item id prefix.\nconst defaultItemNamePrefixCls = 'form_item';\nexport function toArray(candidate) {\n if (candidate === undefined || candidate === false) return [];\n return Array.isArray(candidate) ? candidate : [candidate];\n}\nexport function getFieldId(namePath, formName) {\n if (!namePath.length) {\n return undefined;\n }\n const mergedId = namePath.join('_');\n if (formName) {\n return `${formName}_${mergedId}`;\n }\n const isIllegalName = formItemNameBlackList.includes(mergedId);\n return isIllegalName ? `${defaultItemNamePrefixCls}_${mergedId}` : mergedId;\n}","import { useForm as useRcForm } from 'rc-field-form';\nimport * as React from 'react';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport { getFieldId, toArray } from '../util';\nfunction toNamePathStr(name) {\n const namePath = toArray(name);\n return namePath.join('_');\n}\nexport default function useForm(form) {\n const [rcForm] = useRcForm();\n const itemsRef = React.useRef({});\n const wrapForm = React.useMemo(() => form !== null && form !== void 0 ? form : Object.assign(Object.assign({}, rcForm), {\n __INTERNAL__: {\n itemRef: name => node => {\n const namePathStr = toNamePathStr(name);\n if (node) {\n itemsRef.current[namePathStr] = node;\n } else {\n delete itemsRef.current[namePathStr];\n }\n }\n },\n scrollToField: function (name) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const namePath = toArray(name);\n const fieldId = getFieldId(namePath, wrapForm.__INTERNAL__.name);\n const node = fieldId ? document.getElementById(fieldId) : null;\n if (node) {\n scrollIntoView(node, Object.assign({\n scrollMode: 'if-needed',\n block: 'nearest'\n }, options));\n }\n },\n getFieldInstance: name => {\n const namePathStr = toNamePathStr(name);\n return itemsRef.current[namePathStr];\n }\n }), [form, rcForm]);\n return [wrapForm];\n}","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport FieldForm, { List, useWatch } from 'rc-field-form';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext, { DisabledContextProvider } from '../config-provider/DisabledContext';\nimport SizeContext, { SizeContextProvider } from '../config-provider/SizeContext';\nimport { FormContext } from './context';\nimport useForm from './hooks/useForm';\nimport useStyle from './style';\nconst InternalForm = (props, ref) => {\n const contextSize = React.useContext(SizeContext);\n const contextDisabled = React.useContext(DisabledContext);\n const {\n getPrefixCls,\n direction,\n form: contextForm\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n size = contextSize,\n disabled = contextDisabled,\n form,\n colon,\n labelAlign,\n labelWrap,\n labelCol,\n wrapperCol,\n hideRequiredMark,\n layout = 'horizontal',\n scrollToFirstError,\n requiredMark,\n onFinishFailed,\n name\n } = props,\n restFormProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"size\", \"disabled\", \"form\", \"colon\", \"labelAlign\", \"labelWrap\", \"labelCol\", \"wrapperCol\", \"hideRequiredMark\", \"layout\", \"scrollToFirstError\", \"requiredMark\", \"onFinishFailed\", \"name\"]);\n const mergedRequiredMark = useMemo(() => {\n if (requiredMark !== undefined) {\n return requiredMark;\n }\n if (contextForm && contextForm.requiredMark !== undefined) {\n return contextForm.requiredMark;\n }\n if (hideRequiredMark) {\n return false;\n }\n return true;\n }, [hideRequiredMark, requiredMark, contextForm]);\n const mergedColon = colon !== null && colon !== void 0 ? colon : contextForm === null || contextForm === void 0 ? void 0 : contextForm.colon;\n const prefixCls = getPrefixCls('form', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const formClassName = classNames(prefixCls, {\n [`${prefixCls}-${layout}`]: true,\n [`${prefixCls}-hide-required-mark`]: mergedRequiredMark === false,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-${size}`]: size\n }, hashId, className, rootClassName);\n const [wrapForm] = useForm(form);\n const {\n __INTERNAL__\n } = wrapForm;\n __INTERNAL__.name = name;\n const formContextValue = useMemo(() => ({\n name,\n labelAlign,\n labelCol,\n labelWrap,\n wrapperCol,\n vertical: layout === 'vertical',\n colon: mergedColon,\n requiredMark: mergedRequiredMark,\n itemRef: __INTERNAL__.itemRef,\n form: wrapForm\n }), [name, labelAlign, labelCol, wrapperCol, layout, mergedColon, mergedRequiredMark, wrapForm]);\n React.useImperativeHandle(ref, () => wrapForm);\n const scrollToField = (options, fieldName) => {\n if (options) {\n let defaultScrollToFirstError = {\n block: 'nearest'\n };\n if (typeof options === 'object') {\n defaultScrollToFirstError = options;\n }\n wrapForm.scrollToField(fieldName, defaultScrollToFirstError);\n }\n };\n const onInternalFinishFailed = errorInfo => {\n onFinishFailed === null || onFinishFailed === void 0 ? void 0 : onFinishFailed(errorInfo);\n if (errorInfo.errorFields.length) {\n const fieldName = errorInfo.errorFields[0].name;\n if (scrollToFirstError !== undefined) {\n scrollToField(scrollToFirstError, fieldName);\n return;\n }\n if (contextForm && contextForm.scrollToFirstError !== undefined) {\n scrollToField(contextForm.scrollToFirstError, fieldName);\n }\n }\n };\n return wrapSSR( /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: disabled\n }, /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: size\n }, /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: formContextValue\n }, /*#__PURE__*/React.createElement(FieldForm, Object.assign({\n id: name\n }, restFormProps, {\n name: name,\n onFinishFailed: onInternalFinishFailed,\n form: wrapForm,\n className: formClassName\n }))))));\n};\nconst Form = /*#__PURE__*/React.forwardRef(InternalForm);\nexport { useForm, List, useWatch };\nexport default Form;","import { useContext } from 'react';\nimport { FormItemInputContext } from '../context';\nimport warning from '../../_util/warning';\nconst useFormItemStatus = () => {\n const {\n status,\n errors = [],\n warnings = []\n } = useContext(FormItemInputContext);\n process.env.NODE_ENV !== \"production\" ? warning(status !== undefined, 'Form.Item', 'Form.Item.useStatus should be used under Form.Item component. For more information: https://u.ant.design/form-item-usestatus') : void 0;\n return {\n status,\n errors,\n warnings\n };\n};\n// Only used for compatible package. Not promise this will work on future version.\nuseFormItemStatus.Context = FormItemInputContext;\nexport default useFormItemStatus;","import * as React from 'react';\nexport const {\n isValidElement\n} = React;\nexport function isFragment(child) {\n return child && isValidElement(child) && child.type === React.Fragment;\n}\nexport function replaceElement(element, replacement, props) {\n if (!isValidElement(element)) {\n return replacement;\n }\n return /*#__PURE__*/React.cloneElement(element, typeof props === 'function' ? props(element.props || {}) : props);\n}\nexport function cloneElement(element, props) {\n return replaceElement(element, element, props);\n}","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nexport default useLayoutEffect;\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useLayoutEffect(function () {\n if (!firstMountRef.current) {\n return callback();\n }\n }, deps);\n\n // We tell react that first mount has passed\n useLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};","export default (function (element) {\n if (!element) {\n return false;\n }\n if (element instanceof Element) {\n if (element.offsetParent) {\n return true;\n }\n if (element.getBBox) {\n var _getBBox = element.getBBox(),\n width = _getBBox.width,\n height = _getBBox.height;\n if (width || height) {\n return true;\n }\n }\n if (element.getBoundingClientRect) {\n var _element$getBoundingC = element.getBoundingClientRect(),\n _width = _element$getBoundingC.width,\n _height = _element$getBoundingC.height;\n if (_width || _height) {\n return true;\n }\n }\n }\n return false;\n});","import classNames from 'classnames';\nimport * as React from 'react';\nimport Col from '../grid/col';\nimport { FormContext, FormItemPrefixContext } from './context';\nimport ErrorList from './ErrorList';\nconst FormItemInput = props => {\n const {\n prefixCls,\n status,\n wrapperCol,\n children,\n errors,\n warnings,\n _internalItemRender: formItemRender,\n extra,\n help,\n fieldId,\n marginBottom,\n onErrorVisibleChanged\n } = props;\n const baseClassName = `${prefixCls}-item`;\n const formContext = React.useContext(FormContext);\n const mergedWrapperCol = wrapperCol || formContext.wrapperCol || {};\n const className = classNames(`${baseClassName}-control`, mergedWrapperCol.className);\n // Pass to sub FormItem should not with col info\n const subFormContext = React.useMemo(() => Object.assign({}, formContext), [formContext]);\n delete subFormContext.labelCol;\n delete subFormContext.wrapperCol;\n const inputDom = /*#__PURE__*/React.createElement(\"div\", {\n className: `${baseClassName}-control-input`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${baseClassName}-control-input-content`\n }, children));\n const formItemContext = React.useMemo(() => ({\n prefixCls,\n status\n }), [prefixCls, status]);\n const errorListDom = marginBottom !== null || errors.length || warnings.length ? /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'flex',\n flexWrap: 'nowrap'\n }\n }, /*#__PURE__*/React.createElement(FormItemPrefixContext.Provider, {\n value: formItemContext\n }, /*#__PURE__*/React.createElement(ErrorList, {\n fieldId: fieldId,\n errors: errors,\n warnings: warnings,\n help: help,\n helpStatus: status,\n className: `${baseClassName}-explain-connected`,\n onVisibleChanged: onErrorVisibleChanged\n })), !!marginBottom && /*#__PURE__*/React.createElement(\"div\", {\n style: {\n width: 0,\n height: marginBottom\n }\n })) : null;\n const extraProps = {};\n if (fieldId) {\n extraProps.id = `${fieldId}_extra`;\n }\n // If extra = 0, && will goes wrong\n // 0&&error -> 0\n const extraDom = extra ? /*#__PURE__*/React.createElement(\"div\", Object.assign({}, extraProps, {\n className: `${baseClassName}-extra`\n }), extra) : null;\n const dom = formItemRender && formItemRender.mark === 'pro_table_render' && formItemRender.render ? formItemRender.render(props, {\n input: inputDom,\n errorList: errorListDom,\n extra: extraDom\n }) : /*#__PURE__*/React.createElement(React.Fragment, null, inputDom, errorListDom, extraDom);\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: subFormContext\n }, /*#__PURE__*/React.createElement(Col, Object.assign({}, mergedWrapperCol, {\n className: className\n }), dom));\n};\nexport default FormItemInput;","// This icon file is generated automatically.\nvar QuestionCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z\" } }] }, \"name\": \"question-circle\", \"theme\": \"outlined\" };\nexport default QuestionCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport QuestionCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/QuestionCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar QuestionCircleOutlined = function QuestionCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: QuestionCircleOutlinedSvg\n }));\n};\nQuestionCircleOutlined.displayName = 'QuestionCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(QuestionCircleOutlined);","import * as React from 'react';\nimport LocaleContext from './context';\nimport defaultLocaleData from './en_US';\nconst useLocale = (componentName, defaultLocale) => {\n const fullLocale = React.useContext(LocaleContext);\n const getLocale = React.useMemo(() => {\n var _a;\n const locale = defaultLocale || defaultLocaleData[componentName];\n const localeFromContext = (_a = fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return Object.assign(Object.assign({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, fullLocale]);\n const getLocaleCode = React.useMemo(() => {\n const localeCode = fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale.locale;\n // Had use LocaleProvide but didn't set locale\n if ((fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale.exist) && !localeCode) {\n return defaultLocaleData.locale;\n }\n return localeCode;\n }, [fullLocale]);\n return [getLocale, getLocaleCode];\n};\nexport default useLocale;","import * as React from 'react';\nvar OrderContext = /*#__PURE__*/React.createContext(null);\nexport default OrderContext;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport OrderContext from \"./Context\";\nvar EMPTY_LIST = [];\n\n/**\n * Will add `div` to document. Nest call will keep order\n * @param render Render DOM in document\n */\nexport default function useDom(render, debug) {\n var _React$useState = React.useState(function () {\n if (!canUseDom()) {\n return null;\n }\n var defaultEle = document.createElement('div');\n if (process.env.NODE_ENV !== 'production' && debug) {\n defaultEle.setAttribute('data-debug', debug);\n }\n return defaultEle;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n ele = _React$useState2[0];\n\n // ========================== Order ==========================\n var appendedRef = React.useRef(false);\n var queueCreate = React.useContext(OrderContext);\n var _React$useState3 = React.useState(EMPTY_LIST),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n queue = _React$useState4[0],\n setQueue = _React$useState4[1];\n var mergedQueueCreate = queueCreate || (appendedRef.current ? undefined : function (appendFn) {\n setQueue(function (origin) {\n var newQueue = [appendFn].concat(_toConsumableArray(origin));\n return newQueue;\n });\n });\n\n // =========================== DOM ===========================\n function append() {\n if (!ele.parentElement) {\n document.body.appendChild(ele);\n }\n appendedRef.current = true;\n }\n function cleanup() {\n var _ele$parentElement;\n (_ele$parentElement = ele.parentElement) === null || _ele$parentElement === void 0 ? void 0 : _ele$parentElement.removeChild(ele);\n appendedRef.current = false;\n }\n useLayoutEffect(function () {\n if (render) {\n if (queueCreate) {\n queueCreate(append);\n } else {\n append();\n }\n } else {\n cleanup();\n }\n return cleanup;\n }, [render]);\n useLayoutEffect(function () {\n if (queue.length) {\n queue.forEach(function (appendFn) {\n return appendFn();\n });\n setQueue(EMPTY_LIST);\n }\n }, [queue]);\n return [ele, mergedQueueCreate];\n}","/* eslint-disable no-param-reassign */\n\nvar cached;\nexport default function getScrollBarSize(fresh) {\n if (typeof document === 'undefined') {\n return 0;\n }\n if (fresh || cached === undefined) {\n var inner = document.createElement('div');\n inner.style.width = '100%';\n inner.style.height = '200px';\n var outer = document.createElement('div');\n var outerStyle = outer.style;\n outerStyle.position = 'absolute';\n outerStyle.top = '0';\n outerStyle.left = '0';\n outerStyle.pointerEvents = 'none';\n outerStyle.visibility = 'hidden';\n outerStyle.width = '200px';\n outerStyle.height = '150px';\n outerStyle.overflow = 'hidden';\n outer.appendChild(inner);\n document.body.appendChild(outer);\n var widthContained = inner.offsetWidth;\n outer.style.overflow = 'scroll';\n var widthScroll = inner.offsetWidth;\n if (widthContained === widthScroll) {\n widthScroll = outer.clientWidth;\n }\n document.body.removeChild(outer);\n cached = widthContained - widthScroll;\n }\n return cached;\n}\nfunction ensureSize(str) {\n var match = str.match(/^(.*)px$/);\n var value = Number(match === null || match === void 0 ? void 0 : match[1]);\n return Number.isNaN(value) ? getScrollBarSize() : value;\n}\nexport function getTargetScrollBarSize(target) {\n if (typeof document === 'undefined' || !target || !(target instanceof Element)) {\n return {\n width: 0,\n height: 0\n };\n }\n var _getComputedStyle = getComputedStyle(target, '::-webkit-scrollbar'),\n width = _getComputedStyle.width,\n height = _getComputedStyle.height;\n return {\n width: ensureSize(width),\n height: ensureSize(height)\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { updateCSS, removeCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport getScrollBarSize from \"rc-util/es/getScrollBarSize\";\nimport { isBodyOverflowing } from \"./util\";\nvar UNIQUE_ID = \"rc-util-locker-\".concat(Date.now());\nvar uuid = 0;\nexport default function useScrollLocker(lock) {\n var mergedLock = !!lock;\n var _React$useState = React.useState(function () {\n uuid += 1;\n return \"\".concat(UNIQUE_ID, \"_\").concat(uuid);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n useLayoutEffect(function () {\n if (mergedLock) {\n var scrollbarSize = getScrollBarSize();\n var isOverflow = isBodyOverflowing();\n updateCSS(\"\\nhtml body {\\n overflow-y: hidden;\\n \".concat(isOverflow ? \"width: calc(100% - \".concat(scrollbarSize, \"px);\") : '', \"\\n}\"), id);\n } else {\n removeCSS(id);\n }\n return function () {\n removeCSS(id);\n };\n }, [mergedLock, id]);\n}","/**\n * Test usage export. Do not use in your production\n */\nexport function isBodyOverflowing() {\n return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;\n}","export var inline = false;\nexport function inlineMock(nextInline) {\n if (typeof nextInline === 'boolean') {\n inline = nextInline;\n }\n return inline;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport warning from \"rc-util/es/warning\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport OrderContext from \"./Context\";\nimport useDom from \"./useDom\";\nimport useScrollLocker from \"./useScrollLocker\";\nimport { inlineMock } from \"./mock\";\nvar getPortalContainer = function getPortalContainer(getContainer) {\n if (getContainer === false) {\n return false;\n }\n if (!canUseDom() || !getContainer) {\n return null;\n }\n if (typeof getContainer === 'string') {\n return document.querySelector(getContainer);\n }\n if (typeof getContainer === 'function') {\n return getContainer();\n }\n return getContainer;\n};\nvar Portal = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var open = props.open,\n autoLock = props.autoLock,\n getContainer = props.getContainer,\n debug = props.debug,\n _props$autoDestroy = props.autoDestroy,\n autoDestroy = _props$autoDestroy === void 0 ? true : _props$autoDestroy,\n children = props.children;\n var _React$useState = React.useState(open),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n shouldRender = _React$useState2[0],\n setShouldRender = _React$useState2[1];\n var mergedRender = shouldRender || open;\n\n // ========================= Warning =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(canUseDom() || !open, \"Portal only work in client side. Please call 'useEffect' to show Portal instead default render in SSR.\");\n }\n\n // ====================== Should Render ======================\n React.useEffect(function () {\n if (autoDestroy || open) {\n setShouldRender(open);\n }\n }, [open, autoDestroy]);\n\n // ======================== Container ========================\n var _React$useState3 = React.useState(function () {\n return getPortalContainer(getContainer);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerContainer = _React$useState4[0],\n setInnerContainer = _React$useState4[1];\n React.useEffect(function () {\n var customizeContainer = getPortalContainer(getContainer);\n\n // Tell component that we check this in effect which is safe to be `null`\n setInnerContainer(customizeContainer !== null && customizeContainer !== void 0 ? customizeContainer : null);\n });\n var _useDom = useDom(mergedRender && !innerContainer, debug),\n _useDom2 = _slicedToArray(_useDom, 2),\n defaultContainer = _useDom2[0],\n queueCreate = _useDom2[1];\n var mergedContainer = innerContainer !== null && innerContainer !== void 0 ? innerContainer : defaultContainer;\n\n // ========================= Locker ==========================\n useScrollLocker(autoLock && open && canUseDom() && (mergedContainer === defaultContainer || mergedContainer === document.body));\n\n // =========================== Ref ===========================\n var childRef = null;\n if (children && supportRef(children) && ref) {\n var _ref = children;\n childRef = _ref.ref;\n }\n var mergedRef = useComposeRef(childRef, ref);\n\n // ========================= Render ==========================\n // Do not render when nothing need render\n // When innerContainer is `undefined`, it may not ready since user use ref in the same render\n if (!mergedRender || !canUseDom() || innerContainer === undefined) {\n return null;\n }\n\n // Render inline\n var renderInline = mergedContainer === false || inlineMock();\n var reffedChildren = children;\n if (ref) {\n reffedChildren = /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n });\n }\n return /*#__PURE__*/React.createElement(OrderContext.Provider, {\n value: queueCreate\n }, renderInline ? reffedChildren : /*#__PURE__*/createPortal(reffedChildren, mergedContainer));\n});\nif (process.env.NODE_ENV !== 'production') {\n Portal.displayName = 'Portal';\n}\nexport default Portal;","import Portal from \"./Portal\";\nimport { inlineMock } from \"./mock\";\nexport { inlineMock };\nexport default Portal;","import ResizeObserver from 'resize-observer-polyfill';\n// =============================== Const ===============================\nvar elementListeners = new Map();\nfunction onResize(entities) {\n entities.forEach(function (entity) {\n var _elementListeners$get;\n var target = entity.target;\n (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 ? void 0 : _elementListeners$get.forEach(function (listener) {\n return listener(target);\n });\n });\n}\n// Note: ResizeObserver polyfill not support option to measure border-box resize\nvar resizeObserver = new ResizeObserver(onResize);\n// Dev env only\nexport var _el = process.env.NODE_ENV !== 'production' ? elementListeners : null; // eslint-disable-line\nexport var _rs = process.env.NODE_ENV !== 'production' ? onResize : null; // eslint-disable-line\n// ============================== Observe ==============================\nexport function observe(element, callback) {\n if (!elementListeners.has(element)) {\n elementListeners.set(element, new Set());\n resizeObserver.observe(element);\n }\n elementListeners.get(element).add(callback);\n}\nexport function unobserve(element, callback) {\n if (elementListeners.has(element)) {\n elementListeners.get(element).delete(callback);\n if (!elementListeners.get(element).size) {\n resizeObserver.unobserve(element);\n elementListeners.delete(element);\n }\n }\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n/**\n * Fallback to findDOMNode if origin ref do not provide any dom element\n */\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport { DomWrapper as default };","import * as React from 'react';\nexport var CollectionContext = /*#__PURE__*/React.createContext(null);\n/**\n * Collect all the resize event from children ResizeObserver\n */\nexport function Collection(_ref) {\n var children = _ref.children,\n onBatchResize = _ref.onBatchResize;\n var resizeIdRef = React.useRef(0);\n var resizeInfosRef = React.useRef([]);\n var onCollectionResize = React.useContext(CollectionContext);\n var onResize = React.useCallback(function (size, element, data) {\n resizeIdRef.current += 1;\n var currentId = resizeIdRef.current;\n resizeInfosRef.current.push({\n size: size,\n element: element,\n data: data\n });\n Promise.resolve().then(function () {\n if (currentId === resizeIdRef.current) {\n onBatchResize === null || onBatchResize === void 0 ? void 0 : onBatchResize(resizeInfosRef.current);\n resizeInfosRef.current = [];\n }\n });\n // Continue bubbling if parent exist\n onCollectionResize === null || onCollectionResize === void 0 ? void 0 : onCollectionResize(size, element, data);\n }, [onBatchResize, onCollectionResize]);\n return /*#__PURE__*/React.createElement(CollectionContext.Provider, {\n value: onResize\n }, children);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { observe, unobserve } from '../utils/observerUtil';\nimport DomWrapper from './DomWrapper';\nimport { CollectionContext } from '../Collection';\nfunction SingleObserver(props, ref) {\n var children = props.children,\n disabled = props.disabled;\n var elementRef = React.useRef(null);\n var wrapperRef = React.useRef(null);\n var onCollectionResize = React.useContext(CollectionContext);\n // =========================== Children ===========================\n var isRenderProps = typeof children === 'function';\n var mergedChildren = isRenderProps ? children(elementRef) : children;\n // ============================= Size =============================\n var sizeRef = React.useRef({\n width: -1,\n height: -1,\n offsetWidth: -1,\n offsetHeight: -1\n });\n // ============================= Ref ==============================\n var canRef = !isRenderProps && /*#__PURE__*/React.isValidElement(mergedChildren) && supportRef(mergedChildren);\n var originRef = canRef ? mergedChildren.ref : null;\n var mergedRef = React.useMemo(function () {\n return composeRef(originRef, elementRef);\n }, [originRef, elementRef]);\n var getDom = function getDom() {\n return findDOMNode(elementRef.current) || findDOMNode(wrapperRef.current);\n };\n React.useImperativeHandle(ref, function () {\n return getDom();\n });\n // =========================== Observe ============================\n var propsRef = React.useRef(props);\n propsRef.current = props;\n // Handler\n var onInternalResize = React.useCallback(function (target) {\n var _propsRef$current = propsRef.current,\n onResize = _propsRef$current.onResize,\n data = _propsRef$current.data;\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n var offsetWidth = target.offsetWidth,\n offsetHeight = target.offsetHeight;\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight,\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n };\n sizeRef.current = size;\n // IE is strange, right?\n var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;\n var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;\n var sizeInfo = _objectSpread(_objectSpread({}, size), {}, {\n offsetWidth: mergedOffsetWidth,\n offsetHeight: mergedOffsetHeight\n });\n // Let collection know what happened\n onCollectionResize === null || onCollectionResize === void 0 ? void 0 : onCollectionResize(sizeInfo, target, data);\n if (onResize) {\n // defer the callback but not defer to next frame\n Promise.resolve().then(function () {\n onResize(sizeInfo, target);\n });\n }\n }\n }, []);\n // Dynamic observe\n React.useEffect(function () {\n var currentElement = getDom();\n if (currentElement && !disabled) {\n observe(currentElement, onInternalResize);\n }\n return function () {\n return unobserve(currentElement, onInternalResize);\n };\n }, [elementRef.current, disabled]);\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperRef\n }, canRef ? /*#__PURE__*/React.cloneElement(mergedChildren, {\n ref: mergedRef\n }) : mergedChildren);\n}\nvar RefSingleObserver = /*#__PURE__*/React.forwardRef(SingleObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefSingleObserver.displayName = 'SingleObserver';\n}\nexport default RefSingleObserver;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { warning } from \"rc-util/es/warning\";\nimport SingleObserver from './SingleObserver';\nimport { Collection } from './Collection';\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key';\nimport { _rs } from './utils/observerUtil';\nexport { /** @private Test only for mock trigger resize event */\n_rs };\nfunction ResizeObserver(props, ref) {\n var children = props.children;\n var childNodes = typeof children === 'function' ? [children] : toArray(children);\n if (process.env.NODE_ENV !== 'production') {\n if (childNodes.length > 1) {\n warning(false, 'Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.');\n } else if (childNodes.length === 0) {\n warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n }\n }\n return childNodes.map(function (child, index) {\n var key = (child === null || child === void 0 ? void 0 : child.key) || \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index);\n return /*#__PURE__*/React.createElement(SingleObserver, _extends({}, props, {\n key: key,\n ref: index === 0 ? ref : undefined\n }), child);\n });\n}\nvar RefResizeObserver = /*#__PURE__*/React.forwardRef(ResizeObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefResizeObserver.displayName = 'ResizeObserver';\n}\nRefResizeObserver.Collection = Collection;\nexport default RefResizeObserver;","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nfunction getUseId() {\n // We need fully clone React function here to avoid webpack warning React 17 do not export `useId`\n var fullClone = _objectSpread({}, React);\n return fullClone.useId;\n}\nvar uuid = 0;\n\n/** @private Note only worked in develop env. Not work in production. */\nexport function resetUuid() {\n if (process.env.NODE_ENV !== 'production') {\n uuid = 0;\n }\n}\nexport default function useId(id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState('ssr-id'),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n var useOriginId = getUseId();\n var reactNativeId = useOriginId === null || useOriginId === void 0 ? void 0 : useOriginId();\n React.useEffect(function () {\n if (!useOriginId) {\n var nextId = uuid;\n uuid += 1;\n setInnerId(\"rc_unique_\".concat(nextId));\n }\n }, []);\n\n // Developer passed id is single source of truth\n if (id) {\n return id;\n }\n\n // Test env always return mock id\n if (process.env.NODE_ENV === 'test') {\n return 'test-id';\n }\n\n // Return react native id or inner id\n return reactNativeId || innerId;\n}","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4));\n});","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import * as React from 'react';\nfunction toArray(val) {\n return val ? Array.isArray(val) ? val : [val] : [];\n}\nexport default function useAction(mobile, action, showAction, hideAction) {\n return React.useMemo(function () {\n var mergedShowAction = toArray(showAction !== null && showAction !== void 0 ? showAction : action);\n var mergedHideAction = toArray(hideAction !== null && hideAction !== void 0 ? hideAction : action);\n var showActionSet = new Set(mergedShowAction);\n var hideActionSet = new Set(mergedHideAction);\n if (mobile) {\n if (showActionSet.has('hover')) {\n showActionSet.delete('hover');\n showActionSet.add('click');\n }\n if (hideActionSet.has('hover')) {\n hideActionSet.delete('hover');\n hideActionSet.add('click');\n }\n }\n return [showActionSet, hideActionSet];\n }, [mobile, action, showAction, hideAction]);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nfunction isPointsEq() {\n var a1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var a2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var isAlignPoint = arguments.length > 2 ? arguments[2] : undefined;\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n for (var i = 0; i < placements.length; i += 1) {\n var _builtinPlacements$pl;\n var placement = placements[i];\n if (isPointsEq((_builtinPlacements$pl = builtinPlacements[placement]) === null || _builtinPlacements$pl === void 0 ? void 0 : _builtinPlacements$pl.points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n return '';\n}\n\n/** @deprecated We should not use this if we can refactor all deps */\nexport function getMotion(prefixCls, motion, animation, transitionName) {\n if (motion) {\n return motion;\n }\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n return null;\n}\nexport function getWin(ele) {\n return ele.ownerDocument.defaultView;\n}\n\n/**\n * Get all the scrollable parent elements of the element\n * @param ele The element to be detected\n * @param areaOnly Only return the parent which will cut visible area\n */\nexport function collectScroller(ele) {\n var scrollerList = [];\n var current = ele === null || ele === void 0 ? void 0 : ele.parentElement;\n var scrollStyle = ['hidden', 'scroll', 'auto'];\n while (current) {\n var _getWin$getComputedSt = getWin(current).getComputedStyle(current),\n overflowX = _getWin$getComputedSt.overflowX,\n overflowY = _getWin$getComputedSt.overflowY;\n if (scrollStyle.includes(overflowX) || scrollStyle.includes(overflowY)) {\n scrollerList.push(current);\n }\n current = current.parentElement;\n }\n return scrollerList;\n}\nexport function toNum(num) {\n return Number.isNaN(num) ? 1 : num;\n}\nexport function getVisibleArea(initArea, scrollerList) {\n var visibleArea = _objectSpread({}, initArea);\n (scrollerList || []).forEach(function (ele) {\n if (ele instanceof HTMLBodyElement) {\n return;\n }\n\n // Skip if static position which will not affect visible area\n var _getWin$getComputedSt2 = getWin(ele).getComputedStyle(ele),\n position = _getWin$getComputedSt2.position;\n if (position === 'static') {\n return;\n }\n var eleRect = ele.getBoundingClientRect();\n var eleOutHeight = ele.offsetHeight,\n eleInnerHeight = ele.clientHeight,\n eleOutWidth = ele.offsetWidth,\n eleInnerWidth = ele.clientWidth;\n var scaleX = toNum(Math.round(eleRect.width / eleOutWidth * 1000) / 1000);\n var scaleY = toNum(Math.round(eleRect.height / eleOutHeight * 1000) / 1000);\n var eleScrollWidth = (eleOutWidth - eleInnerWidth) * scaleX;\n var eleScrollHeight = (eleOutHeight - eleInnerHeight) * scaleY;\n var eleRight = eleRect.x + eleRect.width - eleScrollWidth;\n var eleBottom = eleRect.y + eleRect.height - eleScrollHeight;\n visibleArea.left = Math.max(visibleArea.left, eleRect.x);\n visibleArea.top = Math.max(visibleArea.top, eleRect.y);\n visibleArea.right = Math.min(visibleArea.right, eleRight);\n visibleArea.bottom = Math.min(visibleArea.bottom, eleBottom);\n });\n return visibleArea;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { isDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { collectScroller, getVisibleArea, getWin, toNum } from \"../util\";\nfunction splitPoints() {\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return [points[0], points[1]];\n}\nfunction getAlignPoint(rect, points) {\n var topBottom = points[0];\n var leftRight = points[1];\n var x;\n var y;\n\n // Top & Bottom\n if (topBottom === 't') {\n y = rect.y;\n } else if (topBottom === 'b') {\n y = rect.y + rect.height;\n } else {\n y = rect.y + rect.height / 2;\n }\n\n // Left & Right\n if (leftRight === 'l') {\n x = rect.x;\n } else if (leftRight === 'r') {\n x = rect.x + rect.width;\n } else {\n x = rect.x + rect.width / 2;\n }\n return {\n x: x,\n y: y\n };\n}\nfunction reversePoints(points, index) {\n var reverseMap = {\n t: 'b',\n b: 't',\n l: 'r',\n r: 'l'\n };\n return points.map(function (point, i) {\n if (i === index) {\n return reverseMap[point] || 'c';\n }\n return point;\n }).join('');\n}\nexport default function useAlign(open, popupEle, target, placement, builtinPlacements, popupAlign, onPopupAlign) {\n var _React$useState = React.useState({\n ready: false,\n offsetX: 0,\n offsetY: 0,\n arrowX: 0,\n arrowY: 0,\n scaleX: 1,\n scaleY: 1,\n align: builtinPlacements[placement] || {}\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n offsetInfo = _React$useState2[0],\n setOffsetInfo = _React$useState2[1];\n var alignCountRef = React.useRef(0);\n var scrollerList = React.useMemo(function () {\n if (!popupEle) {\n return [];\n }\n return collectScroller(popupEle);\n }, [popupEle]);\n\n // ========================= Flip ==========================\n // We will memo flip info.\n // If size change to make flip, it will memo the flip info and use it in next align.\n var prevFlipRef = React.useRef({});\n var resetFlipCache = function resetFlipCache() {\n prevFlipRef.current = {};\n };\n if (!open) {\n resetFlipCache();\n }\n\n // ========================= Align =========================\n var onAlign = useEvent(function () {\n if (popupEle && target && open) {\n var popupElement = popupEle;\n var originLeft = popupElement.style.left;\n var originTop = popupElement.style.top;\n var doc = popupElement.ownerDocument;\n var win = getWin(popupElement);\n\n // Placement\n var placementInfo = _objectSpread(_objectSpread({}, builtinPlacements[placement]), popupAlign);\n\n // Reset first\n popupElement.style.left = '0';\n popupElement.style.top = '0';\n\n // Calculate align style, we should consider `transform` case\n var targetRect;\n if (Array.isArray(target)) {\n targetRect = {\n x: target[0],\n y: target[1],\n width: 0,\n height: 0\n };\n } else {\n var rect = target.getBoundingClientRect();\n targetRect = {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n };\n }\n var popupRect = popupElement.getBoundingClientRect();\n var _win$getComputedStyle = win.getComputedStyle(popupElement),\n width = _win$getComputedStyle.width,\n height = _win$getComputedStyle.height;\n var _doc$documentElement = doc.documentElement,\n clientWidth = _doc$documentElement.clientWidth,\n clientHeight = _doc$documentElement.clientHeight,\n scrollWidth = _doc$documentElement.scrollWidth,\n scrollHeight = _doc$documentElement.scrollHeight,\n scrollTop = _doc$documentElement.scrollTop,\n scrollLeft = _doc$documentElement.scrollLeft;\n var popupHeight = popupRect.height;\n var popupWidth = popupRect.width;\n var targetHeight = targetRect.height;\n var targetWidth = targetRect.width;\n\n // Get bounding of visible area\n var visibleArea = placementInfo.htmlRegion === 'scroll' ?\n // Scroll region should take scrollLeft & scrollTop into account\n {\n left: -scrollLeft,\n top: -scrollTop,\n right: scrollWidth - scrollLeft,\n bottom: scrollHeight - scrollTop\n } : {\n left: 0,\n top: 0,\n right: clientWidth,\n bottom: clientHeight\n };\n visibleArea = getVisibleArea(visibleArea, scrollerList);\n\n // Reset back\n popupElement.style.left = originLeft;\n popupElement.style.top = originTop;\n\n // Calculate scale\n var _scaleX = toNum(Math.round(popupWidth / parseFloat(width) * 1000) / 1000);\n var _scaleY = toNum(Math.round(popupHeight / parseFloat(height) * 1000) / 1000);\n\n // No need to align since it's not visible in view\n if (_scaleX === 0 || _scaleY === 0 || isDOM(target) && !isVisible(target)) {\n return;\n }\n\n // Offset\n var offset = placementInfo.offset,\n targetOffset = placementInfo.targetOffset;\n var _ref = offset || [],\n _ref2 = _slicedToArray(_ref, 2),\n _ref2$ = _ref2[0],\n popupOffsetX = _ref2$ === void 0 ? 0 : _ref2$,\n _ref2$2 = _ref2[1],\n popupOffsetY = _ref2$2 === void 0 ? 0 : _ref2$2;\n var _ref3 = targetOffset || [],\n _ref4 = _slicedToArray(_ref3, 2),\n _ref4$ = _ref4[0],\n targetOffsetX = _ref4$ === void 0 ? 0 : _ref4$,\n _ref4$2 = _ref4[1],\n targetOffsetY = _ref4$2 === void 0 ? 0 : _ref4$2;\n targetRect.x += targetOffsetX;\n targetRect.y += targetOffsetY;\n\n // Points\n var _ref5 = placementInfo.points || [],\n _ref6 = _slicedToArray(_ref5, 2),\n popupPoint = _ref6[0],\n targetPoint = _ref6[1];\n var targetPoints = splitPoints(targetPoint);\n var popupPoints = splitPoints(popupPoint);\n var targetAlignPoint = getAlignPoint(targetRect, targetPoints);\n var popupAlignPoint = getAlignPoint(popupRect, popupPoints);\n\n // Real align info may not same as origin one\n var nextAlignInfo = _objectSpread({}, placementInfo);\n\n // Next Offset\n var nextOffsetX = targetAlignPoint.x - popupAlignPoint.x + popupOffsetX;\n var nextOffsetY = targetAlignPoint.y - popupAlignPoint.y + popupOffsetY;\n\n // ============== Intersection ===============\n // Get area by position. Used for check if flip area is better\n function getIntersectionVisibleArea(offsetX, offsetY) {\n var l = popupRect.x + offsetX;\n var t = popupRect.y + offsetY;\n var r = l + popupWidth;\n var b = t + popupHeight;\n var visibleL = Math.max(l, visibleArea.left);\n var visibleT = Math.max(t, visibleArea.top);\n var visibleR = Math.min(r, visibleArea.right);\n var visibleB = Math.min(b, visibleArea.bottom);\n return Math.max(0, (visibleR - visibleL) * (visibleB - visibleT));\n }\n var originIntersectionVisibleArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY);\n\n // ========================== Overflow ===========================\n var targetAlignPointTL = getAlignPoint(targetRect, ['t', 'l']);\n var popupAlignPointTL = getAlignPoint(popupRect, ['t', 'l']);\n var targetAlignPointBR = getAlignPoint(targetRect, ['b', 'r']);\n var popupAlignPointBR = getAlignPoint(popupRect, ['b', 'r']);\n var overflow = placementInfo.overflow || {};\n var adjustX = overflow.adjustX,\n adjustY = overflow.adjustY,\n shiftX = overflow.shiftX,\n shiftY = overflow.shiftY;\n var supportAdjust = function supportAdjust(val) {\n if (typeof val === 'boolean') {\n return val;\n }\n return val >= 0;\n };\n\n // Prepare position\n var nextPopupY;\n var nextPopupBottom;\n var nextPopupX;\n var nextPopupRight;\n function syncNextPopupPosition() {\n nextPopupY = popupRect.y + nextOffsetY;\n nextPopupBottom = nextPopupY + popupHeight;\n nextPopupX = popupRect.x + nextOffsetX;\n nextPopupRight = nextPopupX + popupWidth;\n }\n syncNextPopupPosition();\n\n // >>>>>>>>>> Top & Bottom\n var needAdjustY = supportAdjust(adjustY);\n var sameTB = popupPoints[0] === targetPoints[0];\n\n // Bottom to Top\n if (needAdjustY && popupPoints[0] === 't' && (nextPopupBottom > visibleArea.bottom || prevFlipRef.current.bt)) {\n var tmpNextOffsetY = nextOffsetY;\n if (sameTB) {\n tmpNextOffsetY -= popupHeight - targetHeight;\n } else {\n tmpNextOffsetY = targetAlignPointTL.y - popupAlignPointBR.y - popupOffsetY;\n }\n if (getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY) >= originIntersectionVisibleArea) {\n prevFlipRef.current.bt = true;\n nextOffsetY = tmpNextOffsetY;\n nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n } else {\n prevFlipRef.current.bt = false;\n }\n }\n\n // Top to Bottom\n if (needAdjustY && popupPoints[0] === 'b' && (nextPopupY < visibleArea.top || prevFlipRef.current.tb)) {\n var _tmpNextOffsetY = nextOffsetY;\n if (sameTB) {\n _tmpNextOffsetY += popupHeight - targetHeight;\n } else {\n _tmpNextOffsetY = targetAlignPointBR.y - popupAlignPointTL.y - popupOffsetY;\n }\n if (getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY) >= originIntersectionVisibleArea) {\n prevFlipRef.current.tb = true;\n nextOffsetY = _tmpNextOffsetY;\n nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n } else {\n prevFlipRef.current.tb = false;\n }\n }\n\n // >>>>>>>>>> Left & Right\n var needAdjustX = supportAdjust(adjustX);\n\n // >>>>> Flip\n var sameLR = popupPoints[1] === targetPoints[1];\n\n // Right to Left\n if (needAdjustX && popupPoints[1] === 'l' && (nextPopupRight > visibleArea.right || prevFlipRef.current.rl)) {\n var tmpNextOffsetX = nextOffsetX;\n if (sameLR) {\n tmpNextOffsetX -= popupWidth - targetWidth;\n } else {\n tmpNextOffsetX = targetAlignPointTL.x - popupAlignPointBR.x - popupOffsetX;\n }\n if (getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY) >= originIntersectionVisibleArea) {\n prevFlipRef.current.rl = true;\n nextOffsetX = tmpNextOffsetX;\n nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n } else {\n prevFlipRef.current.rl = false;\n }\n }\n\n // Left to Right\n if (needAdjustX && popupPoints[1] === 'r' && (nextPopupX < visibleArea.left || prevFlipRef.current.lr)) {\n var _tmpNextOffsetX = nextOffsetX;\n if (sameLR) {\n _tmpNextOffsetX += popupWidth - targetWidth;\n } else {\n _tmpNextOffsetX = targetAlignPointBR.x - popupAlignPointTL.x - popupOffsetX;\n }\n if (getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY) >= originIntersectionVisibleArea) {\n prevFlipRef.current.lr = true;\n nextOffsetX = _tmpNextOffsetX;\n nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n } else {\n prevFlipRef.current.lr = false;\n }\n }\n\n // ============================ Shift ============================\n syncNextPopupPosition();\n var numShiftX = shiftX === true ? 0 : shiftX;\n if (typeof numShiftX === 'number') {\n // Left\n if (nextPopupX < visibleArea.left) {\n nextOffsetX -= nextPopupX - visibleArea.left;\n if (targetRect.x + targetWidth < visibleArea.left + numShiftX) {\n nextOffsetX += targetRect.x - visibleArea.left + targetWidth - numShiftX;\n }\n }\n\n // Right\n if (nextPopupRight > visibleArea.right) {\n nextOffsetX -= nextPopupRight - visibleArea.right;\n if (targetRect.x > visibleArea.right - numShiftX) {\n nextOffsetX += targetRect.x - visibleArea.right + numShiftX;\n }\n }\n }\n var numShiftY = shiftY === true ? 0 : shiftY;\n if (typeof numShiftY === 'number') {\n // Top\n if (nextPopupY < visibleArea.top) {\n nextOffsetY -= nextPopupY - visibleArea.top;\n if (targetRect.y + targetHeight < visibleArea.top + numShiftY) {\n nextOffsetY += targetRect.y - visibleArea.top + targetHeight - numShiftY;\n }\n }\n\n // Bottom\n if (nextPopupBottom > visibleArea.bottom) {\n nextOffsetY -= nextPopupBottom - visibleArea.bottom;\n if (targetRect.y > visibleArea.bottom - numShiftY) {\n nextOffsetY += targetRect.y - visibleArea.bottom + numShiftY;\n }\n }\n }\n\n // ============================ Arrow ============================\n // Arrow center align\n var popupLeft = popupRect.x + nextOffsetX;\n var popupRight = popupLeft + popupWidth;\n var popupTop = popupRect.y + nextOffsetY;\n var popupBottom = popupTop + popupHeight;\n var targetLeft = targetRect.x;\n var targetRight = targetLeft + targetWidth;\n var targetTop = targetRect.y;\n var targetBottom = targetTop + targetHeight;\n var maxLeft = Math.max(popupLeft, targetLeft);\n var minRight = Math.min(popupRight, targetRight);\n var xCenter = (maxLeft + minRight) / 2;\n var nextArrowX = xCenter - popupLeft;\n var maxTop = Math.max(popupTop, targetTop);\n var minBottom = Math.min(popupBottom, targetBottom);\n var yCenter = (maxTop + minBottom) / 2;\n var nextArrowY = yCenter - popupTop;\n onPopupAlign === null || onPopupAlign === void 0 ? void 0 : onPopupAlign(popupEle, nextAlignInfo);\n setOffsetInfo({\n ready: true,\n offsetX: nextOffsetX / _scaleX,\n offsetY: nextOffsetY / _scaleY,\n arrowX: nextArrowX / _scaleX,\n arrowY: nextArrowY / _scaleY,\n scaleX: _scaleX,\n scaleY: _scaleY,\n align: nextAlignInfo\n });\n }\n });\n var triggerAlign = function triggerAlign() {\n alignCountRef.current += 1;\n var id = alignCountRef.current;\n\n // Merge all align requirement into one frame\n Promise.resolve().then(function () {\n if (alignCountRef.current === id) {\n onAlign();\n }\n });\n };\n\n // Reset ready status when placement & open changed\n var resetReady = function resetReady() {\n setOffsetInfo(function (ori) {\n return _objectSpread(_objectSpread({}, ori), {}, {\n ready: false\n });\n });\n };\n useLayoutEffect(resetReady, [placement]);\n useLayoutEffect(function () {\n if (!open) {\n resetReady();\n }\n }, [open]);\n return [offsetInfo.ready, offsetInfo.offsetX, offsetInfo.offsetY, offsetInfo.arrowX, offsetInfo.arrowY, offsetInfo.scaleX, offsetInfo.scaleY, offsetInfo.align, triggerAlign];\n}","import * as React from 'react';\nexport default function Arrow(props) {\n var prefixCls = props.prefixCls,\n align = props.align,\n _props$arrowX = props.arrowX,\n arrowX = _props$arrowX === void 0 ? 0 : _props$arrowX,\n _props$arrowY = props.arrowY,\n arrowY = _props$arrowY === void 0 ? 0 : _props$arrowY;\n var arrowRef = React.useRef();\n\n // Skip if no align\n if (!align || !align.points) {\n return null;\n }\n var alignStyle = {\n position: 'absolute'\n };\n\n // Skip if no need to align\n if (align.autoArrow !== false) {\n var popupPoints = align.points[0];\n var targetPoints = align.points[1];\n var popupTB = popupPoints[0];\n var popupLR = popupPoints[1];\n var targetTB = targetPoints[0];\n var targetLR = targetPoints[1];\n\n // Top & Bottom\n if (popupTB === targetTB || !['t', 'b'].includes(popupTB)) {\n alignStyle.top = arrowY;\n } else if (popupTB === 't') {\n alignStyle.top = 0;\n } else {\n alignStyle.bottom = 0;\n }\n\n // Left & Right\n if (popupLR === targetLR || !['l', 'r'].includes(popupLR)) {\n alignStyle.left = arrowX;\n } else if (popupLR === 'l') {\n alignStyle.left = 0;\n } else {\n alignStyle.right = 0;\n }\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: arrowRef,\n className: \"\".concat(prefixCls, \"-arrow\"),\n style: alignStyle\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n open = props.open,\n zIndex = props.zIndex,\n mask = props.mask,\n motion = props.motion;\n if (!mask) {\n return null;\n }\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n motionAppear: true,\n visible: open,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport Arrow from \"./Arrow\";\nimport Mask from \"./Mask\";\nvar Popup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var popup = props.popup,\n className = props.className,\n prefixCls = props.prefixCls,\n style = props.style,\n target = props.target,\n _onVisibleChanged = props.onVisibleChanged,\n open = props.open,\n keepDom = props.keepDom,\n onClick = props.onClick,\n mask = props.mask,\n arrow = props.arrow,\n align = props.align,\n arrowX = props.arrowX,\n arrowY = props.arrowY,\n motion = props.motion,\n maskMotion = props.maskMotion,\n forceRender = props.forceRender,\n getPopupContainer = props.getPopupContainer,\n autoDestroy = props.autoDestroy,\n Portal = props.portal,\n zIndex = props.zIndex,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n ready = props.ready,\n offsetX = props.offsetX,\n offsetY = props.offsetY,\n onAlign = props.onAlign,\n onPrepare = props.onPrepare,\n stretch = props.stretch,\n targetWidth = props.targetWidth,\n targetHeight = props.targetHeight;\n var childNode = typeof popup === 'function' ? popup() : popup;\n\n // We can not remove holder only when motion finished.\n var isNodeVisible = open || keepDom;\n\n // ======================= Container ========================\n var getPopupContainerNeedParams = (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer.length) > 0;\n var _React$useState = React.useState(!getPopupContainer || !getPopupContainerNeedParams),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n show = _React$useState2[0],\n setShow = _React$useState2[1];\n\n // Delay to show since `getPopupContainer` need target element\n useLayoutEffect(function () {\n if (!show && getPopupContainerNeedParams && target) {\n setShow(true);\n }\n }, [show, getPopupContainerNeedParams, target]);\n\n // ========================= Render =========================\n if (!show) {\n return null;\n }\n\n // >>>>> Offset\n var offsetStyle = ready || !open ? {\n left: offsetX,\n top: offsetY\n } : {\n left: '-1000vw',\n top: '-1000vh'\n };\n\n // >>>>> Misc\n var miscStyle = {};\n if (stretch) {\n if (stretch.includes('height') && targetHeight) {\n miscStyle.height = targetHeight;\n } else if (stretch.includes('minHeight') && targetHeight) {\n miscStyle.minHeight = targetHeight;\n }\n if (stretch.includes('width') && targetWidth) {\n miscStyle.width = targetWidth;\n } else if (stretch.includes('minWidth') && targetWidth) {\n miscStyle.minWidth = targetWidth;\n }\n }\n if (!open) {\n miscStyle.pointerEvents = 'none';\n }\n return /*#__PURE__*/React.createElement(Portal, {\n open: forceRender || isNodeVisible,\n getContainer: getPopupContainer && function () {\n return getPopupContainer(target);\n },\n autoDestroy: autoDestroy\n }, /*#__PURE__*/React.createElement(Mask, {\n prefixCls: prefixCls,\n open: open,\n zIndex: zIndex,\n mask: mask,\n motion: maskMotion\n }), /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onAlign,\n disabled: !open\n }, function (resizeObserverRef) {\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n motionAppear: true,\n motionEnter: true,\n motionLeave: true,\n removeOnLeave: false,\n forceRender: forceRender,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onPrepare,\n onEnterPrepare: onPrepare,\n visible: open,\n onVisibleChanged: function onVisibleChanged(nextVisible) {\n var _motion$onVisibleChan;\n motion === null || motion === void 0 ? void 0 : (_motion$onVisibleChan = motion.onVisibleChanged) === null || _motion$onVisibleChan === void 0 ? void 0 : _motion$onVisibleChan.call(motion, nextVisible);\n _onVisibleChanged(nextVisible);\n }\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var cls = classNames(prefixCls, motionClassName, className);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: composeRef(resizeObserverRef, ref, motionRef),\n className: cls,\n style: _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, offsetStyle), miscStyle), motionStyle), {}, {\n boxSizing: 'border-box',\n zIndex: zIndex\n }, style),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onClick: onClick\n }, arrow && /*#__PURE__*/React.createElement(Arrow, {\n prefixCls: prefixCls,\n align: align,\n arrowX: arrowX,\n arrowY: arrowY\n }), childNode);\n });\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Popup.displayName = 'Popup';\n}\nexport default Popup;","import { fillRef, supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nvar TriggerWrapper = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n getTriggerDOMNode = props.getTriggerDOMNode;\n var canUseRef = supportRef(children);\n\n // When use `getTriggerDOMNode`, we should do additional work to get the real dom\n var setRef = React.useCallback(function (node) {\n fillRef(ref, getTriggerDOMNode ? getTriggerDOMNode(node) : node);\n }, [getTriggerDOMNode]);\n var mergedRef = useComposeRef(setRef, children.ref);\n return canUseRef ? /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n }) : children;\n});\nif (process.env.NODE_ENV !== 'production') {\n TriggerWrapper.displayName = 'TriggerWrapper';\n}\nexport default TriggerWrapper;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"children\", \"action\", \"showAction\", \"hideAction\", \"popupVisible\", \"defaultPopupVisible\", \"onPopupVisibleChange\", \"afterPopupVisibleChange\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"focusDelay\", \"blurDelay\", \"mask\", \"maskClosable\", \"getPopupContainer\", \"forceRender\", \"autoDestroy\", \"destroyPopupOnHide\", \"popup\", \"popupClassName\", \"popupStyle\", \"popupPlacement\", \"builtinPlacements\", \"popupAlign\", \"zIndex\", \"stretch\", \"getPopupClassNameFromAlign\", \"alignPoint\", \"onPopupClick\", \"onPopupAlign\", \"arrow\", \"popupMotion\", \"maskMotion\", \"popupTransitionName\", \"popupAnimation\", \"maskTransitionName\", \"maskAnimation\", \"className\", \"getTriggerDOMNode\"];\nimport Portal from '@rc-component/portal';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { isDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useId from \"rc-util/es/hooks/useId\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport TriggerContext from \"./context\";\nimport useAction from \"./hooks/useAction\";\nimport useAlign from \"./hooks/useAlign\";\nimport useWatch from \"./hooks/useWatch\";\nimport Popup from \"./Popup\";\nimport TriggerWrapper from \"./TriggerWrapper\";\nimport { getAlignPopupClassName, getMotion, getWin } from \"./util\";\nexport function generateTrigger() {\n var PortalComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Portal;\n var Trigger = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-trigger-popup' : _props$prefixCls,\n children = props.children,\n _props$action = props.action,\n action = _props$action === void 0 ? 'hover' : _props$action,\n showAction = props.showAction,\n hideAction = props.hideAction,\n popupVisible = props.popupVisible,\n defaultPopupVisible = props.defaultPopupVisible,\n onPopupVisibleChange = props.onPopupVisibleChange,\n afterPopupVisibleChange = props.afterPopupVisibleChange,\n mouseEnterDelay = props.mouseEnterDelay,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n focusDelay = props.focusDelay,\n blurDelay = props.blurDelay,\n mask = props.mask,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n getPopupContainer = props.getPopupContainer,\n forceRender = props.forceRender,\n autoDestroy = props.autoDestroy,\n destroyPopupOnHide = props.destroyPopupOnHide,\n popup = props.popup,\n popupClassName = props.popupClassName,\n popupStyle = props.popupStyle,\n popupPlacement = props.popupPlacement,\n _props$builtinPlaceme = props.builtinPlacements,\n builtinPlacements = _props$builtinPlaceme === void 0 ? {} : _props$builtinPlaceme,\n popupAlign = props.popupAlign,\n zIndex = props.zIndex,\n stretch = props.stretch,\n getPopupClassNameFromAlign = props.getPopupClassNameFromAlign,\n alignPoint = props.alignPoint,\n onPopupClick = props.onPopupClick,\n onPopupAlign = props.onPopupAlign,\n arrow = props.arrow,\n popupMotion = props.popupMotion,\n maskMotion = props.maskMotion,\n popupTransitionName = props.popupTransitionName,\n popupAnimation = props.popupAnimation,\n maskTransitionName = props.maskTransitionName,\n maskAnimation = props.maskAnimation,\n className = props.className,\n getTriggerDOMNode = props.getTriggerDOMNode,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedAutoDestroy = autoDestroy || destroyPopupOnHide || false;\n\n // =========================== Mobile ===========================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mobile = _React$useState2[0],\n setMobile = _React$useState2[1];\n useLayoutEffect(function () {\n setMobile(isMobile());\n }, []);\n\n // ========================== Context ===========================\n var subPopupElements = React.useRef({});\n var parentContext = React.useContext(TriggerContext);\n var context = React.useMemo(function () {\n return {\n registerSubPopup: function registerSubPopup(id, subPopupEle) {\n subPopupElements.current[id] = subPopupEle;\n parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, subPopupEle);\n }\n };\n }, [parentContext]);\n\n // =========================== Popup ============================\n var id = useId();\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n popupEle = _React$useState4[0],\n setPopupEle = _React$useState4[1];\n var setPopupRef = useEvent(function (node) {\n if (isDOM(node) && popupEle !== node) {\n setPopupEle(node);\n }\n parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, node);\n });\n\n // =========================== Target ===========================\n // Use state to control here since `useRef` update not trigger render\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n targetEle = _React$useState6[0],\n setTargetEle = _React$useState6[1];\n var setTargetRef = useEvent(function (node) {\n if (isDOM(node) && targetEle !== node) {\n setTargetEle(node);\n }\n });\n\n // ========================== Children ==========================\n var child = React.Children.only(children);\n var originChildProps = (child === null || child === void 0 ? void 0 : child.props) || {};\n var cloneProps = {};\n var inPopupOrChild = useEvent(function (ele) {\n var _childDOM$getRootNode, _popupEle$getRootNode;\n var childDOM = targetEle;\n return (childDOM === null || childDOM === void 0 ? void 0 : childDOM.contains(ele)) || (childDOM === null || childDOM === void 0 ? void 0 : (_childDOM$getRootNode = childDOM.getRootNode()) === null || _childDOM$getRootNode === void 0 ? void 0 : _childDOM$getRootNode.host) === ele || ele === childDOM || (popupEle === null || popupEle === void 0 ? void 0 : popupEle.contains(ele)) || (popupEle === null || popupEle === void 0 ? void 0 : (_popupEle$getRootNode = popupEle.getRootNode()) === null || _popupEle$getRootNode === void 0 ? void 0 : _popupEle$getRootNode.host) === ele || ele === popupEle || Object.values(subPopupElements.current).some(function (subPopupEle) {\n return (subPopupEle === null || subPopupEle === void 0 ? void 0 : subPopupEle.contains(ele)) || ele === subPopupEle;\n });\n });\n\n // =========================== Motion ===========================\n var mergePopupMotion = getMotion(prefixCls, popupMotion, popupAnimation, popupTransitionName);\n var mergeMaskMotion = getMotion(prefixCls, maskMotion, maskAnimation, maskTransitionName);\n\n // ============================ Open ============================\n var _React$useState7 = React.useState(defaultPopupVisible || false),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n internalOpen = _React$useState8[0],\n setInternalOpen = _React$useState8[1];\n\n // Render still use props as first priority\n var mergedOpen = popupVisible !== null && popupVisible !== void 0 ? popupVisible : internalOpen;\n\n // We use effect sync here in case `popupVisible` back to `undefined`\n var setMergedOpen = useEvent(function (nextOpen) {\n if (popupVisible === undefined) {\n setInternalOpen(nextOpen);\n }\n });\n useLayoutEffect(function () {\n setInternalOpen(popupVisible || false);\n }, [popupVisible]);\n var openRef = React.useRef(mergedOpen);\n openRef.current = mergedOpen;\n var internalTriggerOpen = useEvent(function (nextOpen) {\n if (mergedOpen !== nextOpen) {\n setMergedOpen(nextOpen);\n onPopupVisibleChange === null || onPopupVisibleChange === void 0 ? void 0 : onPopupVisibleChange(nextOpen);\n }\n });\n\n // Trigger for delay\n var delayRef = React.useRef();\n var clearDelay = function clearDelay() {\n clearTimeout(delayRef.current);\n };\n var triggerOpen = function triggerOpen(nextOpen) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n clearDelay();\n if (delay === 0) {\n internalTriggerOpen(nextOpen);\n } else {\n delayRef.current = setTimeout(function () {\n internalTriggerOpen(nextOpen);\n }, delay * 1000);\n }\n };\n React.useEffect(function () {\n return clearDelay;\n }, []);\n\n // ========================== Motion ============================\n var _React$useState9 = React.useState(false),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n inMotion = _React$useState10[0],\n setInMotion = _React$useState10[1];\n var mountRef = React.useRef(true);\n useLayoutEffect(function () {\n if (!mountRef.current || mergedOpen) {\n setInMotion(true);\n }\n mountRef.current = true;\n }, [mergedOpen]);\n var _React$useState11 = React.useState(null),\n _React$useState12 = _slicedToArray(_React$useState11, 2),\n motionPrepareResolve = _React$useState12[0],\n setMotionPrepareResolve = _React$useState12[1];\n\n // =========================== Align ============================\n var _React$useState13 = React.useState([0, 0]),\n _React$useState14 = _slicedToArray(_React$useState13, 2),\n mousePos = _React$useState14[0],\n setMousePos = _React$useState14[1];\n var setMousePosByEvent = function setMousePosByEvent(event) {\n setMousePos([event.clientX, event.clientY]);\n };\n var _useAlign = useAlign(mergedOpen, popupEle, alignPoint ? mousePos : targetEle, popupPlacement, builtinPlacements, popupAlign, onPopupAlign),\n _useAlign2 = _slicedToArray(_useAlign, 9),\n ready = _useAlign2[0],\n offsetX = _useAlign2[1],\n offsetY = _useAlign2[2],\n arrowX = _useAlign2[3],\n arrowY = _useAlign2[4],\n scaleX = _useAlign2[5],\n scaleY = _useAlign2[6],\n alignInfo = _useAlign2[7],\n onAlign = _useAlign2[8];\n var triggerAlign = useEvent(function () {\n if (!inMotion) {\n onAlign();\n }\n });\n useWatch(mergedOpen, targetEle, popupEle, triggerAlign);\n useLayoutEffect(function () {\n triggerAlign();\n }, [mousePos]);\n\n // When no builtinPlacements and popupAlign changed\n useLayoutEffect(function () {\n if (mergedOpen && !(builtinPlacements !== null && builtinPlacements !== void 0 && builtinPlacements[popupPlacement])) {\n triggerAlign();\n }\n }, [JSON.stringify(popupAlign)]);\n var alignedClassName = React.useMemo(function () {\n var baseClassName = getAlignPopupClassName(builtinPlacements, prefixCls, alignInfo, alignPoint);\n return classNames(baseClassName, getPopupClassNameFromAlign === null || getPopupClassNameFromAlign === void 0 ? void 0 : getPopupClassNameFromAlign(alignInfo));\n }, [alignInfo, getPopupClassNameFromAlign, builtinPlacements, prefixCls, alignPoint]);\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: triggerAlign\n };\n });\n\n // ========================== Motion ============================\n var onVisibleChanged = function onVisibleChanged(visible) {\n setInMotion(false);\n onAlign();\n afterPopupVisibleChange === null || afterPopupVisibleChange === void 0 ? void 0 : afterPopupVisibleChange(visible);\n };\n\n // We will trigger align when motion is in prepare\n var onPrepare = function onPrepare() {\n return new Promise(function (resolve) {\n setMotionPrepareResolve(function () {\n return resolve;\n });\n });\n };\n useLayoutEffect(function () {\n if (motionPrepareResolve) {\n onAlign();\n motionPrepareResolve();\n setMotionPrepareResolve(null);\n }\n }, [motionPrepareResolve]);\n\n // ========================== Stretch ===========================\n var _React$useState15 = React.useState(0),\n _React$useState16 = _slicedToArray(_React$useState15, 2),\n targetWidth = _React$useState16[0],\n setTargetWidth = _React$useState16[1];\n var _React$useState17 = React.useState(0),\n _React$useState18 = _slicedToArray(_React$useState17, 2),\n targetHeight = _React$useState18[0],\n setTargetHeight = _React$useState18[1];\n var onTargetResize = function onTargetResize(_, ele) {\n triggerAlign();\n if (stretch) {\n var rect = ele.getBoundingClientRect();\n setTargetWidth(rect.width);\n setTargetHeight(rect.height);\n }\n };\n\n // =========================== Action ===========================\n var _useAction = useAction(mobile, action, showAction, hideAction),\n _useAction2 = _slicedToArray(_useAction, 2),\n showActions = _useAction2[0],\n hideActions = _useAction2[1];\n\n // Util wrapper for trigger action\n var wrapperAction = function wrapperAction(eventName, nextOpen, delay, preEvent) {\n cloneProps[eventName] = function (event) {\n var _originChildProps$eve;\n preEvent === null || preEvent === void 0 ? void 0 : preEvent(event);\n triggerOpen(nextOpen, delay);\n\n // Pass to origin\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 (_originChildProps$eve = originChildProps[eventName]) === null || _originChildProps$eve === void 0 ? void 0 : _originChildProps$eve.call.apply(_originChildProps$eve, [originChildProps, event].concat(args));\n };\n };\n\n // ======================= Action: Click ========================\n var clickToShow = showActions.has('click');\n var clickToHide = hideActions.has('click') || hideActions.has('contextMenu');\n if (clickToShow || clickToHide) {\n cloneProps.onClick = function (event) {\n var _originChildProps$onC;\n if (openRef.current && clickToHide) {\n triggerOpen(false);\n } else if (!openRef.current && clickToShow) {\n setMousePosByEvent(event);\n triggerOpen(true);\n }\n\n // Pass to origin\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 (_originChildProps$onC = originChildProps.onClick) === null || _originChildProps$onC === void 0 ? void 0 : _originChildProps$onC.call.apply(_originChildProps$onC, [originChildProps, event].concat(args));\n };\n }\n\n // Click to hide is special action since click popup element should not hide\n React.useEffect(function () {\n if (clickToHide && popupEle && (!mask || maskClosable)) {\n var onWindowClick = function onWindowClick(_ref) {\n var target = _ref.target;\n if (openRef.current && !inPopupOrChild(target)) {\n triggerOpen(false);\n }\n };\n var win = getWin(popupEle);\n var targetRoot = targetEle === null || targetEle === void 0 ? void 0 : targetEle.getRootNode();\n win.addEventListener('click', onWindowClick);\n\n // shadow root\n var inShadow = targetRoot && targetRoot !== targetEle.ownerDocument;\n if (inShadow) {\n targetRoot.addEventListener('click', onWindowClick);\n }\n\n // Warning if target and popup not in same root\n if (process.env.NODE_ENV !== 'production') {\n var popupRoot = popupEle.getRootNode();\n warning(targetRoot === popupRoot, \"trigger element and popup element should in same shadow root.\");\n }\n return function () {\n win.removeEventListener('click', onWindowClick);\n if (inShadow) {\n targetRoot.removeEventListener('click', onWindowClick);\n }\n };\n }\n }, [clickToHide, targetEle, popupEle, mask, maskClosable]);\n\n // ======================= Action: Hover ========================\n var hoverToShow = showActions.has('hover');\n var hoverToHide = hideActions.has('hover');\n var onPopupMouseEnter;\n var onPopupMouseLeave;\n if (hoverToShow) {\n wrapperAction('onMouseEnter', true, mouseEnterDelay, function (event) {\n setMousePosByEvent(event);\n });\n onPopupMouseEnter = function onPopupMouseEnter() {\n triggerOpen(true, mouseEnterDelay);\n };\n\n // Align Point\n if (alignPoint) {\n cloneProps.onMouseMove = function (event) {\n var _originChildProps$onM;\n // setMousePosByEvent(event);\n (_originChildProps$onM = originChildProps.onMouseMove) === null || _originChildProps$onM === void 0 ? void 0 : _originChildProps$onM.call(originChildProps, event);\n };\n }\n }\n if (hoverToHide) {\n wrapperAction('onMouseLeave', false, mouseLeaveDelay);\n onPopupMouseLeave = function onPopupMouseLeave() {\n triggerOpen(false, mouseLeaveDelay);\n };\n }\n\n // ======================= Action: Focus ========================\n if (showActions.has('focus')) {\n wrapperAction('onFocus', true, focusDelay);\n }\n if (hideActions.has('focus')) {\n wrapperAction('onBlur', false, blurDelay);\n }\n\n // ==================== Action: ContextMenu =====================\n if (showActions.has('contextMenu')) {\n cloneProps.onContextMenu = function (event) {\n var _originChildProps$onC2;\n setMousePosByEvent(event);\n triggerOpen(true);\n event.preventDefault();\n\n // Pass to origin\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 (_originChildProps$onC2 = originChildProps.onContextMenu) === null || _originChildProps$onC2 === void 0 ? void 0 : _originChildProps$onC2.call.apply(_originChildProps$onC2, [originChildProps, event].concat(args));\n };\n }\n\n // ========================= ClassName ==========================\n if (className) {\n cloneProps.className = classNames(originChildProps.className, className);\n }\n\n // =========================== Render ===========================\n var mergedChildrenProps = _objectSpread(_objectSpread({}, originChildProps), cloneProps);\n\n // Pass props into cloneProps for nest usage\n var passedProps = {};\n var passedEventList = ['onContextMenu', 'onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur'];\n passedEventList.forEach(function (eventName) {\n if (restProps[eventName]) {\n passedProps[eventName] = function () {\n var _mergedChildrenProps$;\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n (_mergedChildrenProps$ = mergedChildrenProps[eventName]) === null || _mergedChildrenProps$ === void 0 ? void 0 : _mergedChildrenProps$.call.apply(_mergedChildrenProps$, [mergedChildrenProps].concat(args));\n restProps[eventName].apply(restProps, args);\n };\n }\n });\n\n // Child Node\n var triggerNode = /*#__PURE__*/React.cloneElement(child, _objectSpread(_objectSpread({}, mergedChildrenProps), passedProps));\n\n // Render\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ResizeObserver, {\n disabled: !mergedOpen,\n ref: setTargetRef,\n onResize: onTargetResize\n }, /*#__PURE__*/React.createElement(TriggerWrapper, {\n getTriggerDOMNode: getTriggerDOMNode\n }, triggerNode)), /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(Popup, {\n portal: PortalComponent,\n ref: setPopupRef,\n prefixCls: prefixCls,\n popup: popup,\n className: classNames(popupClassName, alignedClassName),\n style: popupStyle,\n target: targetEle,\n onMouseEnter: onPopupMouseEnter,\n onMouseLeave: onPopupMouseLeave,\n zIndex: zIndex\n // Open\n ,\n open: mergedOpen,\n keepDom: inMotion\n // Click\n ,\n onClick: onPopupClick\n // Mask\n ,\n mask: mask\n // Motion\n ,\n motion: mergePopupMotion,\n maskMotion: mergeMaskMotion,\n onVisibleChanged: onVisibleChanged,\n onPrepare: onPrepare\n // Portal\n ,\n forceRender: forceRender,\n autoDestroy: mergedAutoDestroy,\n getPopupContainer: getPopupContainer\n // Arrow\n ,\n align: alignInfo,\n arrow: arrow\n // Align\n ,\n ready: ready,\n offsetX: offsetX,\n offsetY: offsetY,\n arrowX: arrowX,\n arrowY: arrowY,\n onAlign: triggerAlign\n // Stretch\n ,\n stretch: stretch,\n targetWidth: targetWidth / scaleX,\n targetHeight: targetHeight / scaleY\n })));\n });\n if (process.env.NODE_ENV !== 'production') {\n Trigger.displayName = 'Trigger';\n }\n return Trigger;\n}\nexport default generateTrigger(Portal);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { collectScroller, getWin } from \"../util\";\nexport default function useWatch(open, target, popup, onAlign) {\n useLayoutEffect(function () {\n if (open && target && popup) {\n var targetElement = target;\n var popupElement = popup;\n var targetScrollList = collectScroller(targetElement);\n var popupScrollList = collectScroller(popupElement);\n var win = getWin(popupElement);\n var mergedList = new Set([win].concat(_toConsumableArray(targetScrollList), _toConsumableArray(popupScrollList)));\n function notifyScroll() {\n onAlign();\n }\n mergedList.forEach(function (scroller) {\n scroller.addEventListener('scroll', notifyScroll, {\n passive: true\n });\n });\n win.addEventListener('resize', notifyScroll, {\n passive: true\n });\n\n // First time always do align\n onAlign();\n return function () {\n mergedList.forEach(function (scroller) {\n scroller.removeEventListener('scroll', notifyScroll);\n win.removeEventListener('resize', notifyScroll);\n });\n };\n }\n }, [open, target, popup]);\n}","var autoAdjustOverflowTopBottom = {\n shiftX: 64,\n adjustY: 1\n};\nvar autoAdjustOverflowLeftRight = {\n adjustX: 1,\n shiftY: true\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import classNames from 'classnames';\nimport * as React from 'react';\nexport default function Popup(props) {\n var children = props.children,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle,\n className = props.className,\n style = props.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), className),\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof children === 'function' ? children() : children));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\", \"arrowContent\", \"overlay\", \"id\", \"showArrow\"];\nimport Trigger from '@rc-component/trigger';\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nimport { placements } from \"./placements\";\nimport Popup from \"./Popup\";\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n arrowContent = props.arrowContent,\n overlay = props.overlay,\n id = props.id,\n _props$showArrow = props.showArrow,\n showArrow = _props$showArrow === void 0 ? true : _props$showArrow,\n restProps = _objectWithoutProperties(props, _excluded);\n var triggerRef = useRef(null);\n useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n var extraProps = _objectSpread({}, restProps);\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n var getPopupElement = function getPopupElement() {\n return /*#__PURE__*/React.createElement(Popup, {\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlayInnerStyle: overlayInnerStyle\n }, overlay);\n };\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: triggerRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n autoDestroy: destroyTooltipOnHide,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay,\n arrow: showArrow\n }, extraProps), children);\n};\nexport default /*#__PURE__*/forwardRef(Tooltip);","import Tooltip from \"./Tooltip\";\nimport Popup from \"./Popup\";\nexport { Popup };\nexport default Tooltip;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","export const roundedArrow = (width, innerRadius, outerRadius, bgColor, boxShadow) => {\n const unitWidth = width / 2;\n const ax = 0;\n const ay = unitWidth;\n const bx = outerRadius * 1 / Math.sqrt(2);\n const by = unitWidth - outerRadius * (1 - 1 / Math.sqrt(2));\n const cx = unitWidth - innerRadius * (1 / Math.sqrt(2));\n const cy = outerRadius * (Math.sqrt(2) - 1) + innerRadius * (1 / Math.sqrt(2));\n const dx = 2 * unitWidth - cx;\n const dy = cy;\n const ex = 2 * unitWidth - bx;\n const ey = by;\n const fx = 2 * unitWidth - ax;\n const fy = ay;\n const shadowWidth = unitWidth * Math.sqrt(2) + outerRadius * (Math.sqrt(2) - 2);\n return {\n pointerEvents: 'none',\n width,\n height: width,\n overflow: 'hidden',\n '&::before': {\n position: 'absolute',\n bottom: 0,\n insetInlineStart: 0,\n width,\n height: width / 2,\n background: bgColor,\n clipPath: `path('M ${ax} ${ay} A ${outerRadius} ${outerRadius} 0 0 0 ${bx} ${by} L ${cx} ${cy} A ${innerRadius} ${innerRadius} 0 0 1 ${dx} ${dy} L ${ex} ${ey} A ${outerRadius} ${outerRadius} 0 0 0 ${fx} ${fy} Z')`,\n content: '\"\"'\n },\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n width: shadowWidth,\n height: shadowWidth,\n bottom: 0,\n insetInline: 0,\n margin: 'auto',\n borderRadius: {\n _skip_check_: true,\n value: `0 0 ${innerRadius}px 0`\n },\n transform: 'translateY(50%) rotate(-135deg)',\n boxShadow,\n zIndex: 0,\n background: 'transparent'\n }\n };\n};","import { roundedArrow } from './roundedArrow';\nexport const MAX_VERTICAL_CONTENT_RADIUS = 8;\nexport function getArrowOffset(options) {\n const maxVerticalContentRadius = MAX_VERTICAL_CONTENT_RADIUS;\n const {\n contentRadius,\n limitVerticalRadius\n } = options;\n const dropdownArrowOffset = contentRadius > 12 ? contentRadius + 2 : 12;\n const dropdownArrowOffsetVertical = limitVerticalRadius ? maxVerticalContentRadius : dropdownArrowOffset;\n return {\n dropdownArrowOffset,\n dropdownArrowOffsetVertical\n };\n}\nfunction isInject(valid, code) {\n if (!valid) return {};\n return code;\n}\nexport default function getArrowStyle(token, options) {\n const {\n componentCls,\n sizePopupArrow,\n borderRadiusXS,\n borderRadiusOuter,\n boxShadowPopoverArrow\n } = token;\n const {\n colorBg,\n contentRadius = token.borderRadiusLG,\n limitVerticalRadius,\n arrowDistance = 0,\n arrowPlacement = {\n left: true,\n right: true,\n top: true,\n bottom: true\n }\n } = options;\n const {\n dropdownArrowOffsetVertical,\n dropdownArrowOffset\n } = getArrowOffset({\n contentRadius,\n limitVerticalRadius\n });\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({\n // ============================ Basic ============================\n [`${componentCls}-arrow`]: [Object.assign(Object.assign({\n position: 'absolute',\n zIndex: 1,\n display: 'block'\n }, roundedArrow(sizePopupArrow, borderRadiusXS, borderRadiusOuter, colorBg, boxShadowPopoverArrow)), {\n '&:before': {\n background: colorBg\n }\n })]\n }, isInject(!!arrowPlacement.top, {\n [[`&-placement-top ${componentCls}-arrow`, `&-placement-topLeft ${componentCls}-arrow`, `&-placement-topRight ${componentCls}-arrow`].join(',')]: {\n bottom: arrowDistance,\n transform: 'translateY(100%) rotate(180deg)'\n },\n [`&-placement-top ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateX(-50%) translateY(100%) rotate(180deg)'\n },\n [`&-placement-topLeft ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n [`&-placement-topRight ${componentCls}-arrow`]: {\n right: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n }\n })), isInject(!!arrowPlacement.bottom, {\n [[`&-placement-bottom ${componentCls}-arrow`, `&-placement-bottomLeft ${componentCls}-arrow`, `&-placement-bottomRight ${componentCls}-arrow`].join(',')]: {\n top: arrowDistance,\n transform: `translateY(-100%)`\n },\n [`&-placement-bottom ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transform: `translateX(-50%) translateY(-100%)`\n },\n [`&-placement-bottomLeft ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n [`&-placement-bottomRight ${componentCls}-arrow`]: {\n right: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n }\n })), isInject(!!arrowPlacement.left, {\n [[`&-placement-left ${componentCls}-arrow`, `&-placement-leftTop ${componentCls}-arrow`, `&-placement-leftBottom ${componentCls}-arrow`].join(',')]: {\n right: {\n _skip_check_: true,\n value: arrowDistance\n },\n transform: 'translateX(100%) rotate(90deg)'\n },\n [`&-placement-left ${componentCls}-arrow`]: {\n top: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateY(-50%) translateX(100%) rotate(90deg)'\n },\n [`&-placement-leftTop ${componentCls}-arrow`]: {\n top: dropdownArrowOffsetVertical\n },\n [`&-placement-leftBottom ${componentCls}-arrow`]: {\n bottom: dropdownArrowOffsetVertical\n }\n })), isInject(!!arrowPlacement.right, {\n [[`&-placement-right ${componentCls}-arrow`, `&-placement-rightTop ${componentCls}-arrow`, `&-placement-rightBottom ${componentCls}-arrow`].join(',')]: {\n left: {\n _skip_check_: true,\n value: arrowDistance\n },\n transform: 'translateX(-100%) rotate(-90deg)'\n },\n [`&-placement-right ${componentCls}-arrow`]: {\n top: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateY(-50%) translateX(-100%) rotate(-90deg)'\n },\n [`&-placement-rightTop ${componentCls}-arrow`]: {\n top: dropdownArrowOffsetVertical\n },\n [`&-placement-rightBottom ${componentCls}-arrow`]: {\n bottom: dropdownArrowOffsetVertical\n }\n }))\n };\n}","import { getArrowOffset } from '../style/placementArrow';\nexport function getOverflowOptions(placement, arrowOffset, arrowWidth, autoAdjustOverflow) {\n if (autoAdjustOverflow === false) {\n return {\n adjustX: false,\n adjustY: false\n };\n }\n const overflow = autoAdjustOverflow && typeof autoAdjustOverflow === 'object' ? autoAdjustOverflow : {};\n const baseOverflow = {};\n switch (placement) {\n case 'top':\n case 'bottom':\n baseOverflow.shiftX = arrowOffset.dropdownArrowOffset * 2 + arrowWidth;\n break;\n case 'left':\n case 'right':\n baseOverflow.shiftY = arrowOffset.dropdownArrowOffsetVertical * 2 + arrowWidth;\n break;\n }\n const mergedOverflow = Object.assign(Object.assign({}, baseOverflow), overflow);\n // Support auto shift\n if (!mergedOverflow.shiftX) {\n mergedOverflow.adjustX = true;\n }\n if (!mergedOverflow.shiftY) {\n mergedOverflow.adjustY = true;\n }\n return mergedOverflow;\n}\nconst PlacementAlignMap = {\n left: {\n points: ['cr', 'cl']\n },\n right: {\n points: ['cl', 'cr']\n },\n top: {\n points: ['bc', 'tc']\n },\n bottom: {\n points: ['tc', 'bc']\n },\n topLeft: {\n points: ['bl', 'tl']\n },\n leftTop: {\n points: ['tr', 'tl']\n },\n topRight: {\n points: ['br', 'tr']\n },\n rightTop: {\n points: ['tl', 'tr']\n },\n bottomRight: {\n points: ['tr', 'br']\n },\n rightBottom: {\n points: ['bl', 'br']\n },\n bottomLeft: {\n points: ['tl', 'bl']\n },\n leftBottom: {\n points: ['br', 'bl']\n }\n};\nconst ArrowCenterPlacementAlignMap = {\n topLeft: {\n points: ['bl', 'tc']\n },\n leftTop: {\n points: ['tr', 'cl']\n },\n topRight: {\n points: ['br', 'tc']\n },\n rightTop: {\n points: ['tl', 'cr']\n },\n bottomRight: {\n points: ['tr', 'bc']\n },\n rightBottom: {\n points: ['bl', 'cr']\n },\n bottomLeft: {\n points: ['tl', 'bc']\n },\n leftBottom: {\n points: ['br', 'cl']\n }\n};\nconst DisableAutoArrowList = new Set(['topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'leftTop', 'leftBottom', 'rightTop', 'rightBottom']);\nexport default function getPlacements(config) {\n const {\n arrowWidth,\n autoAdjustOverflow,\n arrowPointAtCenter,\n offset,\n borderRadius\n } = config;\n const halfArrowWidth = arrowWidth / 2;\n const placementMap = {};\n Object.keys(PlacementAlignMap).forEach(key => {\n const template = arrowPointAtCenter && ArrowCenterPlacementAlignMap[key] || PlacementAlignMap[key];\n const placementInfo = Object.assign(Object.assign({}, template), {\n offset: [0, 0]\n });\n placementMap[key] = placementInfo;\n // Disable autoArrow since design is fixed position\n if (DisableAutoArrowList.has(key)) {\n placementInfo.autoArrow = false;\n }\n // Static offset\n switch (key) {\n case 'top':\n case 'topLeft':\n case 'topRight':\n placementInfo.offset[1] = -halfArrowWidth - offset;\n break;\n case 'bottom':\n case 'bottomLeft':\n case 'bottomRight':\n placementInfo.offset[1] = halfArrowWidth + offset;\n break;\n case 'left':\n case 'leftTop':\n case 'leftBottom':\n placementInfo.offset[0] = -halfArrowWidth - offset;\n break;\n case 'right':\n case 'rightTop':\n case 'rightBottom':\n placementInfo.offset[0] = halfArrowWidth + offset;\n break;\n }\n // Dynamic offset\n const arrowOffset = getArrowOffset({\n contentRadius: borderRadius,\n limitVerticalRadius: true\n });\n if (arrowPointAtCenter) {\n switch (key) {\n case 'topLeft':\n case 'bottomLeft':\n placementInfo.offset[0] = -arrowOffset.dropdownArrowOffset - halfArrowWidth;\n break;\n case 'topRight':\n case 'bottomRight':\n placementInfo.offset[0] = arrowOffset.dropdownArrowOffset + halfArrowWidth;\n break;\n case 'leftTop':\n case 'rightTop':\n placementInfo.offset[1] = -arrowOffset.dropdownArrowOffset - halfArrowWidth;\n break;\n case 'leftBottom':\n case 'rightBottom':\n placementInfo.offset[1] = arrowOffset.dropdownArrowOffset + halfArrowWidth;\n break;\n }\n }\n // Overflow\n placementInfo.overflow = getOverflowOptions(key, arrowOffset, arrowWidth, autoAdjustOverflow);\n });\n return placementMap;\n}","import { TinyColor } from '@ctrl/tinycolor';\nexport const getAlphaColor = (baseColor, alpha) => new TinyColor(baseColor).setAlpha(alpha).toRgbString();\nexport const getSolidColor = (baseColor, brightness) => {\n const instance = new TinyColor(baseColor);\n return instance.lighten(brightness).toHexString();\n};","import { generate } from '@ant-design/colors';\nimport { getAlphaColor, getSolidColor } from './colorAlgorithm';\nexport const generateColorPalettes = baseColor => {\n const colors = generate(baseColor, {\n theme: 'dark'\n });\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[6],\n 6: colors[5],\n 7: colors[4],\n 8: colors[6],\n 9: colors[5],\n 10: colors[4]\n // 8: colors[9],\n // 9: colors[8],\n // 10: colors[7],\n };\n};\n\nexport const generateNeutralColorPalettes = (bgBaseColor, textBaseColor) => {\n const colorBgBase = bgBaseColor || '#000';\n const colorTextBase = textBaseColor || '#fff';\n return {\n colorBgBase,\n colorTextBase,\n colorText: getAlphaColor(colorTextBase, 0.85),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n colorFill: getAlphaColor(colorTextBase, 0.18),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.12),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.08),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.04),\n colorBgElevated: getSolidColor(colorBgBase, 12),\n colorBgContainer: getSolidColor(colorBgBase, 8),\n colorBgLayout: getSolidColor(colorBgBase, 0),\n colorBgSpotlight: getSolidColor(colorBgBase, 26),\n colorBorder: getSolidColor(colorBgBase, 26),\n colorBorderSecondary: getSolidColor(colorBgBase, 19)\n };\n};","import { generate } from '@ant-design/colors';\nimport { defaultPresetColors } from '../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport defaultAlgorithm from '../default';\nconst derivative = (token, mapToken) => {\n const colorPalettes = Object.keys(defaultPresetColors).map(colorKey => {\n const colors = generate(token[colorKey], {\n theme: 'dark'\n });\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {});\n }).reduce((prev, cur) => {\n prev = Object.assign(Object.assign({}, prev), cur);\n return prev;\n }, {});\n const mergedMapToken = mapToken !== null && mapToken !== void 0 ? mapToken : defaultAlgorithm(token);\n return Object.assign(Object.assign(Object.assign({}, mergedMapToken), colorPalettes), genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes\n }));\n};\nexport default derivative;","import genControlHeight from '../shared/genControlHeight';\nimport defaultAlgorithm from '../default';\nimport genCompactSizeMapToken from './genCompactSizeMapToken';\nimport genFontMapToken from '../shared/genFontMapToken';\nconst derivative = (token, mapToken) => {\n const mergedMapToken = mapToken !== null && mapToken !== void 0 ? mapToken : defaultAlgorithm(token);\n const fontSize = mergedMapToken.fontSizeSM; // Smaller size font-size as base\n const controlHeight = mergedMapToken.controlHeight - 4;\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, mergedMapToken), genCompactSizeMapToken(mapToken !== null && mapToken !== void 0 ? mapToken : token)), genFontMapToken(fontSize)), {\n // controlHeight\n controlHeight\n }), genControlHeight(Object.assign(Object.assign({}, mergedMapToken), {\n controlHeight\n })));\n};\nexport default derivative;","export default function genSizeMapToken(token) {\n const {\n sizeUnit,\n sizeStep\n } = token;\n const compactSizeStep = sizeStep - 2;\n return {\n sizeXXL: sizeUnit * (compactSizeStep + 10),\n sizeXL: sizeUnit * (compactSizeStep + 6),\n sizeLG: sizeUnit * (compactSizeStep + 2),\n sizeMD: sizeUnit * (compactSizeStep + 2),\n sizeMS: sizeUnit * (compactSizeStep + 1),\n size: sizeUnit * compactSizeStep,\n sizeSM: sizeUnit * compactSizeStep,\n sizeXS: sizeUnit * (compactSizeStep - 1),\n sizeXXS: sizeUnit * (compactSizeStep - 1)\n };\n}","/* eslint-disable import/prefer-default-export */\nimport { defaultConfig, useToken as useInternalToken } from './internal';\nimport defaultAlgorithm from './themes/default';\nimport darkAlgorithm from './themes/dark';\nimport compactAlgorithm from './themes/compact';\n// ZombieJ: We export as object to user but array in internal.\n// This is used to minimize the bundle size for antd package but safe to refactor as object also.\n// Please do not export internal `useToken` directly to avoid something export unexpected.\n/** Get current context Design Token. Will be different if you are using nest theme config. */\nfunction useToken() {\n const [theme, token, hashId] = useInternalToken();\n return {\n theme,\n token,\n hashId\n };\n}\nexport default {\n /** @private Test Usage. Do not use in production. */\n defaultConfig,\n /** Default seedToken */\n defaultSeed: defaultConfig.token,\n useToken,\n defaultAlgorithm,\n darkAlgorithm,\n compactAlgorithm\n};","export const PresetColors = ['blue', 'purple', 'cyan', 'green', 'magenta', 'pink', 'red', 'orange', 'yellow', 'volcano', 'geekblue', 'lime', 'gold'];","import { PresetColors } from '../interface';\nexport default function genPresetColor(token, genCss) {\n return PresetColors.reduce((prev, colorKey) => {\n const lightColor = token[`${colorKey}1`];\n const lightBorderColor = token[`${colorKey}3`];\n const darkColor = token[`${colorKey}6`];\n const textColor = token[`${colorKey}7`];\n return Object.assign(Object.assign({}, prev), genCss(colorKey, {\n lightColor,\n lightBorderColor,\n darkColor,\n textColor\n }));\n }, {});\n}","import { resetComponent } from '../../style';\nimport { initZoomMotion } from '../../style/motion';\nimport getArrowStyle, { MAX_VERTICAL_CONTENT_RADIUS } from '../../style/placementArrow';\nimport { genComponentStyleHook, mergeToken, genPresetColor } from '../../theme/internal';\nconst genTooltipStyle = token => {\n const {\n componentCls,\n // ant-tooltip\n tooltipMaxWidth,\n tooltipColor,\n tooltipBg,\n tooltipBorderRadius,\n zIndexPopup,\n controlHeight,\n boxShadowSecondary,\n paddingSM,\n paddingXS,\n tooltipRadiusOuter\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n zIndex: zIndexPopup,\n display: 'block',\n width: 'max-content',\n maxWidth: tooltipMaxWidth,\n visibility: 'visible',\n '&-hidden': {\n display: 'none'\n },\n '--antd-arrow-background-color': tooltipBg,\n // Wrapper for the tooltip content\n [`${componentCls}-inner`]: {\n minWidth: controlHeight,\n minHeight: controlHeight,\n padding: `${paddingSM / 2}px ${paddingXS}px`,\n color: tooltipColor,\n textAlign: 'start',\n textDecoration: 'none',\n wordWrap: 'break-word',\n backgroundColor: tooltipBg,\n borderRadius: tooltipBorderRadius,\n boxShadow: boxShadowSecondary\n },\n // Limit left and right placement radius\n [[`&-placement-left`, `&-placement-leftTop`, `&-placement-leftBottom`, `&-placement-right`, `&-placement-rightTop`, `&-placement-rightBottom`].join(',')]: {\n [`${componentCls}-inner`]: {\n borderRadius: Math.min(tooltipBorderRadius, MAX_VERTICAL_CONTENT_RADIUS)\n }\n },\n [`${componentCls}-content`]: {\n position: 'relative'\n }\n }), genPresetColor(token, (colorKey, _ref) => {\n let {\n darkColor\n } = _ref;\n return {\n [`&${componentCls}-${colorKey}`]: {\n [`${componentCls}-inner`]: {\n backgroundColor: darkColor\n },\n [`${componentCls}-arrow`]: {\n '--antd-arrow-background-color': darkColor\n }\n }\n };\n })), {\n // RTL\n '&-rtl': {\n direction: 'rtl'\n }\n })\n },\n // Arrow Style\n getArrowStyle(mergeToken(token, {\n borderRadiusOuter: tooltipRadiusOuter\n }), {\n colorBg: 'var(--antd-arrow-background-color)',\n contentRadius: tooltipBorderRadius,\n limitVerticalRadius: true\n }),\n // Pure Render\n {\n [`${componentCls}-pure`]: {\n position: 'relative',\n maxWidth: 'none',\n margin: token.sizePopupArrow\n }\n }];\n};\n// ============================== Export ==============================\nexport default ((prefixCls, injectStyle) => {\n const useOriginHook = genComponentStyleHook('Tooltip', token => {\n // Popover use Tooltip as internal component. We do not need to handle this.\n if (injectStyle === false) {\n return [];\n }\n const {\n borderRadius,\n colorTextLightSolid,\n colorBgDefault,\n borderRadiusOuter\n } = token;\n const TooltipToken = mergeToken(token, {\n // default variables\n tooltipMaxWidth: 250,\n tooltipColor: colorTextLightSolid,\n tooltipBorderRadius: borderRadius,\n tooltipBg: colorBgDefault,\n tooltipRadiusOuter: borderRadiusOuter > 4 ? 4 : borderRadiusOuter\n });\n return [genTooltipStyle(TooltipToken), initZoomMotion(token, 'zoom-big-fast')];\n }, _ref2 => {\n let {\n zIndexPopupBase,\n colorBgSpotlight\n } = _ref2;\n return {\n zIndexPopup: zIndexPopupBase + 70,\n colorBgDefault: colorBgSpotlight\n };\n });\n return useOriginHook(prefixCls);\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { PresetColors } from '../theme/interface';\nconst inverseColors = PresetColors.map(color => `${color}-inverse`);\nexport const PresetStatusColorTypes = ['success', 'processing', 'error', 'default', 'warning'];\n/**\n * determine if the color keyword belongs to the `Ant Design` {@link PresetColors}.\n * @param color color to be judged\n * @param includeInverse whether to include reversed colors\n */\nexport function isPresetColor(color) {\n let includeInverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (includeInverse) {\n return [].concat(_toConsumableArray(inverseColors), _toConsumableArray(PresetColors)).includes(color);\n }\n return PresetColors.includes(color);\n}\nexport function isPresetStatusColor(color) {\n return PresetStatusColorTypes.includes(color);\n}","/* eslint-disable import/prefer-default-export */\nimport classNames from 'classnames';\nimport { isPresetColor } from '../_util/colors';\nexport function parseColor(prefixCls, color) {\n const isInternalColor = isPresetColor(color);\n const className = classNames({\n [`${prefixCls}-${color}`]: color && isInternalColor\n });\n const overlayStyle = {};\n const arrowStyle = {};\n if (color && !isInternalColor) {\n overlayStyle.background = color;\n // @ts-ignore\n arrowStyle['--antd-arrow-background-color'] = color;\n }\n return {\n className,\n overlayStyle,\n arrowStyle\n };\n}","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport RcTooltip from 'rc-tooltip';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { getTransitionName } from '../_util/motion';\nimport getPlacements from '../_util/placements';\nimport { cloneElement, isFragment, isValidElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport theme from '../theme';\nimport PurePanel from './PurePanel';\nimport useStyle from './style';\nimport { parseColor } from './util';\nconst {\n useToken\n} = theme;\nconst splitObject = (obj, keys) => {\n const picked = {};\n const omitted = Object.assign({}, obj);\n keys.forEach(key => {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omitted[key];\n }\n });\n return {\n picked,\n omitted\n };\n};\n// Fix Tooltip won't hide at disabled button\n// mouse events don't trigger at disabled button in Chrome\n// https://github.com/react-component/tooltip/issues/18\nfunction getDisabledCompatibleChildren(element, prefixCls) {\n const elementType = element.type;\n if ((elementType.__ANT_BUTTON === true || element.type === 'button') && element.props.disabled || elementType.__ANT_SWITCH === true && (element.props.disabled || element.props.loading) || elementType.__ANT_RADIO === true && element.props.disabled) {\n // Pick some layout related style properties up to span\n // Prevent layout bugs like https://github.com/ant-design/ant-design/issues/5254\n const {\n picked,\n omitted\n } = splitObject(element.props.style, ['position', 'left', 'right', 'top', 'bottom', 'float', 'display', 'zIndex']);\n const spanStyle = Object.assign(Object.assign({\n display: 'inline-block'\n }, picked), {\n cursor: 'not-allowed',\n width: element.props.block ? '100%' : undefined\n });\n const buttonStyle = Object.assign(Object.assign({}, omitted), {\n pointerEvents: 'none'\n });\n const child = cloneElement(element, {\n style: buttonStyle,\n className: null\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n style: spanStyle,\n className: classNames(element.props.className, `${prefixCls}-disabled-compatible-wrapper`)\n }, child);\n }\n return element;\n}\nconst Tooltip = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _a, _b;\n const {\n prefixCls: customizePrefixCls,\n openClassName,\n getTooltipContainer,\n overlayClassName,\n color,\n overlayInnerStyle,\n children,\n afterOpenChange,\n afterVisibleChange,\n destroyTooltipOnHide,\n arrow = true,\n title,\n overlay,\n builtinPlacements,\n arrowPointAtCenter = false,\n autoAdjustOverflow = true\n } = props;\n const mergedShowArrow = !!arrow;\n const {\n token\n } = useToken();\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n // ============================== Ref ===============================\n const tooltipRef = React.useRef(null);\n const forceAlign = () => {\n var _a;\n (_a = tooltipRef.current) === null || _a === void 0 ? void 0 : _a.forceAlign();\n };\n React.useImperativeHandle(ref, () => ({\n forceAlign,\n forcePopupAlign: () => {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Tooltip', '`forcePopupAlign` is align to `forceAlign` instead.') : void 0;\n forceAlign();\n }\n }));\n // ============================== Warn ==============================\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['defaultVisible', 'defaultOpen'], ['onVisibleChange', 'onOpenChange'], ['afterVisibleChange', 'afterOpenChange'], ['arrowPointAtCenter', 'arrow']].forEach(_ref => {\n let [deprecatedName, newName] = _ref;\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Tooltip', `\\`${deprecatedName}\\` is deprecated, please use \\`${newName}\\` instead.`) : void 0;\n });\n process.env.NODE_ENV !== \"production\" ? warning(!destroyTooltipOnHide || typeof destroyTooltipOnHide === 'boolean', 'Tooltip', '`destroyTooltipOnHide` no need config `keepParent` anymore. Please use `boolean` value directly.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!arrow || typeof arrow === 'boolean' || !('arrowPointAtCenter' in arrow), 'Tooltip', '`arrowPointAtCenter` in `arrow` is deprecated, please use `pointAtCenter` instead.') : void 0;\n }\n // ============================== Open ==============================\n const [open, setOpen] = useMergedState(false, {\n value: (_a = props.open) !== null && _a !== void 0 ? _a : props.visible,\n defaultValue: (_b = props.defaultOpen) !== null && _b !== void 0 ? _b : props.defaultVisible\n });\n const noTitle = !title && !overlay && title !== 0; // overlay for old version compatibility\n const onOpenChange = vis => {\n var _a, _b;\n setOpen(noTitle ? false : vis);\n if (!noTitle) {\n (_a = props.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(props, vis);\n (_b = props.onVisibleChange) === null || _b === void 0 ? void 0 : _b.call(props, vis);\n }\n };\n const tooltipPlacements = React.useMemo(() => {\n var _a, _b;\n let mergedArrowPointAtCenter = arrowPointAtCenter;\n if (typeof arrow === 'object') {\n mergedArrowPointAtCenter = (_b = (_a = arrow.pointAtCenter) !== null && _a !== void 0 ? _a : arrow.arrowPointAtCenter) !== null && _b !== void 0 ? _b : arrowPointAtCenter;\n }\n return builtinPlacements || getPlacements({\n arrowPointAtCenter: mergedArrowPointAtCenter,\n autoAdjustOverflow,\n arrowWidth: mergedShowArrow ? token.sizePopupArrow : 0,\n borderRadius: token.borderRadius,\n offset: token.marginXXS\n });\n }, [arrowPointAtCenter, arrow, builtinPlacements, token]);\n // 动态设置动画点\n const onPopupAlign = (domNode, align) => {\n // 当前返回的位置\n const placement = Object.keys(tooltipPlacements).find(key => {\n var _a, _b;\n return tooltipPlacements[key].points[0] === ((_a = align.points) === null || _a === void 0 ? void 0 : _a[0]) && tooltipPlacements[key].points[1] === ((_b = align.points) === null || _b === void 0 ? void 0 : _b[1]);\n });\n if (placement) {\n // 根据当前坐标设置动画点\n const rect = domNode.getBoundingClientRect();\n const transformOrigin = {\n top: '50%',\n left: '50%'\n };\n if (/top|Bottom/.test(placement)) {\n transformOrigin.top = `${rect.height - align.offset[1]}px`;\n } else if (/Top|bottom/.test(placement)) {\n transformOrigin.top = `${-align.offset[1]}px`;\n }\n if (/left|Right/.test(placement)) {\n transformOrigin.left = `${rect.width - align.offset[0]}px`;\n } else if (/right|Left/.test(placement)) {\n transformOrigin.left = `${-align.offset[0]}px`;\n }\n domNode.style.transformOrigin = `${transformOrigin.left} ${transformOrigin.top}`;\n }\n };\n const memoOverlay = React.useMemo(() => {\n if (title === 0) {\n return title;\n }\n return overlay || title || '';\n }, [overlay, title]);\n const {\n getPopupContainer,\n placement = 'top',\n mouseEnterDelay = 0.1,\n mouseLeaveDelay = 0.1,\n overlayStyle,\n rootClassName\n } = props,\n otherProps = __rest(props, [\"getPopupContainer\", \"placement\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"rootClassName\"]);\n const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const injectFromPopover = props['data-popover-inject'];\n let tempOpen = open;\n // Hide tooltip when there is no title\n if (!('open' in props) && !('visible' in props) && noTitle) {\n tempOpen = false;\n }\n // ============================= Render =============================\n const child = getDisabledCompatibleChildren(isValidElement(children) && !isFragment(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children), prefixCls);\n const childProps = child.props;\n const childCls = !childProps.className || typeof childProps.className === 'string' ? classNames(childProps.className, {\n [openClassName || `${prefixCls}-open`]: true\n }) : childProps.className;\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls, !injectFromPopover);\n // Color\n const colorInfo = parseColor(prefixCls, color);\n const formattedOverlayInnerStyle = Object.assign(Object.assign({}, overlayInnerStyle), colorInfo.overlayStyle);\n const arrowContentStyle = colorInfo.arrowStyle;\n const customOverlayClassName = classNames(overlayClassName, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, colorInfo.className, rootClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(RcTooltip, Object.assign({}, otherProps, {\n showArrow: mergedShowArrow,\n placement: placement,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n prefixCls: prefixCls,\n overlayClassName: customOverlayClassName,\n overlayStyle: Object.assign(Object.assign({}, arrowContentStyle), overlayStyle),\n getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n ref: tooltipRef,\n builtinPlacements: tooltipPlacements,\n overlay: memoOverlay,\n visible: tempOpen,\n onVisibleChange: onOpenChange,\n afterVisibleChange: afterOpenChange !== null && afterOpenChange !== void 0 ? afterOpenChange : afterVisibleChange,\n onPopupAlign: onPopupAlign,\n overlayInnerStyle: formattedOverlayInnerStyle,\n arrowContent: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-arrow-content`\n }),\n motion: {\n motionName: getTransitionName(rootPrefixCls, 'zoom-big-fast', props.transitionName),\n motionDeadline: 1000\n },\n destroyTooltipOnHide: !!destroyTooltipOnHide\n }), tempOpen ? cloneElement(child, {\n className: childCls\n }) : child));\n});\nif (process.env.NODE_ENV !== 'production') {\n Tooltip.displayName = 'Tooltip';\n}\nTooltip._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default Tooltip;","import classNames from 'classnames';\nimport { Popup } from 'rc-tooltip';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport { parseColor } from './util';\n// ant-tooltip css-dev-only-do-not-override-w2s56n ant-tooltip-placement-top ant-tooltip-hidden\nexport default function PurePanel(props) {\n const {\n prefixCls: customizePrefixCls,\n className,\n placement = 'top',\n title,\n color,\n overlayInnerStyle\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls, true);\n // Color\n const colorInfo = parseColor(prefixCls, color);\n const formattedOverlayInnerStyle = Object.assign(Object.assign({}, overlayInnerStyle), colorInfo.overlayStyle);\n const arrowContentStyle = colorInfo.arrowStyle;\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(hashId, prefixCls, `${prefixCls}-pure`, `${prefixCls}-placement-${placement}`, className, colorInfo.className),\n style: arrowContentStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-arrow`\n }), /*#__PURE__*/React.createElement(Popup, Object.assign({}, props, {\n className: hashId,\n prefixCls: prefixCls,\n overlayInnerStyle: formattedOverlayInnerStyle\n }), title)));\n}","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport QuestionCircleOutlined from \"@ant-design/icons/es/icons/QuestionCircleOutlined\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Col from '../grid/col';\nimport defaultLocale from '../locale/en_US';\nimport { useLocale } from '../locale';\nimport Tooltip from '../tooltip';\nimport { FormContext } from './context';\nfunction toTooltipProps(tooltip) {\n if (!tooltip) {\n return null;\n }\n if (typeof tooltip === 'object' && ! /*#__PURE__*/React.isValidElement(tooltip)) {\n return tooltip;\n }\n return {\n title: tooltip\n };\n}\nconst FormItemLabel = _ref => {\n let {\n prefixCls,\n label,\n htmlFor,\n labelCol,\n labelAlign,\n colon,\n required,\n requiredMark,\n tooltip\n } = _ref;\n var _a;\n const [formLocale] = useLocale('Form');\n const {\n vertical,\n labelAlign: contextLabelAlign,\n labelCol: contextLabelCol,\n labelWrap,\n colon: contextColon\n } = React.useContext(FormContext);\n if (!label) {\n return null;\n }\n const mergedLabelCol = labelCol || contextLabelCol || {};\n const mergedLabelAlign = labelAlign || contextLabelAlign;\n const labelClsBasic = `${prefixCls}-item-label`;\n const labelColClassName = classNames(labelClsBasic, mergedLabelAlign === 'left' && `${labelClsBasic}-left`, mergedLabelCol.className, {\n [`${labelClsBasic}-wrap`]: !!labelWrap\n });\n let labelChildren = label;\n // Keep label is original where there should have no colon\n const computedColon = colon === true || contextColon !== false && colon !== false;\n const haveColon = computedColon && !vertical;\n // Remove duplicated user input colon\n if (haveColon && typeof label === 'string' && label.trim() !== '') {\n labelChildren = label.replace(/[:|:]\\s*$/, '');\n }\n // Tooltip\n const tooltipProps = toTooltipProps(tooltip);\n if (tooltipProps) {\n const {\n icon = /*#__PURE__*/React.createElement(QuestionCircleOutlined, null)\n } = tooltipProps,\n restTooltipProps = __rest(tooltipProps, [\"icon\"]);\n const tooltipNode = /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, restTooltipProps), /*#__PURE__*/React.cloneElement(icon, {\n className: `${prefixCls}-item-tooltip`,\n title: ''\n }));\n labelChildren = /*#__PURE__*/React.createElement(React.Fragment, null, labelChildren, tooltipNode);\n }\n if (requiredMark === 'optional' && !required) {\n labelChildren = /*#__PURE__*/React.createElement(React.Fragment, null, labelChildren, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-item-optional`,\n title: \"\"\n }, (formLocale === null || formLocale === void 0 ? void 0 : formLocale.optional) || ((_a = defaultLocale.Form) === null || _a === void 0 ? void 0 : _a.optional)));\n }\n const labelClassName = classNames({\n [`${prefixCls}-item-required`]: required,\n [`${prefixCls}-item-required-mark-optional`]: requiredMark === 'optional',\n [`${prefixCls}-item-no-colon`]: !computedColon\n });\n return /*#__PURE__*/React.createElement(Col, Object.assign({}, mergedLabelCol, {\n className: labelColClassName\n }), /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: htmlFor,\n className: labelClassName,\n title: typeof label === 'string' ? label : ''\n }, labelChildren));\n};\nexport default FormItemLabel;","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { Row } from '../../grid';\nimport FormItemInput from '../FormItemInput';\nimport FormItemLabel from '../FormItemLabel';\nimport { FormContext, FormItemInputContext, NoStyleItemContext } from '../context';\nimport useDebounce from '../hooks/useDebounce';\nconst iconMap = {\n success: CheckCircleFilled,\n warning: ExclamationCircleFilled,\n error: CloseCircleFilled,\n validating: LoadingOutlined\n};\nexport default function ItemHolder(props) {\n const {\n prefixCls,\n className,\n rootClassName,\n style,\n help,\n errors,\n warnings,\n validateStatus,\n meta,\n hasFeedback,\n hidden,\n children,\n fieldId,\n required,\n isRequired,\n onSubItemMetaChange\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"style\", \"help\", \"errors\", \"warnings\", \"validateStatus\", \"meta\", \"hasFeedback\", \"hidden\", \"children\", \"fieldId\", \"required\", \"isRequired\", \"onSubItemMetaChange\"]);\n const itemPrefixCls = `${prefixCls}-item`;\n const {\n requiredMark\n } = React.useContext(FormContext);\n // ======================== Margin ========================\n const itemRef = React.useRef(null);\n const debounceErrors = useDebounce(errors);\n const debounceWarnings = useDebounce(warnings);\n const hasHelp = help !== undefined && help !== null;\n const hasError = !!(hasHelp || errors.length || warnings.length);\n const isOnScreen = !!itemRef.current && isVisible(itemRef.current);\n const [marginBottom, setMarginBottom] = React.useState(null);\n useLayoutEffect(() => {\n if (hasError && itemRef.current) {\n // The element must be part of the DOMTree to use getComputedStyle\n // https://stackoverflow.com/questions/35360711/getcomputedstyle-returns-a-cssstyledeclaration-but-all-properties-are-empty-on-a\n const itemStyle = getComputedStyle(itemRef.current);\n setMarginBottom(parseInt(itemStyle.marginBottom, 10));\n }\n }, [hasError, isOnScreen]);\n const onErrorVisibleChanged = nextVisible => {\n if (!nextVisible) {\n setMarginBottom(null);\n }\n };\n // ======================== Status ========================\n const getValidateState = function () {\n let isDebounce = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n let status = '';\n const _errors = isDebounce ? debounceErrors : meta.errors;\n const _warnings = isDebounce ? debounceWarnings : meta.warnings;\n if (validateStatus !== undefined) {\n status = validateStatus;\n } else if (meta.validating) {\n status = 'validating';\n } else if (_errors.length) {\n status = 'error';\n } else if (_warnings.length) {\n status = 'warning';\n } else if (meta.touched || hasFeedback && meta.validated) {\n // success feedback should display when pass hasFeedback prop and current value is valid value\n status = 'success';\n }\n return status;\n };\n const mergedValidateStatus = getValidateState();\n const formItemStatusContext = React.useMemo(() => {\n let feedbackIcon;\n if (hasFeedback) {\n const IconNode = mergedValidateStatus && iconMap[mergedValidateStatus];\n feedbackIcon = IconNode ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${itemPrefixCls}-feedback-icon`, `${itemPrefixCls}-feedback-icon-${mergedValidateStatus}`)\n }, /*#__PURE__*/React.createElement(IconNode, null)) : null;\n }\n return {\n status: mergedValidateStatus,\n errors,\n warnings,\n hasFeedback,\n feedbackIcon,\n isFormItemInput: true\n };\n }, [mergedValidateStatus, hasFeedback]);\n // ======================== Render ========================\n const itemClassName = classNames(itemPrefixCls, className, rootClassName, {\n [`${itemPrefixCls}-with-help`]: hasHelp || debounceErrors.length || debounceWarnings.length,\n // Status\n [`${itemPrefixCls}-has-feedback`]: mergedValidateStatus && hasFeedback,\n [`${itemPrefixCls}-has-success`]: mergedValidateStatus === 'success',\n [`${itemPrefixCls}-has-warning`]: mergedValidateStatus === 'warning',\n [`${itemPrefixCls}-has-error`]: mergedValidateStatus === 'error',\n [`${itemPrefixCls}-is-validating`]: mergedValidateStatus === 'validating',\n [`${itemPrefixCls}-hidden`]: hidden\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: itemClassName,\n style: style,\n ref: itemRef\n }, /*#__PURE__*/React.createElement(Row, Object.assign({\n className: `${itemPrefixCls}-row`\n }, omit(restProps, ['_internalItemRender', 'colon', 'dependencies', 'extra', 'fieldKey', 'getValueFromEvent', 'getValueProps', 'htmlFor', 'id', 'initialValue', 'isListField', 'label', 'labelAlign', 'labelCol', 'labelWrap', 'messageVariables', 'name', 'normalize', 'noStyle', 'preserve', 'requiredMark', 'rules', 'shouldUpdate', 'trigger', 'tooltip', 'validateFirst', 'validateTrigger', 'valuePropName', 'wrapperCol'])), /*#__PURE__*/React.createElement(FormItemLabel, Object.assign({\n htmlFor: fieldId\n }, props, {\n requiredMark: requiredMark,\n required: required !== null && required !== void 0 ? required : isRequired,\n prefixCls: prefixCls\n })), /*#__PURE__*/React.createElement(FormItemInput, Object.assign({}, props, meta, {\n errors: debounceErrors,\n warnings: debounceWarnings,\n prefixCls: prefixCls,\n status: mergedValidateStatus,\n help: help,\n marginBottom: marginBottom,\n onErrorVisibleChanged: onErrorVisibleChanged\n }), /*#__PURE__*/React.createElement(NoStyleItemContext.Provider, {\n value: onSubItemMetaChange\n }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: formItemStatusContext\n }, children)))), !!marginBottom && /*#__PURE__*/React.createElement(\"div\", {\n className: `${itemPrefixCls}-margin-offset`,\n style: {\n marginBottom: -marginBottom\n }\n }));\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport classNames from 'classnames';\nimport { Field, FieldContext, ListContext } from 'rc-field-form';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport useFormItemStatus from '../hooks/useFormItemStatus';\nimport { ConfigContext } from '../../config-provider';\nimport { cloneElement, isValidElement } from '../../_util/reactNode';\nimport warning from '../../_util/warning';\nimport { FormContext, NoStyleItemContext } from '../context';\nimport useFrameState from '../hooks/useFrameState';\nimport useItemRef from '../hooks/useItemRef';\nimport { getFieldId, toArray } from '../util';\nimport ItemHolder from './ItemHolder';\nimport useStyle from '../style';\nconst NAME_SPLIT = '__SPLIT__';\nconst ValidateStatuses = ['success', 'warning', 'error', 'validating', ''];\nconst MemoInput = /*#__PURE__*/React.memo(_ref => {\n let {\n children\n } = _ref;\n return children;\n}, (prev, next) => prev.value === next.value && prev.update === next.update && prev.childProps.length === next.childProps.length && prev.childProps.every((value, index) => value === next.childProps[index]));\nfunction hasValidName(name) {\n if (name === null) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form.Item', '`null` is passed as `name` property') : void 0;\n }\n return !(name === undefined || name === null);\n}\nfunction genEmptyMeta() {\n return {\n errors: [],\n warnings: [],\n touched: false,\n validating: false,\n name: [],\n validated: false\n };\n}\nfunction InternalFormItem(props) {\n const {\n name,\n noStyle,\n className,\n dependencies,\n prefixCls: customizePrefixCls,\n shouldUpdate,\n rules,\n children,\n required,\n label,\n messageVariables,\n trigger = 'onChange',\n validateTrigger,\n hidden,\n help\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const {\n name: formName\n } = React.useContext(FormContext);\n const isRenderProps = typeof children === 'function';\n const notifyParentMetaChange = React.useContext(NoStyleItemContext);\n const {\n validateTrigger: contextValidateTrigger\n } = React.useContext(FieldContext);\n const mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : contextValidateTrigger;\n const hasName = hasValidName(name);\n const prefixCls = getPrefixCls('form', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n // ========================= MISC =========================\n // Get `noStyle` required info\n const listContext = React.useContext(ListContext);\n const fieldKeyPathRef = React.useRef();\n // ======================== Errors ========================\n // >>>>> Collect sub field errors\n const [subFieldErrors, setSubFieldErrors] = useFrameState({});\n // >>>>> Current field errors\n const [meta, setMeta] = useState(() => genEmptyMeta());\n const onMetaChange = nextMeta => {\n // This keyInfo is not correct when field is removed\n // Since origin keyManager no longer keep the origin key anymore\n // Which means we need cache origin one and reuse when removed\n const keyInfo = listContext === null || listContext === void 0 ? void 0 : listContext.getKey(nextMeta.name);\n // Destroy will reset all the meta\n setMeta(nextMeta.destroy ? genEmptyMeta() : nextMeta, true);\n // Bump to parent since noStyle\n if (noStyle && help !== false && notifyParentMetaChange) {\n let namePath = nextMeta.name;\n if (!nextMeta.destroy) {\n if (keyInfo !== undefined) {\n const [fieldKey, restPath] = keyInfo;\n namePath = [fieldKey].concat(_toConsumableArray(restPath));\n fieldKeyPathRef.current = namePath;\n }\n } else {\n // Use origin cache data\n namePath = fieldKeyPathRef.current || namePath;\n }\n notifyParentMetaChange(nextMeta, namePath);\n }\n };\n // >>>>> Collect noStyle Field error to the top FormItem\n const onSubItemMetaChange = (subMeta, uniqueKeys) => {\n // Only `noStyle` sub item will trigger\n setSubFieldErrors(prevSubFieldErrors => {\n const clone = Object.assign({}, prevSubFieldErrors);\n // name: ['user', 1] + key: [4] = ['user', 4]\n const mergedNamePath = [].concat(_toConsumableArray(subMeta.name.slice(0, -1)), _toConsumableArray(uniqueKeys));\n const mergedNameKey = mergedNamePath.join(NAME_SPLIT);\n if (subMeta.destroy) {\n // Remove\n delete clone[mergedNameKey];\n } else {\n // Update\n clone[mergedNameKey] = subMeta;\n }\n return clone;\n });\n };\n // >>>>> Get merged errors\n const [mergedErrors, mergedWarnings] = React.useMemo(() => {\n const errorList = _toConsumableArray(meta.errors);\n const warningList = _toConsumableArray(meta.warnings);\n Object.values(subFieldErrors).forEach(subFieldError => {\n errorList.push.apply(errorList, _toConsumableArray(subFieldError.errors || []));\n warningList.push.apply(warningList, _toConsumableArray(subFieldError.warnings || []));\n });\n return [errorList, warningList];\n }, [subFieldErrors, meta.errors, meta.warnings]);\n // ===================== Children Ref =====================\n const getItemRef = useItemRef();\n // ======================== Render ========================\n function renderLayout(baseChildren, fieldId, isRequired) {\n if (noStyle && !hidden) {\n return baseChildren;\n }\n return /*#__PURE__*/React.createElement(ItemHolder, Object.assign({\n key: \"row\"\n }, props, {\n className: classNames(className, hashId),\n prefixCls: prefixCls,\n fieldId: fieldId,\n isRequired: isRequired,\n errors: mergedErrors,\n warnings: mergedWarnings,\n meta: meta,\n onSubItemMetaChange: onSubItemMetaChange\n }), baseChildren);\n }\n if (!hasName && !isRenderProps && !dependencies) {\n return wrapSSR(renderLayout(children));\n }\n let variables = {};\n if (typeof label === 'string') {\n variables.label = label;\n } else if (name) {\n variables.label = String(name);\n }\n if (messageVariables) {\n variables = Object.assign(Object.assign({}, variables), messageVariables);\n }\n // >>>>> With Field\n return wrapSSR( /*#__PURE__*/React.createElement(Field, Object.assign({}, props, {\n messageVariables: variables,\n trigger: trigger,\n validateTrigger: mergedValidateTrigger,\n onMetaChange: onMetaChange\n }), (control, renderMeta, context) => {\n const mergedName = toArray(name).length && renderMeta ? renderMeta.name : [];\n const fieldId = getFieldId(mergedName, formName);\n const isRequired = required !== undefined ? required : !!(rules && rules.some(rule => {\n if (rule && typeof rule === 'object' && rule.required && !rule.warningOnly) {\n return true;\n }\n if (typeof rule === 'function') {\n const ruleEntity = rule(context);\n return ruleEntity && ruleEntity.required && !ruleEntity.warningOnly;\n }\n return false;\n }));\n // ======================= Children =======================\n const mergedControl = Object.assign({}, control);\n let childNode = null;\n process.env.NODE_ENV !== \"production\" ? warning(!(shouldUpdate && dependencies), 'Form.Item', \"`shouldUpdate` and `dependencies` shouldn't be used together. See https://u.ant.design/form-deps.\") : void 0;\n if (Array.isArray(children) && hasName) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form.Item', 'A `Form.Item` with a `name` prop must have a single child element. For information on how to render more complex form items, see https://u.ant.design/complex-form-item.') : void 0;\n childNode = children;\n } else if (isRenderProps && (!(shouldUpdate || dependencies) || hasName)) {\n process.env.NODE_ENV !== \"production\" ? warning(!!(shouldUpdate || dependencies), 'Form.Item', 'A `Form.Item` with a render function must have either `shouldUpdate` or `dependencies`.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!hasName, 'Form.Item', 'A `Form.Item` with a render function cannot be a field, and thus cannot have a `name` prop.') : void 0;\n } else if (dependencies && !isRenderProps && !hasName) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form.Item', 'Must set `name` or use a render function when `dependencies` is set.') : void 0;\n } else if (isValidElement(children)) {\n process.env.NODE_ENV !== \"production\" ? warning(children.props.defaultValue === undefined, 'Form.Item', '`defaultValue` will not work on controlled Field. You should use `initialValues` of Form instead.') : void 0;\n const childProps = Object.assign(Object.assign({}, children.props), mergedControl);\n if (!childProps.id) {\n childProps.id = fieldId;\n }\n if (help || mergedErrors.length > 0 || mergedWarnings.length > 0 || props.extra) {\n const describedbyArr = [];\n if (help || mergedErrors.length > 0) {\n describedbyArr.push(`${fieldId}_help`);\n }\n if (props.extra) {\n describedbyArr.push(`${fieldId}_extra`);\n }\n childProps['aria-describedby'] = describedbyArr.join(' ');\n }\n if (mergedErrors.length > 0) {\n childProps['aria-invalid'] = 'true';\n }\n if (isRequired) {\n childProps['aria-required'] = 'true';\n }\n if (supportRef(children)) {\n childProps.ref = getItemRef(mergedName, children);\n }\n // We should keep user origin event handler\n const triggers = new Set([].concat(_toConsumableArray(toArray(trigger)), _toConsumableArray(toArray(mergedValidateTrigger))));\n triggers.forEach(eventName => {\n childProps[eventName] = function () {\n var _a2, _c2;\n var _a, _b, _c;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_a = mergedControl[eventName]) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [mergedControl].concat(args));\n (_c = (_b = children.props)[eventName]) === null || _c === void 0 ? void 0 : (_c2 = _c).call.apply(_c2, [_b].concat(args));\n };\n });\n // List of props that need to be watched for changes -> if changes are detected in MemoInput -> rerender\n const watchingChildProps = [childProps['aria-required'], childProps['aria-invalid'], childProps['aria-describedby']];\n childNode = /*#__PURE__*/React.createElement(MemoInput, {\n value: mergedControl[props.valuePropName || 'value'],\n update: children,\n childProps: watchingChildProps\n }, cloneElement(children, childProps));\n } else if (isRenderProps && (shouldUpdate || dependencies) && !hasName) {\n childNode = children(context);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(!mergedName.length, 'Form.Item', '`name` is only used for validate React element. If you are using Form.Item as layout display, please remove `name` instead.') : void 0;\n childNode = children;\n }\n return renderLayout(childNode, fieldId, isRequired);\n }));\n}\nconst FormItem = InternalFormItem;\nFormItem.useStatus = useFormItemStatus;\nexport default FormItem;","import raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nexport default function useFrameState(defaultValue) {\n const [value, setValue] = React.useState(defaultValue);\n const frameRef = useRef(null);\n const batchRef = useRef([]);\n const destroyRef = useRef(false);\n React.useEffect(() => {\n destroyRef.current = false;\n return () => {\n destroyRef.current = true;\n raf.cancel(frameRef.current);\n frameRef.current = null;\n };\n }, []);\n function setFrameValue(updater) {\n if (destroyRef.current) {\n return;\n }\n if (frameRef.current === null) {\n batchRef.current = [];\n frameRef.current = raf(() => {\n frameRef.current = null;\n setValue(prevValue => {\n let current = prevValue;\n batchRef.current.forEach(func => {\n current = func(current);\n });\n return current;\n });\n });\n }\n batchRef.current.push(updater);\n }\n return [value, setFrameValue];\n}","import { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { FormContext } from '../context';\nexport default function useItemRef() {\n const {\n itemRef\n } = React.useContext(FormContext);\n const cacheRef = React.useRef({});\n function getRef(name, children) {\n const childrenRef = children && typeof children === 'object' && children.ref;\n const nameStr = name.join('_');\n if (cacheRef.current.name !== nameStr || cacheRef.current.originRef !== childrenRef) {\n cacheRef.current.name = nameStr;\n cacheRef.current.originRef = childrenRef;\n cacheRef.current.ref = composeRef(itemRef(name), childrenRef);\n }\n return cacheRef.current.ref;\n }\n return getRef;\n}","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { List } from 'rc-field-form';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport warning from '../_util/warning';\nimport { FormItemPrefixContext } from './context';\nconst FormList = _a => {\n var {\n prefixCls: customizePrefixCls,\n children\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"children\"]);\n process.env.NODE_ENV !== \"production\" ? warning(!!props.name, 'Form.List', 'Miss `name` prop.') : void 0;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('form', customizePrefixCls);\n const contextValue = React.useMemo(() => ({\n prefixCls,\n status: 'error'\n }), [prefixCls]);\n return /*#__PURE__*/React.createElement(List, Object.assign({}, props), (fields, operation, meta) => /*#__PURE__*/React.createElement(FormItemPrefixContext.Provider, {\n value: contextValue\n }, children(fields.map(field => Object.assign(Object.assign({}, field), {\n fieldKey: field.key\n })), operation, {\n errors: meta.errors,\n warnings: meta.warnings\n })));\n};\nexport default FormList;","import warning from '../_util/warning';\nimport { FormProvider } from './context';\nimport ErrorList from './ErrorList';\nimport InternalForm, { useForm, useWatch } from './Form';\nimport Item from './FormItem';\nimport List from './FormList';\nimport useFormInstance from './hooks/useFormInstance';\nconst Form = InternalForm;\nForm.Item = Item;\nForm.List = List;\nForm.ErrorList = ErrorList;\nForm.useForm = useForm;\nForm.useFormInstance = useFormInstance;\nForm.useWatch = useWatch;\nForm.Provider = FormProvider;\nForm.create = () => {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form', 'antd v4 removed `Form.create`. Please remove or use `@ant-design/compatible` instead.') : void 0;\n};\nexport default Form;","import { useContext } from 'react';\nimport { FormContext } from '../context';\nexport default function useFormInstance() {\n const {\n form\n } = useContext(FormContext);\n return form;\n}","// This icon file is generated automatically.\nvar EyeOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\" } }] }, \"name\": \"eye\", \"theme\": \"outlined\" };\nexport default EyeOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EyeOutlinedSvg from \"@ant-design/icons-svg/es/asn/EyeOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EyeOutlined = function EyeOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EyeOutlinedSvg\n }));\n};\nEyeOutlined.displayName = 'EyeOutlined';\nexport default /*#__PURE__*/React.forwardRef(EyeOutlined);","// This icon file is generated automatically.\nvar EyeInvisibleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zm-63.57-320.64L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z\" } }] }, \"name\": \"eye-invisible\", \"theme\": \"outlined\" };\nexport default EyeInvisibleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport EyeInvisibleOutlinedSvg from \"@ant-design/icons-svg/es/asn/EyeInvisibleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar EyeInvisibleOutlined = function EyeInvisibleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: EyeInvisibleOutlinedSvg\n }));\n};\nEyeInvisibleOutlined.displayName = 'EyeInvisibleOutlined';\nexport default /*#__PURE__*/React.forwardRef(EyeInvisibleOutlined);","// handle border collapse\nfunction compactItemBorder(token, parentCls, options) {\n const {\n focusElCls,\n focus,\n borderElCls\n } = options;\n const childCombinator = borderElCls ? '> *' : '';\n const hoverEffects = ['hover', focus ? 'focus' : null, 'active'].filter(Boolean).map(n => `&:${n} ${childCombinator}`).join(',');\n return {\n [`&-item:not(${parentCls}-last-item)`]: {\n marginInlineEnd: -token.lineWidth\n },\n '&-item': Object.assign(Object.assign({\n [hoverEffects]: {\n zIndex: 2\n }\n }, focusElCls ? {\n [`&${focusElCls}`]: {\n zIndex: 2\n }\n } : {}), {\n [`&[disabled] ${childCombinator}`]: {\n zIndex: 0\n }\n })\n };\n}\n// handle border-radius\nfunction compactItemBorderRadius(prefixCls, parentCls, options) {\n const {\n borderElCls\n } = options;\n const childCombinator = borderElCls ? `> ${borderElCls}` : '';\n return {\n [`&-item:not(${parentCls}-first-item):not(${parentCls}-last-item) ${childCombinator}`]: {\n borderRadius: 0\n },\n [`&-item:not(${parentCls}-last-item)${parentCls}-first-item`]: {\n [`& ${childCombinator}, &${prefixCls}-sm ${childCombinator}, &${prefixCls}-lg ${childCombinator}`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`&-item:not(${parentCls}-first-item)${parentCls}-last-item`]: {\n [`& ${childCombinator}, &${prefixCls}-sm ${childCombinator}, &${prefixCls}-lg ${childCombinator}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n }\n };\n}\nexport function genCompactItemStyle(token) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n focus: true\n };\n const {\n componentCls\n } = token;\n const compactCls = `${componentCls}-compact`;\n return {\n [compactCls]: Object.assign(Object.assign({}, compactItemBorder(token, compactCls, options)), compactItemBorderRadius(componentCls, compactCls, options))\n };\n}","import { clearFix, resetComponent } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nexport const genPlaceholderStyle = color => ({\n // Firefox\n '&::-moz-placeholder': {\n opacity: 1\n },\n '&::placeholder': {\n color,\n userSelect: 'none' // https://github.com/ant-design/ant-design/pull/32639\n },\n\n '&:placeholder-shown': {\n textOverflow: 'ellipsis'\n }\n});\nexport const genHoverStyle = token => ({\n borderColor: token.inputBorderHoverColor,\n borderInlineEndWidth: token.lineWidth\n});\nexport const genActiveStyle = token => ({\n borderColor: token.inputBorderHoverColor,\n boxShadow: `0 0 0 ${token.controlOutlineWidth}px ${token.controlOutline}`,\n borderInlineEndWidth: token.lineWidth,\n outline: 0\n});\nexport const genDisabledStyle = token => ({\n color: token.colorTextDisabled,\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n boxShadow: 'none',\n cursor: 'not-allowed',\n opacity: 1,\n '&:hover': Object.assign({}, genHoverStyle(mergeToken(token, {\n inputBorderHoverColor: token.colorBorder\n })))\n});\nconst genInputLargeStyle = token => {\n const {\n inputPaddingVerticalLG,\n fontSizeLG,\n lineHeightLG,\n borderRadiusLG,\n inputPaddingHorizontalLG\n } = token;\n return {\n padding: `${inputPaddingVerticalLG}px ${inputPaddingHorizontalLG}px`,\n fontSize: fontSizeLG,\n lineHeight: lineHeightLG,\n borderRadius: borderRadiusLG\n };\n};\nexport const genInputSmallStyle = token => ({\n padding: `${token.inputPaddingVerticalSM}px ${token.controlPaddingHorizontalSM - 1}px`,\n borderRadius: token.borderRadiusSM\n});\nexport const genStatusStyle = (token, parentCls) => {\n const {\n componentCls,\n colorError,\n colorWarning,\n colorErrorOutline,\n colorWarningOutline,\n colorErrorBorderHover,\n colorWarningBorderHover\n } = token;\n return {\n [`&-status-error:not(${parentCls}-disabled):not(${parentCls}-borderless)${parentCls}`]: {\n borderColor: colorError,\n '&:hover': {\n borderColor: colorErrorBorderHover\n },\n '&:focus, &-focused': Object.assign({}, genActiveStyle(mergeToken(token, {\n inputBorderActiveColor: colorError,\n inputBorderHoverColor: colorError,\n controlOutline: colorErrorOutline\n }))),\n [`${componentCls}-prefix, ${componentCls}-suffix`]: {\n color: colorError\n }\n },\n [`&-status-warning:not(${parentCls}-disabled):not(${parentCls}-borderless)${parentCls}`]: {\n borderColor: colorWarning,\n '&:hover': {\n borderColor: colorWarningBorderHover\n },\n '&:focus, &-focused': Object.assign({}, genActiveStyle(mergeToken(token, {\n inputBorderActiveColor: colorWarning,\n inputBorderHoverColor: colorWarning,\n controlOutline: colorWarningOutline\n }))),\n [`${componentCls}-prefix, ${componentCls}-suffix`]: {\n color: colorWarning\n }\n }\n };\n};\nexport const genBasicInputStyle = token => Object.assign(Object.assign({\n position: 'relative',\n display: 'inline-block',\n width: '100%',\n minWidth: 0,\n padding: `${token.inputPaddingVertical}px ${token.inputPaddingHorizontal}px`,\n color: token.colorText,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n backgroundColor: token.colorBgContainer,\n backgroundImage: 'none',\n borderWidth: token.lineWidth,\n borderStyle: token.lineType,\n borderColor: token.colorBorder,\n borderRadius: token.borderRadius,\n transition: `all ${token.motionDurationMid}`\n}, genPlaceholderStyle(token.colorTextPlaceholder)), {\n '&:hover': Object.assign({}, genHoverStyle(token)),\n '&:focus, &-focused': Object.assign({}, genActiveStyle(token)),\n '&-disabled, &[disabled]': Object.assign({}, genDisabledStyle(token)),\n '&-borderless': {\n '&, &:hover, &:focus, &-focused, &-disabled, &[disabled]': {\n backgroundColor: 'transparent',\n border: 'none',\n boxShadow: 'none'\n }\n },\n // Reset height for `textarea`s\n 'textarea&': {\n maxWidth: '100%',\n height: 'auto',\n minHeight: token.controlHeight,\n lineHeight: token.lineHeight,\n verticalAlign: 'bottom',\n transition: `all ${token.motionDurationSlow}, height 0s`,\n resize: 'vertical'\n },\n // Size\n '&-lg': Object.assign({}, genInputLargeStyle(token)),\n '&-sm': Object.assign({}, genInputSmallStyle(token)),\n // RTL\n '&-rtl': {\n direction: 'rtl'\n },\n '&-textarea-rtl': {\n direction: 'rtl'\n }\n});\nexport const genInputGroupStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n return {\n position: 'relative',\n display: 'table',\n width: '100%',\n borderCollapse: 'separate',\n borderSpacing: 0,\n // Undo padding and float of grid classes\n [`&[class*='col-']`]: {\n paddingInlineEnd: token.paddingXS,\n '&:last-child': {\n paddingInlineEnd: 0\n }\n },\n // Sizing options\n [`&-lg ${componentCls}, &-lg > ${componentCls}-group-addon`]: Object.assign({}, genInputLargeStyle(token)),\n [`&-sm ${componentCls}, &-sm > ${componentCls}-group-addon`]: Object.assign({}, genInputSmallStyle(token)),\n // Fix https://github.com/ant-design/ant-design/issues/5754\n [`&-lg ${antCls}-select-single ${antCls}-select-selector`]: {\n height: token.controlHeightLG\n },\n [`&-sm ${antCls}-select-single ${antCls}-select-selector`]: {\n height: token.controlHeightSM\n },\n [`> ${componentCls}`]: {\n display: 'table-cell',\n '&:not(:first-child):not(:last-child)': {\n borderRadius: 0\n }\n },\n [`${componentCls}-group`]: {\n [`&-addon, &-wrap`]: {\n display: 'table-cell',\n width: 1,\n whiteSpace: 'nowrap',\n verticalAlign: 'middle',\n '&:not(:first-child):not(:last-child)': {\n borderRadius: 0\n }\n },\n '&-wrap > *': {\n display: 'block !important'\n },\n '&-addon': {\n position: 'relative',\n padding: `0 ${token.inputPaddingHorizontal}px`,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n textAlign: 'center',\n backgroundColor: token.colorFillAlter,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadius,\n transition: `all ${token.motionDurationSlow}`,\n lineHeight: 1,\n // Reset Select's style in addon\n [`${antCls}-select`]: {\n margin: `-${token.inputPaddingVertical + 1}px -${token.inputPaddingHorizontal}px`,\n [`&${antCls}-select-single:not(${antCls}-select-customize-input)`]: {\n [`${antCls}-select-selector`]: {\n backgroundColor: 'inherit',\n border: `${token.lineWidth}px ${token.lineType} transparent`,\n boxShadow: 'none'\n }\n },\n '&-open, &-focused': {\n [`${antCls}-select-selector`]: {\n color: token.colorPrimary\n }\n }\n },\n // https://github.com/ant-design/ant-design/issues/31333\n [`${antCls}-cascader-picker`]: {\n margin: `-9px -${token.inputPaddingHorizontal}px`,\n backgroundColor: 'transparent',\n [`${antCls}-cascader-input`]: {\n textAlign: 'start',\n border: 0,\n boxShadow: 'none'\n }\n }\n },\n '&-addon:first-child': {\n borderInlineEnd: 0\n },\n '&-addon:last-child': {\n borderInlineStart: 0\n }\n },\n [`${componentCls}`]: {\n width: '100%',\n marginBottom: 0,\n textAlign: 'inherit',\n '&:focus': {\n zIndex: 1,\n borderInlineEndWidth: 1\n },\n '&:hover': {\n zIndex: 1,\n borderInlineEndWidth: 1,\n [`${componentCls}-search-with-button &`]: {\n zIndex: 0\n }\n }\n },\n // Reset rounded corners\n [`> ${componentCls}:first-child, ${componentCls}-group-addon:first-child`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n // Reset Select's style in addon\n [`${antCls}-select ${antCls}-select-selector`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`> ${componentCls}-affix-wrapper`]: {\n [`&:not(:first-child) ${componentCls}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n },\n [`&:not(:last-child) ${componentCls}`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`> ${componentCls}:last-child, ${componentCls}-group-addon:last-child`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n // Reset Select's style in addon\n [`${antCls}-select ${antCls}-select-selector`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n },\n [`${componentCls}-affix-wrapper`]: {\n '&:not(:last-child)': {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n [`${componentCls}-search &`]: {\n borderStartStartRadius: token.borderRadius,\n borderEndStartRadius: token.borderRadius\n }\n },\n [`&:not(:first-child), ${componentCls}-search &:not(:first-child)`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n },\n [`&${componentCls}-group-compact`]: Object.assign(Object.assign({\n display: 'block'\n }, clearFix()), {\n [`${componentCls}-group-addon, ${componentCls}-group-wrap, > ${componentCls}`]: {\n '&:not(:first-child):not(:last-child)': {\n borderInlineEndWidth: token.lineWidth,\n '&:hover': {\n zIndex: 1\n },\n '&:focus': {\n zIndex: 1\n }\n }\n },\n '& > *': {\n display: 'inline-block',\n float: 'none',\n verticalAlign: 'top',\n borderRadius: 0\n },\n [`& > ${componentCls}-affix-wrapper`]: {\n display: 'inline-flex'\n },\n [`& > ${antCls}-picker-range`]: {\n display: 'inline-flex'\n },\n '& > *:not(:last-child)': {\n marginInlineEnd: -token.lineWidth,\n borderInlineEndWidth: token.lineWidth\n },\n // Undo float for .ant-input-group .ant-input\n [`${componentCls}`]: {\n float: 'none'\n },\n // reset border for Select, DatePicker, AutoComplete, Cascader, Mention, TimePicker, Input\n [`& > ${antCls}-select > ${antCls}-select-selector,\n & > ${antCls}-select-auto-complete ${componentCls},\n & > ${antCls}-cascader-picker ${componentCls},\n & > ${componentCls}-group-wrapper ${componentCls}`]: {\n borderInlineEndWidth: token.lineWidth,\n borderRadius: 0,\n '&:hover': {\n zIndex: 1\n },\n '&:focus': {\n zIndex: 1\n }\n },\n [`& > ${antCls}-select-focused`]: {\n zIndex: 1\n },\n // update z-index for arrow icon\n [`& > ${antCls}-select > ${antCls}-select-arrow`]: {\n zIndex: 1 // https://github.com/ant-design/ant-design/issues/20371\n },\n [`& > *:first-child,\n & > ${antCls}-select:first-child > ${antCls}-select-selector,\n & > ${antCls}-select-auto-complete:first-child ${componentCls},\n & > ${antCls}-cascader-picker:first-child ${componentCls}`]: {\n borderStartStartRadius: token.borderRadius,\n borderEndStartRadius: token.borderRadius\n },\n [`& > *:last-child,\n & > ${antCls}-select:last-child > ${antCls}-select-selector,\n & > ${antCls}-cascader-picker:last-child ${componentCls},\n & > ${antCls}-cascader-picker-focused:last-child ${componentCls}`]: {\n borderInlineEndWidth: token.lineWidth,\n borderStartEndRadius: token.borderRadius,\n borderEndEndRadius: token.borderRadius\n },\n // https://github.com/ant-design/ant-design/issues/12493\n [`& > ${antCls}-select-auto-complete ${componentCls}`]: {\n verticalAlign: 'top'\n },\n [`${componentCls}-group-wrapper + ${componentCls}-group-wrapper`]: {\n marginInlineStart: -token.lineWidth,\n [`${componentCls}-affix-wrapper`]: {\n borderRadius: 0\n }\n },\n [`${componentCls}-group-wrapper:not(:last-child)`]: {\n [`&${componentCls}-search > ${componentCls}-group`]: {\n [`& > ${componentCls}-group-addon > ${componentCls}-search-button`]: {\n borderRadius: 0\n },\n [`& > ${componentCls}`]: {\n borderStartStartRadius: token.borderRadius,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n borderEndStartRadius: token.borderRadius\n }\n }\n }\n })\n };\n};\nconst genInputStyle = token => {\n const {\n componentCls,\n controlHeightSM,\n lineWidth\n } = token;\n const FIXED_CHROME_COLOR_HEIGHT = 16;\n const colorSmallPadding = (controlHeightSM - lineWidth * 2 - FIXED_CHROME_COLOR_HEIGHT) / 2;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genBasicInputStyle(token)), genStatusStyle(token, componentCls)), {\n '&[type=\"color\"]': {\n height: token.controlHeight,\n [`&${componentCls}-lg`]: {\n height: token.controlHeightLG\n },\n [`&${componentCls}-sm`]: {\n height: controlHeightSM,\n paddingTop: colorSmallPadding,\n paddingBottom: colorSmallPadding\n }\n },\n '&[type=\"search\"]::-webkit-search-cancel-button, &[type=\"search\"]::-webkit-search-decoration': {\n '-webkit-appearance': 'none'\n }\n })\n };\n};\nconst genAllowClearStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // ========================= Input =========================\n [`${componentCls}-clear-icon`]: {\n margin: 0,\n color: token.colorTextQuaternary,\n fontSize: token.fontSizeIcon,\n verticalAlign: -1,\n // https://github.com/ant-design/ant-design/pull/18151\n // https://codesandbox.io/s/wizardly-sun-u10br\n cursor: 'pointer',\n transition: `color ${token.motionDurationSlow}`,\n '&:hover': {\n color: token.colorTextTertiary\n },\n '&:active': {\n color: token.colorText\n },\n '&-hidden': {\n visibility: 'hidden'\n },\n '&-has-suffix': {\n margin: `0 ${token.inputAffixPadding}px`\n }\n }\n };\n};\nconst genAffixStyle = token => {\n const {\n componentCls,\n inputAffixPadding,\n colorTextDescription,\n motionDurationSlow,\n colorIcon,\n colorIconHover,\n iconCls\n } = token;\n return {\n [`${componentCls}-affix-wrapper`]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, genBasicInputStyle(token)), {\n display: 'inline-flex',\n [`&:not(${componentCls}-affix-wrapper-disabled):hover`]: Object.assign(Object.assign({}, genHoverStyle(token)), {\n zIndex: 1,\n [`${componentCls}-search-with-button &`]: {\n zIndex: 0\n }\n }),\n '&-focused, &:focus': {\n zIndex: 1\n },\n '&-disabled': {\n [`${componentCls}[disabled]`]: {\n background: 'transparent'\n }\n },\n [`> input${componentCls}`]: {\n padding: 0,\n fontSize: 'inherit',\n border: 'none',\n borderRadius: 0,\n outline: 'none',\n '&:focus': {\n boxShadow: 'none !important'\n }\n },\n '&::before': {\n width: 0,\n visibility: 'hidden',\n content: '\"\\\\a0\"'\n },\n [`${componentCls}`]: {\n '&-prefix, &-suffix': {\n display: 'flex',\n flex: 'none',\n alignItems: 'center',\n '> *:not(:last-child)': {\n marginInlineEnd: token.paddingXS\n }\n },\n '&-show-count-suffix': {\n color: colorTextDescription\n },\n '&-show-count-has-suffix': {\n marginInlineEnd: token.paddingXXS\n },\n '&-prefix': {\n marginInlineEnd: inputAffixPadding\n },\n '&-suffix': {\n marginInlineStart: inputAffixPadding\n }\n }\n }), genAllowClearStyle(token)), {\n // password\n [`${iconCls}${componentCls}-password-icon`]: {\n color: colorIcon,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '&:hover': {\n color: colorIconHover\n }\n }\n }), genStatusStyle(token, `${componentCls}-affix-wrapper`))\n };\n};\nconst genGroupStyle = token => {\n const {\n componentCls,\n colorError,\n colorWarning,\n borderRadiusLG,\n borderRadiusSM\n } = token;\n return {\n [`${componentCls}-group`]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genInputGroupStyle(token)), {\n '&-rtl': {\n direction: 'rtl'\n },\n '&-wrapper': {\n display: 'inline-block',\n width: '100%',\n textAlign: 'start',\n verticalAlign: 'top',\n '&-rtl': {\n direction: 'rtl'\n },\n // Size\n '&-lg': {\n [`${componentCls}-group-addon`]: {\n borderRadius: borderRadiusLG\n }\n },\n '&-sm': {\n [`${componentCls}-group-addon`]: {\n borderRadius: borderRadiusSM\n }\n },\n // Status\n '&-status-error': {\n [`${componentCls}-group-addon`]: {\n color: colorError,\n borderColor: colorError\n }\n },\n '&-status-warning': {\n [`${componentCls}-group-addon`]: {\n color: colorWarning,\n borderColor: colorWarning\n }\n },\n '&-disabled': {\n [`${componentCls}-group-addon`]: Object.assign({}, genDisabledStyle(token))\n }\n }\n })\n };\n};\nconst genSearchInputStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n const searchPrefixCls = `${componentCls}-search`;\n return {\n [searchPrefixCls]: {\n [`${componentCls}`]: {\n '&:hover, &:focus': {\n borderColor: token.colorPrimaryHover,\n [`+ ${componentCls}-group-addon ${searchPrefixCls}-button:not(${antCls}-btn-primary)`]: {\n borderInlineStartColor: token.colorPrimaryHover\n }\n }\n },\n [`${componentCls}-affix-wrapper`]: {\n borderRadius: 0\n },\n // fix slight height diff in Firefox:\n // https://ant.design/components/auto-complete-cn/#components-auto-complete-demo-certain-category\n [`${componentCls}-lg`]: {\n lineHeight: token.lineHeightLG - 0.0002\n },\n [`> ${componentCls}-group`]: {\n [`> ${componentCls}-group-addon:last-child`]: {\n insetInlineStart: -1,\n padding: 0,\n border: 0,\n [`${searchPrefixCls}-button`]: {\n paddingTop: 0,\n paddingBottom: 0,\n borderStartStartRadius: 0,\n borderStartEndRadius: token.borderRadius,\n borderEndEndRadius: token.borderRadius,\n borderEndStartRadius: 0\n },\n [`${searchPrefixCls}-button:not(${antCls}-btn-primary)`]: {\n color: token.colorTextDescription,\n '&:hover': {\n color: token.colorPrimaryHover\n },\n '&:active': {\n color: token.colorPrimaryActive\n },\n [`&${antCls}-btn-loading::before`]: {\n insetInlineStart: 0,\n insetInlineEnd: 0,\n insetBlockStart: 0,\n insetBlockEnd: 0\n }\n }\n }\n },\n [`${searchPrefixCls}-button`]: {\n height: token.controlHeight,\n '&:hover, &:focus': {\n zIndex: 1\n }\n },\n [`&-large ${searchPrefixCls}-button`]: {\n height: token.controlHeightLG\n },\n [`&-small ${searchPrefixCls}-button`]: {\n height: token.controlHeightSM\n },\n '&-rtl': {\n direction: 'rtl'\n },\n // ===================== Compact Item Customized Styles =====================\n [`&${componentCls}-compact-item`]: {\n [`&:not(${componentCls}-compact-last-item)`]: {\n [`${componentCls}-group-addon`]: {\n [`${componentCls}-search-button`]: {\n marginInlineEnd: -token.lineWidth,\n borderRadius: 0\n }\n }\n },\n [`&:not(${componentCls}-compact-first-item)`]: {\n [`${componentCls},${componentCls}-affix-wrapper`]: {\n borderRadius: 0\n }\n },\n [`> ${componentCls}-group-addon ${componentCls}-search-button,\n > ${componentCls},\n ${componentCls}-affix-wrapper`]: {\n '&:hover,&:focus,&:active': {\n zIndex: 2\n }\n },\n [`> ${componentCls}-affix-wrapper-focused`]: {\n zIndex: 2\n }\n }\n }\n };\n};\nexport function initInputToken(token) {\n // @ts-ignore\n return mergeToken(token, {\n inputAffixPadding: token.paddingXXS,\n inputPaddingVertical: Math.max(Math.round((token.controlHeight - token.fontSize * token.lineHeight) / 2 * 10) / 10 - token.lineWidth, 3),\n inputPaddingVerticalLG: Math.ceil((token.controlHeightLG - token.fontSizeLG * token.lineHeightLG) / 2 * 10) / 10 - token.lineWidth,\n inputPaddingVerticalSM: Math.max(Math.round((token.controlHeightSM - token.fontSize * token.lineHeight) / 2 * 10) / 10 - token.lineWidth, 0),\n inputPaddingHorizontal: token.paddingSM - token.lineWidth,\n inputPaddingHorizontalSM: token.paddingXS - token.lineWidth,\n inputPaddingHorizontalLG: token.controlPaddingHorizontal - token.lineWidth,\n inputBorderHoverColor: token.colorPrimaryHover,\n inputBorderActiveColor: token.colorPrimaryHover\n });\n}\nconst genTextAreaStyle = token => {\n const {\n componentCls,\n paddingLG\n } = token;\n const textareaPrefixCls = `${componentCls}-textarea`;\n return {\n [textareaPrefixCls]: {\n position: 'relative',\n '&-show-count': {\n // https://github.com/ant-design/ant-design/issues/33049\n [`> ${componentCls}`]: {\n height: '100%'\n },\n [`${componentCls}-data-count`]: {\n position: 'absolute',\n bottom: -token.fontSize * token.lineHeight,\n insetInlineEnd: 0,\n color: token.colorTextDescription,\n whiteSpace: 'nowrap',\n pointerEvents: 'none'\n }\n },\n [`&-affix-wrapper${textareaPrefixCls}-has-feedback`]: {\n [`${componentCls}`]: {\n paddingInlineEnd: paddingLG\n }\n },\n [`&-affix-wrapper${componentCls}-affix-wrapper`]: {\n padding: 0,\n [`> textarea${componentCls}`]: {\n fontSize: 'inherit',\n border: 'none',\n outline: 'none',\n '&:focus': {\n boxShadow: 'none !important'\n }\n },\n [`${componentCls}-suffix`]: {\n margin: 0,\n '> *:not(:last-child)': {\n marginInline: 0\n },\n // Clear Icon\n [`${componentCls}-clear-icon`]: {\n position: 'absolute',\n insetInlineEnd: token.paddingXS,\n insetBlockStart: token.paddingXS\n },\n // Feedback Icon\n [`${textareaPrefixCls}-suffix`]: {\n position: 'absolute',\n top: 0,\n insetInlineEnd: token.inputPaddingHorizontal,\n bottom: 0,\n zIndex: 1,\n display: 'inline-flex',\n alignItems: 'center',\n margin: 'auto',\n pointerEvents: 'none'\n }\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Input', token => {\n const inputToken = initInputToken(token);\n return [genInputStyle(inputToken), genTextAreaStyle(inputToken), genAffixStyle(inputToken), genGroupStyle(inputToken), genSearchInputStyle(inputToken),\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(inputToken)];\n});","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { FormItemInputContext } from '../form/context';\nimport warning from '../_util/warning';\nimport useStyle from './style';\nconst Group = props => {\n const {\n getPrefixCls,\n direction\n } = useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className = ''\n } = props;\n const prefixCls = getPrefixCls('input-group', customizePrefixCls);\n const inputPrefixCls = getPrefixCls('input');\n const [wrapSSR, hashId] = useStyle(inputPrefixCls);\n const cls = classNames(prefixCls, {\n [`${prefixCls}-lg`]: props.size === 'large',\n [`${prefixCls}-sm`]: props.size === 'small',\n [`${prefixCls}-compact`]: props.compact,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, hashId, className);\n const formItemContext = useContext(FormItemInputContext);\n const groupFormItemContext = useMemo(() => Object.assign(Object.assign({}, formItemContext), {\n isFormItemInput: false\n }), [formItemContext]);\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Input.Group', `'Input.Group' is deprecated. Please use 'Space.Compact' instead.`) : void 0;\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"span\", {\n className: cls,\n style: props.style,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onFocus: props.onFocus,\n onBlur: props.onBlur\n }, /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: groupFormItemContext\n }, props.children)));\n};\nexport default Group;","export function hasAddon(props) {\n return !!(props.addonBefore || props.addonAfter);\n}\nexport function hasPrefixSuffix(props) {\n return !!(props.prefix || props.suffix || props.allowClear);\n}\nexport function resolveOnChange(target, e, onChange, targetValue) {\n if (!onChange) {\n return;\n }\n var event = e;\n if (e.type === 'click') {\n // Clone a new target for event.\n // Avoid the following usage, the setQuery method gets the original value.\n //\n // const [query, setQuery] = React.useState('');\n // {\n // setQuery((prevStatus) => e.target.value);\n // }}\n // />\n\n var currentTarget = target.cloneNode(true);\n\n // click clear icon\n event = Object.create(e, {\n target: {\n value: currentTarget\n },\n currentTarget: {\n value: currentTarget\n }\n });\n currentTarget.value = '';\n onChange(event);\n return;\n }\n\n // Trigger by composition event, this means we need force change the input value\n if (targetValue !== undefined) {\n event = Object.create(e, {\n target: {\n value: target\n },\n currentTarget: {\n value: target\n }\n });\n target.value = targetValue;\n onChange(event);\n return;\n }\n onChange(event);\n}\nexport function triggerFocus(element, option) {\n if (!element) return;\n element.focus(option);\n\n // Selection content\n var _ref = option || {},\n cursor = _ref.cursor;\n if (cursor) {\n var len = element.value.length;\n switch (cursor) {\n case 'start':\n element.setSelectionRange(0, 0);\n break;\n case 'end':\n element.setSelectionRange(len, len);\n break;\n default:\n element.setSelectionRange(0, len);\n }\n }\n}\nexport function fixControlledValue(value) {\n if (typeof value === 'undefined' || value === null) {\n return '';\n }\n return String(value);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport clsx from 'classnames';\nimport React, { cloneElement, useRef } from 'react';\nimport { hasAddon, hasPrefixSuffix } from \"./utils/commonUtils\";\nvar BaseInput = function BaseInput(props) {\n var _inputElement$props, _inputElement$props2;\n var inputElement = props.inputElement,\n prefixCls = props.prefixCls,\n prefix = props.prefix,\n suffix = props.suffix,\n addonBefore = props.addonBefore,\n addonAfter = props.addonAfter,\n className = props.className,\n style = props.style,\n disabled = props.disabled,\n readOnly = props.readOnly,\n focused = props.focused,\n triggerFocus = props.triggerFocus,\n allowClear = props.allowClear,\n value = props.value,\n handleReset = props.handleReset,\n hidden = props.hidden,\n classes = props.classes,\n classNames = props.classNames,\n dataAttrs = props.dataAttrs,\n styles = props.styles;\n var containerRef = useRef(null);\n var onInputClick = function onInputClick(e) {\n var _containerRef$current;\n if ((_containerRef$current = containerRef.current) !== null && _containerRef$current !== void 0 && _containerRef$current.contains(e.target)) {\n triggerFocus === null || triggerFocus === void 0 ? void 0 : triggerFocus();\n }\n };\n\n // ================== Clear Icon ================== //\n var getClearIcon = function getClearIcon() {\n var _clsx;\n if (!allowClear) {\n return null;\n }\n var needClear = !disabled && !readOnly && value;\n var clearIconCls = \"\".concat(prefixCls, \"-clear-icon\");\n var iconNode = _typeof(allowClear) === 'object' && allowClear !== null && allowClear !== void 0 && allowClear.clearIcon ? allowClear.clearIcon : '✖';\n return /*#__PURE__*/React.createElement(\"span\", {\n onClick: handleReset\n // Do not trigger onBlur when clear input\n // https://github.com/ant-design/ant-design/issues/31200\n ,\n onMouseDown: function onMouseDown(e) {\n return e.preventDefault();\n },\n className: clsx(clearIconCls, (_clsx = {}, _defineProperty(_clsx, \"\".concat(clearIconCls, \"-hidden\"), !needClear), _defineProperty(_clsx, \"\".concat(clearIconCls, \"-has-suffix\"), !!suffix), _clsx)),\n role: \"button\",\n tabIndex: -1\n }, iconNode);\n };\n var element = /*#__PURE__*/cloneElement(inputElement, {\n value: value,\n hidden: hidden,\n className: clsx((_inputElement$props = inputElement.props) === null || _inputElement$props === void 0 ? void 0 : _inputElement$props.className, !hasPrefixSuffix(props) && !hasAddon(props) && className) || null,\n style: _objectSpread(_objectSpread({}, (_inputElement$props2 = inputElement.props) === null || _inputElement$props2 === void 0 ? void 0 : _inputElement$props2.style), !hasPrefixSuffix(props) && !hasAddon(props) ? style : {})\n });\n\n // ================== Prefix & Suffix ================== //\n if (hasPrefixSuffix(props)) {\n var _clsx2;\n var affixWrapperPrefixCls = \"\".concat(prefixCls, \"-affix-wrapper\");\n var affixWrapperCls = clsx(affixWrapperPrefixCls, (_clsx2 = {}, _defineProperty(_clsx2, \"\".concat(affixWrapperPrefixCls, \"-disabled\"), disabled), _defineProperty(_clsx2, \"\".concat(affixWrapperPrefixCls, \"-focused\"), focused), _defineProperty(_clsx2, \"\".concat(affixWrapperPrefixCls, \"-readonly\"), readOnly), _defineProperty(_clsx2, \"\".concat(affixWrapperPrefixCls, \"-input-with-clear-btn\"), suffix && allowClear && value), _clsx2), !hasAddon(props) && className, classes === null || classes === void 0 ? void 0 : classes.affixWrapper);\n var suffixNode = (suffix || allowClear) && /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(\"\".concat(prefixCls, \"-suffix\"), classNames === null || classNames === void 0 ? void 0 : classNames.suffix),\n style: styles === null || styles === void 0 ? void 0 : styles.suffix\n }, getClearIcon(), suffix);\n element = /*#__PURE__*/React.createElement(\"span\", _extends({\n className: affixWrapperCls,\n style: !hasAddon(props) ? style : undefined,\n hidden: !hasAddon(props) && hidden,\n onClick: onInputClick\n }, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.affixWrapper, {\n ref: containerRef\n }), prefix && /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(\"\".concat(prefixCls, \"-prefix\"), classNames === null || classNames === void 0 ? void 0 : classNames.prefix),\n style: styles === null || styles === void 0 ? void 0 : styles.prefix\n }, prefix), /*#__PURE__*/cloneElement(inputElement, {\n value: value,\n hidden: null\n }), suffixNode);\n }\n\n // ================== Addon ================== //\n if (hasAddon(props)) {\n var wrapperCls = \"\".concat(prefixCls, \"-group\");\n var addonCls = \"\".concat(wrapperCls, \"-addon\");\n var mergedWrapperClassName = clsx(\"\".concat(prefixCls, \"-wrapper\"), wrapperCls, classes === null || classes === void 0 ? void 0 : classes.wrapper);\n var mergedGroupClassName = clsx(\"\".concat(prefixCls, \"-group-wrapper\"), className, classes === null || classes === void 0 ? void 0 : classes.group);\n\n // Need another wrapper for changing display:table to display:inline-block\n // and put style prop in wrapper\n return /*#__PURE__*/React.createElement(\"span\", {\n className: mergedGroupClassName,\n style: style,\n hidden: hidden\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: mergedWrapperClassName\n }, addonBefore && /*#__PURE__*/React.createElement(\"span\", {\n className: addonCls\n }, addonBefore), /*#__PURE__*/cloneElement(element, {\n hidden: null\n }), addonAfter && /*#__PURE__*/React.createElement(\"span\", {\n className: addonCls\n }, addonAfter)));\n }\n return element;\n};\nexport default BaseInput;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"autoComplete\", \"onChange\", \"onFocus\", \"onBlur\", \"onPressEnter\", \"onKeyDown\", \"prefixCls\", \"disabled\", \"htmlSize\", \"className\", \"maxLength\", \"suffix\", \"showCount\", \"type\", \"classes\", \"classNames\", \"styles\"];\nimport clsx from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport BaseInput from \"./BaseInput\";\nimport { fixControlledValue, resolveOnChange, triggerFocus } from \"./utils/commonUtils\";\nvar Input = /*#__PURE__*/forwardRef(function (props, ref) {\n var autoComplete = props.autoComplete,\n onChange = props.onChange,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onPressEnter = props.onPressEnter,\n onKeyDown = props.onKeyDown,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-input' : _props$prefixCls,\n disabled = props.disabled,\n htmlSize = props.htmlSize,\n className = props.className,\n maxLength = props.maxLength,\n suffix = props.suffix,\n showCount = props.showCount,\n _props$type = props.type,\n type = _props$type === void 0 ? 'text' : _props$type,\n classes = props.classes,\n classNames = props.classNames,\n styles = props.styles,\n rest = _objectWithoutProperties(props, _excluded);\n var _useMergedState = useMergedState(props.defaultValue, {\n value: props.value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n focused = _useState2[0],\n setFocused = _useState2[1];\n var inputRef = useRef(null);\n var focus = function focus(option) {\n if (inputRef.current) {\n triggerFocus(inputRef.current, option);\n }\n };\n useImperativeHandle(ref, function () {\n return {\n focus: focus,\n blur: function blur() {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.blur();\n },\n setSelectionRange: function setSelectionRange(start, end, direction) {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.setSelectionRange(start, end, direction);\n },\n select: function select() {\n var _inputRef$current3;\n (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.select();\n },\n input: inputRef.current\n };\n });\n useEffect(function () {\n setFocused(function (prev) {\n return prev && disabled ? false : prev;\n });\n }, [disabled]);\n var handleChange = function handleChange(e) {\n if (props.value === undefined) {\n setValue(e.target.value);\n }\n if (inputRef.current) {\n resolveOnChange(inputRef.current, e, onChange);\n }\n };\n var handleKeyDown = function handleKeyDown(e) {\n if (onPressEnter && e.key === 'Enter') {\n onPressEnter(e);\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n };\n var handleFocus = function handleFocus(e) {\n setFocused(true);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n var handleBlur = function handleBlur(e) {\n setFocused(false);\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n var handleReset = function handleReset(e) {\n setValue('');\n focus();\n if (inputRef.current) {\n resolveOnChange(inputRef.current, e, onChange);\n }\n };\n var getInputElement = function getInputElement() {\n // Fix https://fb.me/react-unknown-prop\n var otherProps = omit(props, ['prefixCls', 'onPressEnter', 'addonBefore', 'addonAfter', 'prefix', 'suffix', 'allowClear',\n // Input elements must be either controlled or uncontrolled,\n // specify either the value prop, or the defaultValue prop, but not both.\n 'defaultValue', 'showCount', 'classes', 'htmlSize', 'styles', 'classNames']);\n return /*#__PURE__*/React.createElement(\"input\", _extends({\n autoComplete: autoComplete\n }, otherProps, {\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n className: clsx(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled), classNames === null || classNames === void 0 ? void 0 : classNames.input),\n style: styles === null || styles === void 0 ? void 0 : styles.input,\n ref: inputRef,\n size: htmlSize,\n type: type\n }));\n };\n var getSuffix = function getSuffix() {\n // Max length value\n var hasMaxLength = Number(maxLength) > 0;\n if (suffix || showCount) {\n var val = fixControlledValue(value);\n var valueLength = _toConsumableArray(val).length;\n var dataCount = _typeof(showCount) === 'object' ? showCount.formatter({\n value: val,\n count: valueLength,\n maxLength: maxLength\n }) : \"\".concat(valueLength).concat(hasMaxLength ? \" / \".concat(maxLength) : '');\n return /*#__PURE__*/React.createElement(React.Fragment, null, !!showCount && /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(\"\".concat(prefixCls, \"-show-count-suffix\"), _defineProperty({}, \"\".concat(prefixCls, \"-show-count-has-suffix\"), !!suffix), classNames === null || classNames === void 0 ? void 0 : classNames.count),\n style: _objectSpread({}, styles === null || styles === void 0 ? void 0 : styles.count)\n }, dataCount), suffix);\n }\n return null;\n };\n return /*#__PURE__*/React.createElement(BaseInput, _extends({}, rest, {\n prefixCls: prefixCls,\n className: className,\n inputElement: getInputElement(),\n handleReset: handleReset,\n value: fixControlledValue(value),\n focused: focused,\n triggerFocus: focus,\n suffix: getSuffix(),\n disabled: disabled,\n classes: classes,\n classNames: classNames,\n styles: styles\n }));\n});\nexport default Input;","import BaseInput from \"./BaseInput\";\nimport Input from \"./Input\";\nexport { BaseInput };\nexport default Input;","const genSpaceCompactStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n display: 'inline-flex',\n '&-block': {\n display: 'flex',\n width: '100%'\n },\n '&-vertical': {\n flexDirection: 'column'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genSpaceCompactStyle;","import { genComponentStyleHook } from '../../theme/internal';\nimport genSpaceCompactStyle from './compact';\nconst genSpaceStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n display: 'inline-flex',\n '&-rtl': {\n direction: 'rtl'\n },\n '&-vertical': {\n flexDirection: 'column'\n },\n '&-align': {\n flexDirection: 'column',\n '&-center': {\n alignItems: 'center'\n },\n '&-start': {\n alignItems: 'flex-start'\n },\n '&-end': {\n alignItems: 'flex-end'\n },\n '&-baseline': {\n alignItems: 'baseline'\n }\n },\n [`${componentCls}-item:empty`]: {\n display: 'none'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Space', token => [genSpaceStyle(token), genSpaceCompactStyle(token)], () => ({}), {\n // Space component don't apply extra font style\n // https://github.com/ant-design/ant-design/issues/40315\n resetStyle: false\n});","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nexport const SpaceCompactItemContext = /*#__PURE__*/React.createContext(null);\nexport const useCompactItemContext = (prefixCls, direction) => {\n const compactItemContext = React.useContext(SpaceCompactItemContext);\n const compactItemClassnames = React.useMemo(() => {\n if (!compactItemContext) return '';\n const {\n compactDirection,\n isFirstItem,\n isLastItem\n } = compactItemContext;\n const separator = compactDirection === 'vertical' ? '-vertical-' : '-';\n return classNames({\n [`${prefixCls}-compact${separator}item`]: true,\n [`${prefixCls}-compact${separator}first-item`]: isFirstItem,\n [`${prefixCls}-compact${separator}last-item`]: isLastItem,\n [`${prefixCls}-compact${separator}item-rtl`]: direction === 'rtl'\n });\n }, [prefixCls, direction, compactItemContext]);\n return {\n compactSize: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactSize,\n compactDirection: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactDirection,\n compactItemClassnames\n };\n};\nexport const NoCompactStyle = _ref => {\n let {\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: null\n }, children);\n};\nconst CompactItem = _a => {\n var {\n children\n } = _a,\n otherProps = __rest(_a, [\"children\"]);\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: otherProps\n }, children);\n};\nconst Compact = props => {\n const {\n getPrefixCls,\n direction: directionConfig\n } = React.useContext(ConfigContext);\n const {\n size = 'middle',\n direction,\n block,\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n children\n } = props,\n restProps = __rest(props, [\"size\", \"direction\", \"block\", \"prefixCls\", \"className\", \"rootClassName\", \"children\"]);\n const prefixCls = getPrefixCls('space-compact', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const clx = classNames(prefixCls, hashId, {\n [`${prefixCls}-rtl`]: directionConfig === 'rtl',\n [`${prefixCls}-block`]: block,\n [`${prefixCls}-vertical`]: direction === 'vertical'\n }, className, rootClassName);\n const compactItemContext = React.useContext(SpaceCompactItemContext);\n const childNodes = toArray(children);\n const nodes = React.useMemo(() => childNodes.map((child, i) => {\n const key = child && child.key || `${prefixCls}-item-${i}`;\n return /*#__PURE__*/React.createElement(CompactItem, {\n key: key,\n compactSize: size,\n compactDirection: direction,\n isFirstItem: i === 0 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isFirstItem)),\n isLastItem: i === childNodes.length - 1 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isLastItem))\n }, child);\n }), [size, childNodes, compactItemContext]);\n // =========================== Render ===========================\n if (childNodes.length === 0) {\n return null;\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: clx\n }, restProps), nodes));\n};\nexport default Compact;","import classNames from 'classnames';\nconst InputStatuses = ['warning', 'error', ''];\nexport function getStatusClassNames(prefixCls, status, hasFeedback) {\n return classNames({\n [`${prefixCls}-status-success`]: status === 'success',\n [`${prefixCls}-status-warning`]: status === 'warning',\n [`${prefixCls}-status-error`]: status === 'error',\n [`${prefixCls}-status-validating`]: status === 'validating',\n [`${prefixCls}-has-feedback`]: hasFeedback\n });\n}\nexport const getMergedStatus = (contextStatus, customStatus) => customStatus || contextStatus;","import { useEffect, useRef } from 'react';\nexport default function useRemovePasswordTimeout(inputRef, triggerOnMount) {\n const removePasswordTimeoutRef = useRef([]);\n const removePasswordTimeout = () => {\n removePasswordTimeoutRef.current.push(setTimeout(() => {\n var _a, _b, _c, _d;\n if (((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) && ((_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.input.getAttribute('type')) === 'password' && ((_c = inputRef.current) === null || _c === void 0 ? void 0 : _c.input.hasAttribute('value'))) {\n (_d = inputRef.current) === null || _d === void 0 ? void 0 : _d.input.removeAttribute('value');\n }\n }));\n };\n useEffect(() => {\n if (triggerOnMount) {\n removePasswordTimeout();\n }\n return () => removePasswordTimeoutRef.current.forEach(timer => {\n if (timer) {\n clearTimeout(timer);\n }\n });\n }, []);\n return removePasswordTimeout;\n}","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport RcInput from 'rc-input';\nimport { composeRef } from \"rc-util/es/ref\";\nimport React, { forwardRef, useContext, useEffect, useRef } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormItemInputContext, NoFormStyle } from '../form/context';\nimport { NoCompactStyle, useCompactItemContext } from '../space/Compact';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport warning from '../_util/warning';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport { hasPrefixSuffix } from './utils';\n// CSSINJS\nimport useStyle from './style';\nexport function triggerFocus(element, option) {\n if (!element) {\n return;\n }\n element.focus(option);\n // Selection content\n const {\n cursor\n } = option || {};\n if (cursor) {\n const len = element.value.length;\n switch (cursor) {\n case 'start':\n element.setSelectionRange(0, 0);\n break;\n case 'end':\n element.setSelectionRange(len, len);\n break;\n default:\n element.setSelectionRange(0, len);\n break;\n }\n }\n}\nconst Input = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n bordered = true,\n status: customStatus,\n size: customSize,\n disabled: customDisabled,\n onBlur,\n onFocus,\n suffix,\n allowClear,\n addonAfter,\n addonBefore,\n className,\n rootClassName,\n onChange,\n classNames: classes\n } = props,\n rest = __rest(props, [\"prefixCls\", \"bordered\", \"status\", \"size\", \"disabled\", \"onBlur\", \"onFocus\", \"suffix\", \"allowClear\", \"addonAfter\", \"addonBefore\", \"className\", \"rootClassName\", \"onChange\", \"classNames\"]);\n const {\n getPrefixCls,\n direction,\n input\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('input', customizePrefixCls);\n const inputRef = useRef(null);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n // ===================== Compact Item =====================\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n // ===================== Size =====================\n const size = React.useContext(SizeContext);\n const mergedSize = compactSize || customSize || size;\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== Status =====================\n const {\n status: contextStatus,\n hasFeedback,\n feedbackIcon\n } = useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Focus warning =====================\n const inputHasPrefixSuffix = hasPrefixSuffix(props) || !!hasFeedback;\n const prevHasPrefixSuffix = useRef(inputHasPrefixSuffix);\n useEffect(() => {\n var _a;\n if (inputHasPrefixSuffix && !prevHasPrefixSuffix.current) {\n process.env.NODE_ENV !== \"production\" ? warning(document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input), 'Input', `When Input is focused, dynamic add or remove prefix / suffix will make it lose focus caused by dom structure change. Read more: https://ant.design/components/input/#FAQ`) : void 0;\n }\n prevHasPrefixSuffix.current = inputHasPrefixSuffix;\n }, [inputHasPrefixSuffix]);\n // ===================== Remove Password value =====================\n const removePasswordTimeout = useRemovePasswordTimeout(inputRef, true);\n const handleBlur = e => {\n removePasswordTimeout();\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n const handleFocus = e => {\n removePasswordTimeout();\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n const handleChange = e => {\n removePasswordTimeout();\n onChange === null || onChange === void 0 ? void 0 : onChange(e);\n };\n const suffixNode = (hasFeedback || suffix) && /*#__PURE__*/React.createElement(React.Fragment, null, suffix, hasFeedback && feedbackIcon);\n // Allow clear\n let mergedAllowClear;\n if (typeof allowClear === 'object' && (allowClear === null || allowClear === void 0 ? void 0 : allowClear.clearIcon)) {\n mergedAllowClear = allowClear;\n } else if (allowClear) {\n mergedAllowClear = {\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null)\n };\n }\n return wrapSSR( /*#__PURE__*/React.createElement(RcInput, Object.assign({\n ref: composeRef(ref, inputRef),\n prefixCls: prefixCls,\n autoComplete: input === null || input === void 0 ? void 0 : input.autoComplete\n }, rest, {\n disabled: mergedDisabled,\n onBlur: handleBlur,\n onFocus: handleFocus,\n suffix: suffixNode,\n allowClear: mergedAllowClear,\n className: classNames(className, rootClassName, compactItemClassnames),\n onChange: handleChange,\n addonAfter: addonAfter && /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, addonAfter)),\n addonBefore: addonBefore && /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, addonBefore)),\n classNames: Object.assign(Object.assign({}, classes), {\n input: classNames({\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-lg`]: mergedSize === 'large',\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-borderless`]: !bordered\n }, !inputHasPrefixSuffix && getStatusClassNames(prefixCls, mergedStatus), classes === null || classes === void 0 ? void 0 : classes.input, hashId)\n }),\n classes: {\n affixWrapper: classNames({\n [`${prefixCls}-affix-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-affix-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-affix-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-affix-wrapper-borderless`]: !bordered\n }, getStatusClassNames(`${prefixCls}-affix-wrapper`, mergedStatus, hasFeedback), hashId),\n wrapper: classNames({\n [`${prefixCls}-group-rtl`]: direction === 'rtl'\n }, hashId),\n group: classNames({\n [`${prefixCls}-group-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-group-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-group-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-group-wrapper-disabled`]: mergedDisabled\n }, getStatusClassNames(`${prefixCls}-group-wrapper`, mergedStatus, hasFeedback), hashId)\n }\n })));\n});\nexport default Input;","// eslint-disable-next-line import/prefer-default-export\nexport function hasPrefixSuffix(props) {\n return !!(props.prefix || props.suffix || props.allowClear);\n}","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport EyeInvisibleOutlined from \"@ant-design/icons/es/icons/EyeInvisibleOutlined\";\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport Input from './Input';\nconst defaultIconRender = visible => visible ? /*#__PURE__*/React.createElement(EyeOutlined, null) : /*#__PURE__*/React.createElement(EyeInvisibleOutlined, null);\nconst ActionMap = {\n click: 'onClick',\n hover: 'onMouseOver'\n};\nconst Password = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n visibilityToggle = true\n } = props;\n const visibilityControlled = typeof visibilityToggle === 'object' && visibilityToggle.visible !== undefined;\n const [visible, setVisible] = useState(() => visibilityControlled ? visibilityToggle.visible : false);\n const inputRef = useRef(null);\n React.useEffect(() => {\n if (visibilityControlled) {\n setVisible(visibilityToggle.visible);\n }\n }, [visibilityControlled, visibilityToggle]);\n // Remove Password value\n const removePasswordTimeout = useRemovePasswordTimeout(inputRef);\n const onVisibleChange = () => {\n const {\n disabled\n } = props;\n if (disabled) {\n return;\n }\n if (visible) {\n removePasswordTimeout();\n }\n setVisible(prevState => {\n var _a;\n const newState = !prevState;\n if (typeof visibilityToggle === 'object') {\n (_a = visibilityToggle.onVisibleChange) === null || _a === void 0 ? void 0 : _a.call(visibilityToggle, newState);\n }\n return newState;\n });\n };\n const getIcon = prefixCls => {\n const {\n action = 'click',\n iconRender = defaultIconRender\n } = props;\n const iconTrigger = ActionMap[action] || '';\n const icon = iconRender(visible);\n const iconProps = {\n [iconTrigger]: onVisibleChange,\n className: `${prefixCls}-icon`,\n key: 'passwordIcon',\n onMouseDown: e => {\n // Prevent focused state lost\n // https://github.com/ant-design/ant-design/issues/15173\n e.preventDefault();\n },\n onMouseUp: e => {\n // Prevent caret position change\n // https://github.com/ant-design/ant-design/issues/23524\n e.preventDefault();\n }\n };\n return /*#__PURE__*/React.cloneElement( /*#__PURE__*/React.isValidElement(icon) ? icon : /*#__PURE__*/React.createElement(\"span\", null, icon), iconProps);\n };\n const {\n className,\n prefixCls: customizePrefixCls,\n inputPrefixCls: customizeInputPrefixCls,\n size\n } = props,\n restProps = __rest(props, [\"className\", \"prefixCls\", \"inputPrefixCls\", \"size\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n const prefixCls = getPrefixCls('input-password', customizePrefixCls);\n const suffixIcon = visibilityToggle && getIcon(prefixCls);\n const inputClassName = classNames(prefixCls, className, {\n [`${prefixCls}-${size}`]: !!size\n });\n const omittedProps = Object.assign(Object.assign({}, omit(restProps, ['suffix', 'iconRender', 'visibilityToggle'])), {\n type: visible ? 'text' : 'password',\n className: inputClassName,\n prefixCls: inputPrefixCls,\n suffix: suffixIcon\n });\n if (size) {\n omittedProps.size = size;\n }\n return /*#__PURE__*/React.createElement(Input, Object.assign({\n ref: composeRef(ref, inputRef)\n }, omittedProps));\n});\nif (process.env.NODE_ENV !== 'production') {\n Password.displayName = 'Password';\n}\nexport default Password;","// This icon file is generated automatically.\nvar SearchOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z\" } }] }, \"name\": \"search\", \"theme\": \"outlined\" };\nexport default SearchOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport SearchOutlinedSvg from \"@ant-design/icons-svg/es/asn/SearchOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar SearchOutlined = function SearchOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: SearchOutlinedSvg\n }));\n};\nSearchOutlined.displayName = 'SearchOutlined';\nexport default /*#__PURE__*/React.forwardRef(SearchOutlined);","import { genComponentStyleHook } from '../../theme/internal';\nconst genWaveStyle = token => {\n const {\n componentCls,\n colorPrimary\n } = token;\n return {\n [componentCls]: {\n position: 'absolute',\n background: 'transparent',\n pointerEvents: 'none',\n boxSizing: 'border-box',\n color: `var(--wave-color, ${colorPrimary})`,\n boxShadow: `0 0 0 0 currentcolor`,\n opacity: 0.2,\n // =================== Motion ===================\n '&.wave-motion-appear': {\n transition: [`box-shadow 0.4s ${token.motionEaseOutCirc}`, `opacity 2s ${token.motionEaseOutCirc}`].join(','),\n '&-active': {\n boxShadow: `0 0 0 6px currentcolor`,\n opacity: 0\n }\n }\n }\n };\n};\nexport default genComponentStyleHook('Wave', token => [genWaveStyle(token)]);","export function isNotGrey(color) {\n // eslint-disable-next-line no-useless-escape\n const match = (color || '').match(/rgba?\\((\\d*), (\\d*), (\\d*)(, [\\d.]*)?\\)/);\n if (match && match[1] && match[2] && match[3]) {\n return !(match[1] === match[2] && match[2] === match[3]);\n }\n return true;\n}\nexport function isValidWaveColor(color) {\n return color && color !== '#fff' && color !== '#ffffff' && color !== 'rgb(255, 255, 255)' && color !== 'rgba(255, 255, 255, 1)' && isNotGrey(color) && !/rgba\\((?:\\d*, ){3}0\\)/.test(color) &&\n // any transparent rgba color\n color !== 'transparent';\n}\nexport function getTargetWaveColor(node) {\n const {\n borderTopColor,\n borderColor,\n backgroundColor\n } = getComputedStyle(node);\n if (isValidWaveColor(borderTopColor)) {\n return borderTopColor;\n }\n if (isValidWaveColor(borderColor)) {\n return borderColor;\n }\n if (isValidWaveColor(backgroundColor)) {\n return backgroundColor;\n }\n return null;\n}","import * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport raf from \"rc-util/es/raf\";\nimport { render, unmount } from \"rc-util/es/React/render\";\nimport classNames from 'classnames';\nimport { getTargetWaveColor } from './util';\nfunction validateNum(value) {\n return Number.isNaN(value) ? 0 : value;\n}\nconst WaveEffect = props => {\n const {\n className,\n target\n } = props;\n const divRef = React.useRef(null);\n const [color, setWaveColor] = React.useState(null);\n const [borderRadius, setBorderRadius] = React.useState([]);\n const [left, setLeft] = React.useState(0);\n const [top, setTop] = React.useState(0);\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n const [enabled, setEnabled] = React.useState(false);\n const waveStyle = {\n left,\n top,\n width,\n height,\n borderRadius: borderRadius.map(radius => `${radius}px`).join(' ')\n };\n if (color) {\n waveStyle['--wave-color'] = color;\n }\n function syncPos() {\n const nodeStyle = getComputedStyle(target);\n // Get wave color from target\n setWaveColor(getTargetWaveColor(target));\n const isStatic = nodeStyle.position === 'static';\n // Rect\n const {\n borderLeftWidth,\n borderTopWidth\n } = nodeStyle;\n setLeft(isStatic ? target.offsetLeft : validateNum(-parseFloat(borderLeftWidth)));\n setTop(isStatic ? target.offsetTop : validateNum(-parseFloat(borderTopWidth)));\n setWidth(target.offsetWidth);\n setHeight(target.offsetHeight);\n // Get border radius\n const {\n borderTopLeftRadius,\n borderTopRightRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius\n } = nodeStyle;\n setBorderRadius([borderTopLeftRadius, borderTopRightRadius, borderBottomRightRadius, borderBottomLeftRadius].map(radius => validateNum(parseFloat(radius))));\n }\n React.useEffect(() => {\n if (target) {\n // We need delay to check position here\n // since UI may change after click\n const id = raf(() => {\n syncPos();\n setEnabled(true);\n });\n // Add resize observer to follow size\n let resizeObserver;\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(syncPos);\n resizeObserver.observe(target);\n }\n return () => {\n raf.cancel(id);\n resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();\n };\n }\n }, []);\n if (!enabled) {\n return null;\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: true,\n motionAppear: true,\n motionName: \"wave-motion\",\n motionDeadline: 5000,\n onAppearEnd: (_, event) => {\n var _a;\n if (event.deadline || event.propertyName === 'opacity') {\n const holder = (_a = divRef.current) === null || _a === void 0 ? void 0 : _a.parentElement;\n unmount(holder).then(() => {\n var _a;\n (_a = holder.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(holder);\n });\n }\n return false;\n }\n }, _ref => {\n let {\n className: motionClassName\n } = _ref;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: divRef,\n className: classNames(className, motionClassName),\n style: waveStyle\n });\n });\n};\nexport default function showWaveEffect(node, className) {\n // Create holder\n const holder = document.createElement('div');\n holder.style.position = 'absolute';\n holder.style.left = `0px`;\n holder.style.top = `0px`;\n node === null || node === void 0 ? void 0 : node.insertBefore(holder, node === null || node === void 0 ? void 0 : node.firstChild);\n render( /*#__PURE__*/React.createElement(WaveEffect, {\n target: node,\n className: className\n }), holder);\n}","import showWaveEffect from './WaveEffect';\nexport default function useWave(nodeRef, className) {\n function showWave() {\n const node = nodeRef.current;\n showWaveEffect(node, className);\n }\n return showWave;\n}","import classNames from 'classnames';\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport React, { useContext, useRef } from 'react';\nimport { ConfigContext } from '../../config-provider';\nimport { cloneElement } from '../reactNode';\nimport useStyle from './style';\nimport useWave from './useWave';\nconst Wave = props => {\n const {\n children,\n disabled\n } = props;\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const containerRef = useRef(null);\n // ============================== Style ===============================\n const prefixCls = getPrefixCls('wave');\n const [, hashId] = useStyle(prefixCls);\n // =============================== Wave ===============================\n const showWave = useWave(containerRef, classNames(prefixCls, hashId));\n // ============================== Effect ==============================\n React.useEffect(() => {\n const node = containerRef.current;\n if (!node || node.nodeType !== 1 || disabled) {\n return;\n }\n // Click handler\n const onClick = e => {\n // Fix radio button click twice\n if (e.target.tagName === 'INPUT' || !isVisible(e.target) ||\n // No need wave\n !node.getAttribute || node.getAttribute('disabled') || node.disabled || node.className.includes('disabled') || node.className.includes('-leave')) {\n return;\n }\n showWave();\n };\n // Bind events\n node.addEventListener('click', onClick, true);\n return () => {\n node.removeEventListener('click', onClick, true);\n };\n }, [disabled]);\n // ============================== Render ==============================\n if (! /*#__PURE__*/React.isValidElement(children)) {\n return children !== null && children !== void 0 ? children : null;\n }\n const ref = supportRef(children) ? composeRef(children.ref, containerRef) : containerRef;\n return cloneElement(children, {\n ref\n });\n};\nif (process.env.NODE_ENV !== 'production') {\n Wave.displayName = 'Wave';\n}\nexport default Wave;","import LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport CSSMotion from 'rc-motion';\nimport React from 'react';\nconst getCollapsedWidth = () => ({\n width: 0,\n opacity: 0,\n transform: 'scale(0)'\n});\nconst getRealWidth = node => ({\n width: node.scrollWidth,\n opacity: 1,\n transform: 'scale(1)'\n});\nconst LoadingIcon = _ref => {\n let {\n prefixCls,\n loading,\n existIcon\n } = _ref;\n const visible = !!loading;\n if (existIcon) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-loading-icon`\n }, /*#__PURE__*/React.createElement(LoadingOutlined, null));\n }\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n // We do not really use this motionName\n motionName: `${prefixCls}-loading-icon-motion`,\n removeOnLeave: true,\n onAppearStart: getCollapsedWidth,\n onAppearActive: getRealWidth,\n onEnterStart: getCollapsedWidth,\n onEnterActive: getRealWidth,\n onLeaveStart: getRealWidth,\n onLeaveActive: getCollapsedWidth\n }, (_ref2, ref) => {\n let {\n className,\n style\n } = _ref2;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-loading-icon`,\n style: style,\n ref: ref\n }, /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: className\n }));\n });\n};\nexport default LoadingIcon;","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { useToken } from '../theme/internal';\nimport warning from '../_util/warning';\nexport const GroupSizeContext = /*#__PURE__*/React.createContext(undefined);\nconst ButtonGroup = props => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n size,\n className\n } = props,\n others = __rest(props, [\"prefixCls\", \"size\", \"className\"]);\n const prefixCls = getPrefixCls('btn-group', customizePrefixCls);\n const [,, hashId] = useToken();\n let sizeCls = '';\n switch (size) {\n case 'large':\n sizeCls = 'lg';\n break;\n case 'small':\n sizeCls = 'sm';\n break;\n case 'middle':\n case undefined:\n break;\n default:\n process.env.NODE_ENV !== \"production\" ? warning(!size, 'Button.Group', 'Invalid prop `size`.') : void 0;\n }\n const classes = classNames(prefixCls, {\n [`${prefixCls}-${sizeCls}`]: sizeCls,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, hashId);\n return /*#__PURE__*/React.createElement(GroupSizeContext.Provider, {\n value: size\n }, /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n className: classes\n })));\n};\nexport default ButtonGroup;","import React from 'react';\nimport { cloneElement, isFragment } from '../_util/reactNode';\nconst rxTwoCNChar = /^[\\u4e00-\\u9fa5]{2}$/;\nexport const isTwoCNChar = rxTwoCNChar.test.bind(rxTwoCNChar);\nexport function isString(str) {\n return typeof str === 'string';\n}\nexport function isUnBorderedButtonType(type) {\n return type === 'text' || type === 'link';\n}\nfunction splitCNCharsBySpace(child, needInserted) {\n if (child === null || child === undefined) {\n return;\n }\n const SPACE = needInserted ? ' ' : '';\n if (typeof child !== 'string' && typeof child !== 'number' && isString(child.type) && isTwoCNChar(child.props.children)) {\n return cloneElement(child, {\n children: child.props.children.split('').join(SPACE)\n });\n }\n if (typeof child === 'string') {\n return isTwoCNChar(child) ? /*#__PURE__*/React.createElement(\"span\", null, child.split('').join(SPACE)) : /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n if (isFragment(child)) {\n return /*#__PURE__*/React.createElement(\"span\", null, child);\n }\n return child;\n}\nexport function spaceChildren(children, needInserted) {\n let isPrevChildPure = false;\n const childList = [];\n React.Children.forEach(children, child => {\n const type = typeof child;\n const isCurrentChildPure = type === 'string' || type === 'number';\n if (isPrevChildPure && isCurrentChildPure) {\n const lastIndex = childList.length - 1;\n const lastChild = childList[lastIndex];\n childList[lastIndex] = `${lastChild}${child}`;\n } else {\n childList.push(child);\n }\n isPrevChildPure = isCurrentChildPure;\n });\n return React.Children.map(childList, child => splitCNCharsBySpace(child, needInserted));\n}\nconst ButtonTypes = ['default', 'primary', 'ghost', 'dashed', 'link', 'text'];\nconst ButtonShapes = ['default', 'circle', 'round'];\nconst ButtonHTMLTypes = ['submit', 'button', 'reset'];","const genButtonBorderStyle = (buttonTypeCls, borderColor) => ({\n // Border\n [`> span, > ${buttonTypeCls}`]: {\n '&:not(:last-child)': {\n [`&, & > ${buttonTypeCls}`]: {\n '&:not(:disabled)': {\n borderInlineEndColor: borderColor\n }\n }\n },\n '&:not(:first-child)': {\n [`&, & > ${buttonTypeCls}`]: {\n '&:not(:disabled)': {\n borderInlineStartColor: borderColor\n }\n }\n }\n }\n});\nconst genGroupStyle = token => {\n const {\n componentCls,\n fontSize,\n lineWidth,\n colorPrimaryHover,\n colorErrorHover\n } = token;\n return {\n [`${componentCls}-group`]: [{\n position: 'relative',\n display: 'inline-flex',\n // Border\n [`> span, > ${componentCls}`]: {\n '&:not(:last-child)': {\n [`&, & > ${componentCls}`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n '&:not(:first-child)': {\n marginInlineStart: -lineWidth,\n [`&, & > ${componentCls}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n }\n },\n [componentCls]: {\n position: 'relative',\n zIndex: 1,\n [`&:hover,\n &:focus,\n &:active`]: {\n zIndex: 2\n },\n '&[disabled]': {\n zIndex: 0\n }\n },\n [`${componentCls}-icon-only`]: {\n fontSize\n }\n },\n // Border Color\n genButtonBorderStyle(`${componentCls}-primary`, colorPrimaryHover), genButtonBorderStyle(`${componentCls}-danger`, colorErrorHover)]\n };\n};\nexport default genGroupStyle;","function compactItemVerticalBorder(token, parentCls) {\n return {\n // border collapse\n [`&-item:not(${parentCls}-last-item)`]: {\n marginBottom: -token.lineWidth\n },\n '&-item': {\n '&:hover,&:focus,&:active': {\n zIndex: 2\n },\n '&[disabled]': {\n zIndex: 0\n }\n }\n };\n}\nfunction compactItemBorderVerticalRadius(prefixCls, parentCls) {\n return {\n [`&-item:not(${parentCls}-first-item):not(${parentCls}-last-item)`]: {\n borderRadius: 0\n },\n [`&-item${parentCls}-first-item:not(${parentCls}-last-item)`]: {\n [`&, &${prefixCls}-sm, &${prefixCls}-lg`]: {\n borderEndEndRadius: 0,\n borderEndStartRadius: 0\n }\n },\n [`&-item${parentCls}-last-item:not(${parentCls}-first-item)`]: {\n [`&, &${prefixCls}-sm, &${prefixCls}-lg`]: {\n borderStartStartRadius: 0,\n borderStartEndRadius: 0\n }\n }\n };\n}\nexport function genCompactItemVerticalStyle(token) {\n const compactCls = `${token.componentCls}-compact-vertical`;\n return {\n [compactCls]: Object.assign(Object.assign({}, compactItemVerticalBorder(token, compactCls)), compactItemBorderVerticalRadius(token.componentCls, compactCls))\n };\n}","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genGroupStyle from './group';\nimport { genFocusStyle } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genCompactItemVerticalStyle } from '../../style/compact-item-vertical';\n// ============================== Shared ==============================\nconst genSharedButtonStyle = token => {\n const {\n componentCls,\n iconCls\n } = token;\n return {\n [componentCls]: {\n outline: 'none',\n position: 'relative',\n display: 'inline-block',\n fontWeight: 400,\n whiteSpace: 'nowrap',\n textAlign: 'center',\n backgroundImage: 'none',\n backgroundColor: 'transparent',\n border: `${token.lineWidth}px ${token.lineType} transparent`,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid} ${token.motionEaseInOut}`,\n userSelect: 'none',\n touchAction: 'manipulation',\n lineHeight: token.lineHeight,\n color: token.colorText,\n '> span': {\n display: 'inline-block'\n },\n // Leave a space between icon and text.\n [`> ${iconCls} + span, > span + ${iconCls}`]: {\n marginInlineStart: token.marginXS\n },\n '> a': {\n color: 'currentColor'\n },\n '&:not(:disabled)': Object.assign({}, genFocusStyle(token)),\n // make `btn-icon-only` not too narrow\n [`&-icon-only${componentCls}-compact-item`]: {\n flex: 'none'\n },\n // Special styles for Primary Button\n [`&-compact-item${componentCls}-primary`]: {\n [`&:not([disabled]) + ${componentCls}-compact-item${componentCls}-primary:not([disabled])`]: {\n position: 'relative',\n '&:before': {\n position: 'absolute',\n top: -token.lineWidth,\n insetInlineStart: -token.lineWidth,\n display: 'inline-block',\n width: token.lineWidth,\n height: `calc(100% + ${token.lineWidth * 2}px)`,\n backgroundColor: token.colorPrimaryHover,\n content: '\"\"'\n }\n }\n },\n // Special styles for Primary Button\n '&-compact-vertical-item': {\n [`&${componentCls}-primary`]: {\n [`&:not([disabled]) + ${componentCls}-compact-vertical-item${componentCls}-primary:not([disabled])`]: {\n position: 'relative',\n '&:before': {\n position: 'absolute',\n top: -token.lineWidth,\n insetInlineStart: -token.lineWidth,\n display: 'inline-block',\n width: `calc(100% + ${token.lineWidth * 2}px)`,\n height: token.lineWidth,\n backgroundColor: token.colorPrimaryHover,\n content: '\"\"'\n }\n }\n }\n }\n }\n };\n};\nconst genHoverActiveButtonStyle = (hoverStyle, activeStyle) => ({\n '&:not(:disabled)': {\n '&:hover': hoverStyle,\n '&:active': activeStyle\n }\n});\n// ============================== Shape ===============================\nconst genCircleButtonStyle = token => ({\n minWidth: token.controlHeight,\n paddingInlineStart: 0,\n paddingInlineEnd: 0,\n borderRadius: '50%'\n});\nconst genRoundButtonStyle = token => ({\n borderRadius: token.controlHeight,\n paddingInlineStart: token.controlHeight / 2,\n paddingInlineEnd: token.controlHeight / 2\n});\n// =============================== Type ===============================\nconst genDisabledStyle = token => ({\n cursor: 'not-allowed',\n borderColor: token.colorBorder,\n color: token.colorTextDisabled,\n backgroundColor: token.colorBgContainerDisabled,\n boxShadow: 'none'\n});\nconst genGhostButtonStyle = (btnCls, textColor, borderColor, textColorDisabled, borderColorDisabled, hoverStyle, activeStyle) => ({\n [`&${btnCls}-background-ghost`]: Object.assign(Object.assign({\n color: textColor || undefined,\n backgroundColor: 'transparent',\n borderColor: borderColor || undefined,\n boxShadow: 'none'\n }, genHoverActiveButtonStyle(Object.assign({\n backgroundColor: 'transparent'\n }, hoverStyle), Object.assign({\n backgroundColor: 'transparent'\n }, activeStyle))), {\n '&:disabled': {\n cursor: 'not-allowed',\n color: textColorDisabled || undefined,\n borderColor: borderColorDisabled || undefined\n }\n })\n});\nconst genSolidDisabledButtonStyle = token => ({\n '&:disabled': Object.assign({}, genDisabledStyle(token))\n});\nconst genSolidButtonStyle = token => Object.assign({}, genSolidDisabledButtonStyle(token));\nconst genPureDisabledButtonStyle = token => ({\n '&:disabled': {\n cursor: 'not-allowed',\n color: token.colorTextDisabled\n }\n});\n// Type: Default\nconst genDefaultButtonStyle = token => Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, genSolidButtonStyle(token)), {\n backgroundColor: token.colorBgContainer,\n borderColor: token.colorBorder,\n boxShadow: `0 ${token.controlOutlineWidth}px 0 ${token.controlTmpOutline}`\n}), genHoverActiveButtonStyle({\n color: token.colorPrimaryHover,\n borderColor: token.colorPrimaryHover\n}, {\n color: token.colorPrimaryActive,\n borderColor: token.colorPrimaryActive\n})), genGhostButtonStyle(token.componentCls, token.colorBgContainer, token.colorBgContainer, token.colorTextDisabled, token.colorBorder)), {\n [`&${token.componentCls}-dangerous`]: Object.assign(Object.assign(Object.assign({\n color: token.colorError,\n borderColor: token.colorError\n }, genHoverActiveButtonStyle({\n color: token.colorErrorHover,\n borderColor: token.colorErrorBorderHover\n }, {\n color: token.colorErrorActive,\n borderColor: token.colorErrorActive\n })), genGhostButtonStyle(token.componentCls, token.colorError, token.colorError, token.colorTextDisabled, token.colorBorder)), genSolidDisabledButtonStyle(token))\n});\n// Type: Primary\nconst genPrimaryButtonStyle = token => Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, genSolidButtonStyle(token)), {\n color: token.colorTextLightSolid,\n backgroundColor: token.colorPrimary,\n boxShadow: `0 ${token.controlOutlineWidth}px 0 ${token.controlOutline}`\n}), genHoverActiveButtonStyle({\n color: token.colorTextLightSolid,\n backgroundColor: token.colorPrimaryHover\n}, {\n color: token.colorTextLightSolid,\n backgroundColor: token.colorPrimaryActive\n})), genGhostButtonStyle(token.componentCls, token.colorPrimary, token.colorPrimary, token.colorTextDisabled, token.colorBorder, {\n color: token.colorPrimaryHover,\n borderColor: token.colorPrimaryHover\n}, {\n color: token.colorPrimaryActive,\n borderColor: token.colorPrimaryActive\n})), {\n [`&${token.componentCls}-dangerous`]: Object.assign(Object.assign(Object.assign({\n backgroundColor: token.colorError,\n boxShadow: `0 ${token.controlOutlineWidth}px 0 ${token.colorErrorOutline}`\n }, genHoverActiveButtonStyle({\n backgroundColor: token.colorErrorHover\n }, {\n backgroundColor: token.colorErrorActive\n })), genGhostButtonStyle(token.componentCls, token.colorError, token.colorError, token.colorTextDisabled, token.colorBorder, {\n color: token.colorErrorHover,\n borderColor: token.colorErrorHover\n }, {\n color: token.colorErrorActive,\n borderColor: token.colorErrorActive\n })), genSolidDisabledButtonStyle(token))\n});\n// Type: Dashed\nconst genDashedButtonStyle = token => Object.assign(Object.assign({}, genDefaultButtonStyle(token)), {\n borderStyle: 'dashed'\n});\n// Type: Link\nconst genLinkButtonStyle = token => Object.assign(Object.assign(Object.assign({\n color: token.colorLink\n}, genHoverActiveButtonStyle({\n color: token.colorLinkHover\n}, {\n color: token.colorLinkActive\n})), genPureDisabledButtonStyle(token)), {\n [`&${token.componentCls}-dangerous`]: Object.assign(Object.assign({\n color: token.colorError\n }, genHoverActiveButtonStyle({\n color: token.colorErrorHover\n }, {\n color: token.colorErrorActive\n })), genPureDisabledButtonStyle(token))\n});\n// Type: Text\nconst genTextButtonStyle = token => Object.assign(Object.assign(Object.assign({}, genHoverActiveButtonStyle({\n color: token.colorText,\n backgroundColor: token.colorBgTextHover\n}, {\n color: token.colorText,\n backgroundColor: token.colorBgTextActive\n})), genPureDisabledButtonStyle(token)), {\n [`&${token.componentCls}-dangerous`]: Object.assign(Object.assign({\n color: token.colorError\n }, genPureDisabledButtonStyle(token)), genHoverActiveButtonStyle({\n color: token.colorErrorHover,\n backgroundColor: token.colorErrorBg\n }, {\n color: token.colorErrorHover,\n backgroundColor: token.colorErrorBg\n }))\n});\n// Href and Disabled\nconst genDisabledButtonStyle = token => Object.assign(Object.assign({}, genDisabledStyle(token)), {\n [`&${token.componentCls}:hover`]: Object.assign({}, genDisabledStyle(token))\n});\nconst genTypeButtonStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-default`]: genDefaultButtonStyle(token),\n [`${componentCls}-primary`]: genPrimaryButtonStyle(token),\n [`${componentCls}-dashed`]: genDashedButtonStyle(token),\n [`${componentCls}-link`]: genLinkButtonStyle(token),\n [`${componentCls}-text`]: genTextButtonStyle(token),\n [`${componentCls}-disabled`]: genDisabledButtonStyle(token)\n };\n};\n// =============================== Size ===============================\nconst genSizeButtonStyle = function (token) {\n let sizePrefixCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const {\n componentCls,\n iconCls,\n controlHeight,\n fontSize,\n lineHeight,\n lineWidth,\n borderRadius,\n buttonPaddingHorizontal\n } = token;\n const paddingVertical = Math.max(0, (controlHeight - fontSize * lineHeight) / 2 - lineWidth);\n const paddingHorizontal = buttonPaddingHorizontal - lineWidth;\n const iconOnlyCls = `${componentCls}-icon-only`;\n return [\n // Size\n {\n [`${componentCls}${sizePrefixCls}`]: {\n fontSize,\n height: controlHeight,\n padding: `${paddingVertical}px ${paddingHorizontal}px`,\n borderRadius,\n [`&${iconOnlyCls}`]: {\n width: controlHeight,\n paddingInlineStart: 0,\n paddingInlineEnd: 0,\n [`&${componentCls}-round`]: {\n width: 'auto'\n },\n '> span': {\n transform: 'scale(1.143)' // 14px -> 16px\n }\n },\n\n // Loading\n [`&${componentCls}-loading`]: {\n opacity: token.opacityLoading,\n cursor: 'default'\n },\n [`${componentCls}-loading-icon`]: {\n transition: `width ${token.motionDurationSlow} ${token.motionEaseInOut}, opacity ${token.motionDurationSlow} ${token.motionEaseInOut}`\n },\n [`&:not(${iconOnlyCls}) ${componentCls}-loading-icon > ${iconCls}`]: {\n marginInlineEnd: token.marginXS\n }\n }\n },\n // Shape - patch prefixCls again to override solid border radius style\n {\n [`${componentCls}${componentCls}-circle${sizePrefixCls}`]: genCircleButtonStyle(token)\n }, {\n [`${componentCls}${componentCls}-round${sizePrefixCls}`]: genRoundButtonStyle(token)\n }];\n};\nconst genSizeBaseButtonStyle = token => genSizeButtonStyle(token);\nconst genSizeSmallButtonStyle = token => {\n const smallToken = mergeToken(token, {\n controlHeight: token.controlHeightSM,\n padding: token.paddingXS,\n buttonPaddingHorizontal: 8,\n borderRadius: token.borderRadiusSM\n });\n return genSizeButtonStyle(smallToken, `${token.componentCls}-sm`);\n};\nconst genSizeLargeButtonStyle = token => {\n const largeToken = mergeToken(token, {\n controlHeight: token.controlHeightLG,\n fontSize: token.fontSizeLG,\n borderRadius: token.borderRadiusLG\n });\n return genSizeButtonStyle(largeToken, `${token.componentCls}-lg`);\n};\nconst genBlockButtonStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: {\n [`&${componentCls}-block`]: {\n width: '100%'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Button', token => {\n const {\n controlTmpOutline,\n paddingContentHorizontal\n } = token;\n const buttonToken = mergeToken(token, {\n colorOutlineDefault: controlTmpOutline,\n buttonPaddingHorizontal: paddingContentHorizontal\n });\n return [\n // Shared\n genSharedButtonStyle(buttonToken),\n // Size\n genSizeSmallButtonStyle(buttonToken), genSizeBaseButtonStyle(buttonToken), genSizeLargeButtonStyle(buttonToken),\n // Block\n genBlockButtonStyle(buttonToken),\n // Group (type, ghost, danger, disabled, loading)\n genTypeButtonStyle(buttonToken),\n // Button Group\n genGroupStyle(buttonToken),\n // Space Compact\n genCompactItemStyle(token), genCompactItemVerticalStyle(token)];\n});","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n/* eslint-disable react/button-has-type */\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport Wave from '../_util/wave';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport SizeContext from '../config-provider/SizeContext';\nimport { useCompactItemContext } from '../space/Compact';\nimport LoadingIcon from './LoadingIcon';\nimport Group, { GroupSizeContext } from './button-group';\nimport { isTwoCNChar, isUnBorderedButtonType, spaceChildren } from './buttonHelpers';\nimport useStyle from './style';\nexport function convertLegacyProps(type) {\n if (type === 'danger') {\n return {\n danger: true\n };\n }\n return {\n type\n };\n}\nfunction getLoadingConfig(loading) {\n if (typeof loading === 'object' && loading) {\n const delay = loading === null || loading === void 0 ? void 0 : loading.delay;\n const isDelay = !Number.isNaN(delay) && typeof delay === 'number';\n return {\n loading: false,\n delay: isDelay ? delay : 0\n };\n }\n return {\n loading: !!loading,\n delay: 0\n };\n}\nconst InternalButton = (props, ref) => {\n const {\n loading = false,\n prefixCls: customizePrefixCls,\n type = 'default',\n danger,\n shape = 'default',\n size: customizeSize,\n disabled: customDisabled,\n className,\n rootClassName,\n children,\n icon,\n ghost = false,\n block = false,\n // React does not recognize the `htmlType` prop on a DOM element. Here we pick it out of `rest`.\n htmlType = 'button'\n } = props,\n rest = __rest(props, [\"loading\", \"prefixCls\", \"type\", \"danger\", \"shape\", \"size\", \"disabled\", \"className\", \"rootClassName\", \"children\", \"icon\", \"ghost\", \"block\", \"htmlType\"]);\n const {\n getPrefixCls,\n autoInsertSpaceInButton,\n direction\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('btn', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const size = React.useContext(SizeContext);\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n const groupSize = React.useContext(GroupSizeContext);\n const loadingOrDelay = React.useMemo(() => getLoadingConfig(loading), [loading]);\n const [innerLoading, setLoading] = React.useState(loadingOrDelay.loading);\n const [hasTwoCNChar, setHasTwoCNChar] = React.useState(false);\n const buttonRef = ref || /*#__PURE__*/React.createRef();\n const isNeedInserted = () => React.Children.count(children) === 1 && !icon && !isUnBorderedButtonType(type);\n const fixTwoCNChar = () => {\n // FIXME: for HOC usage like \n if (!buttonRef || !buttonRef.current || autoInsertSpaceInButton === false) {\n return;\n }\n const buttonText = buttonRef.current.textContent;\n if (isNeedInserted() && isTwoCNChar(buttonText)) {\n if (!hasTwoCNChar) {\n setHasTwoCNChar(true);\n }\n } else if (hasTwoCNChar) {\n setHasTwoCNChar(false);\n }\n };\n React.useEffect(() => {\n let delayTimer = null;\n if (loadingOrDelay.delay > 0) {\n delayTimer = window.setTimeout(() => {\n delayTimer = null;\n setLoading(true);\n }, loadingOrDelay.delay);\n } else {\n setLoading(loadingOrDelay.loading);\n }\n function cleanupTimer() {\n if (delayTimer) {\n window.clearTimeout(delayTimer);\n delayTimer = null;\n }\n }\n return cleanupTimer;\n }, [loadingOrDelay]);\n React.useEffect(fixTwoCNChar, [buttonRef]);\n const handleClick = e => {\n const {\n onClick\n } = props;\n // FIXME: https://github.com/ant-design/ant-design/issues/30207\n if (innerLoading || mergedDisabled) {\n e.preventDefault();\n return;\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Button', `\\`icon\\` is using ReactNode instead of string naming in v4. Please check \\`${icon}\\` at https://ant.design/components/icon`) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(ghost && isUnBorderedButtonType(type)), 'Button', \"`link` or `text` button can't be a `ghost` button.\") : void 0;\n const autoInsertSpace = autoInsertSpaceInButton !== false;\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const sizeClassNameMap = {\n large: 'lg',\n small: 'sm',\n middle: undefined\n };\n const sizeFullname = compactSize || groupSize || customizeSize || size;\n const sizeCls = sizeFullname ? sizeClassNameMap[sizeFullname] || '' : '';\n const iconType = innerLoading ? 'loading' : icon;\n const linkButtonRestProps = omit(rest, ['navigate']);\n const hrefAndDisabled = linkButtonRestProps.href !== undefined && mergedDisabled;\n const classes = classNames(prefixCls, hashId, {\n [`${prefixCls}-${shape}`]: shape !== 'default' && shape,\n [`${prefixCls}-${type}`]: type,\n [`${prefixCls}-${sizeCls}`]: sizeCls,\n [`${prefixCls}-icon-only`]: !children && children !== 0 && !!iconType,\n [`${prefixCls}-background-ghost`]: ghost && !isUnBorderedButtonType(type),\n [`${prefixCls}-loading`]: innerLoading,\n [`${prefixCls}-two-chinese-chars`]: hasTwoCNChar && autoInsertSpace && !innerLoading,\n [`${prefixCls}-block`]: block,\n [`${prefixCls}-dangerous`]: !!danger,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-disabled`]: hrefAndDisabled\n }, compactItemClassnames, className, rootClassName);\n const iconNode = icon && !innerLoading ? icon : /*#__PURE__*/React.createElement(LoadingIcon, {\n existIcon: !!icon,\n prefixCls: prefixCls,\n loading: !!innerLoading\n });\n const kids = children || children === 0 ? spaceChildren(children, isNeedInserted() && autoInsertSpace) : null;\n if (linkButtonRestProps.href !== undefined) {\n return wrapSSR( /*#__PURE__*/React.createElement(\"a\", Object.assign({}, linkButtonRestProps, {\n className: classes,\n onClick: handleClick,\n ref: buttonRef\n }), iconNode, kids));\n }\n let buttonNode = /*#__PURE__*/React.createElement(\"button\", Object.assign({}, rest, {\n type: htmlType,\n className: classes,\n onClick: handleClick,\n disabled: mergedDisabled,\n ref: buttonRef\n }), iconNode, kids);\n if (!isUnBorderedButtonType(type)) {\n buttonNode = /*#__PURE__*/React.createElement(Wave, {\n disabled: !!innerLoading\n }, buttonNode);\n }\n return wrapSSR(buttonNode);\n};\nconst Button = /*#__PURE__*/React.forwardRef(InternalButton);\nif (process.env.NODE_ENV !== 'production') {\n Button.displayName = 'Button';\n}\nButton.Group = Group;\nButton.__ANT_BUTTON = true;\nexport default Button;","import Button from './button';\nexport * from './buttonHelpers';\nexport default Button;","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport Button from '../button';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nimport { useCompactItemContext } from '../space/Compact';\nimport { cloneElement } from '../_util/reactNode';\nimport Input from './Input';\nconst Search = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n inputPrefixCls: customizeInputPrefixCls,\n className,\n size: customizeSize,\n suffix,\n enterButton = false,\n addonAfter,\n loading,\n disabled,\n onSearch: customOnSearch,\n onChange: customOnChange,\n onCompositionStart,\n onCompositionEnd\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"inputPrefixCls\", \"className\", \"size\", \"suffix\", \"enterButton\", \"addonAfter\", \"loading\", \"disabled\", \"onSearch\", \"onChange\", \"onCompositionStart\", \"onCompositionEnd\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const contextSize = React.useContext(SizeContext);\n const composedRef = React.useRef(false);\n const prefixCls = getPrefixCls('input-search', customizePrefixCls);\n const inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);\n const {\n compactSize\n } = useCompactItemContext(prefixCls, direction);\n const size = compactSize || customizeSize || contextSize;\n const inputRef = React.useRef(null);\n const onChange = e => {\n if (e && e.target && e.type === 'click' && customOnSearch) {\n customOnSearch(e.target.value, e);\n }\n if (customOnChange) {\n customOnChange(e);\n }\n };\n const onMouseDown = e => {\n var _a;\n if (document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input)) {\n e.preventDefault();\n }\n };\n const onSearch = e => {\n var _a, _b;\n if (customOnSearch) {\n customOnSearch((_b = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input) === null || _b === void 0 ? void 0 : _b.value, e);\n }\n };\n const onPressEnter = e => {\n if (composedRef.current || loading) {\n return;\n }\n onSearch(e);\n };\n const searchIcon = typeof enterButton === 'boolean' ? /*#__PURE__*/React.createElement(SearchOutlined, null) : null;\n const btnClassName = `${prefixCls}-button`;\n let button;\n const enterButtonAsElement = enterButton || {};\n const isAntdButton = enterButtonAsElement.type && enterButtonAsElement.type.__ANT_BUTTON === true;\n if (isAntdButton || enterButtonAsElement.type === 'button') {\n button = cloneElement(enterButtonAsElement, Object.assign({\n onMouseDown,\n onClick: e => {\n var _a, _b;\n (_b = (_a = enterButtonAsElement === null || enterButtonAsElement === void 0 ? void 0 : enterButtonAsElement.props) === null || _a === void 0 ? void 0 : _a.onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n onSearch(e);\n },\n key: 'enterButton'\n }, isAntdButton ? {\n className: btnClassName,\n size\n } : {}));\n } else {\n button = /*#__PURE__*/React.createElement(Button, {\n className: btnClassName,\n type: enterButton ? 'primary' : undefined,\n size: size,\n disabled: disabled,\n key: \"enterButton\",\n onMouseDown: onMouseDown,\n onClick: onSearch,\n loading: loading,\n icon: searchIcon\n }, enterButton);\n }\n if (addonAfter) {\n button = [button, cloneElement(addonAfter, {\n key: 'addonAfter'\n })];\n }\n const cls = classNames(prefixCls, {\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-${size}`]: !!size,\n [`${prefixCls}-with-button`]: !!enterButton\n }, className);\n const handleOnCompositionStart = e => {\n composedRef.current = true;\n onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);\n };\n const handleOnCompositionEnd = e => {\n composedRef.current = false;\n onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);\n };\n return /*#__PURE__*/React.createElement(Input, Object.assign({\n ref: composeRef(inputRef, ref),\n onPressEnter: onPressEnter\n }, restProps, {\n size: size,\n onCompositionStart: handleOnCompositionStart,\n onCompositionEnd: handleOnCompositionEnd,\n prefixCls: inputPrefixCls,\n addonAfter: button,\n suffix: suffix,\n onChange: onChange,\n className: cls,\n disabled: disabled\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Search.displayName = 'Search';\n}\nexport default Search;","// Thanks to https://github.com/andreypopp/react-textarea-autosize/\n\n/**\n * calculateNodeHeight(uiTextNode, useCache = false)\n */\n\nvar HIDDEN_TEXTAREA_STYLE = \"\\n min-height:0 !important;\\n max-height:none !important;\\n height:0 !important;\\n visibility:hidden !important;\\n overflow:hidden !important;\\n position:absolute !important;\\n z-index:-1000 !important;\\n top:0 !important;\\n right:0 !important;\\n pointer-events: none !important;\\n\";\nvar SIZING_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'font-variant', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing', 'word-break', 'white-space'];\nvar computedStyleCache = {};\nvar hiddenTextarea;\nexport function calculateNodeStyling(node) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var nodeRef = node.getAttribute('id') || node.getAttribute('data-reactid') || node.getAttribute('name');\n if (useCache && computedStyleCache[nodeRef]) {\n return computedStyleCache[nodeRef];\n }\n var style = window.getComputedStyle(node);\n var boxSizing = style.getPropertyValue('box-sizing') || style.getPropertyValue('-moz-box-sizing') || style.getPropertyValue('-webkit-box-sizing');\n var paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));\n var borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));\n var sizingStyle = SIZING_STYLE.map(function (name) {\n return \"\".concat(name, \":\").concat(style.getPropertyValue(name));\n }).join(';');\n var nodeInfo = {\n sizingStyle: sizingStyle,\n paddingSize: paddingSize,\n borderSize: borderSize,\n boxSizing: boxSizing\n };\n if (useCache && nodeRef) {\n computedStyleCache[nodeRef] = nodeInfo;\n }\n return nodeInfo;\n}\nexport default function calculateAutoSizeStyle(uiTextNode) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var minRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var maxRows = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n hiddenTextarea.setAttribute('tab-index', '-1');\n hiddenTextarea.setAttribute('aria-hidden', 'true');\n document.body.appendChild(hiddenTextarea);\n }\n\n // Fix wrap=\"off\" issue\n // https://github.com/ant-design/ant-design/issues/6577\n if (uiTextNode.getAttribute('wrap')) {\n hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap'));\n } else {\n hiddenTextarea.removeAttribute('wrap');\n }\n\n // Copy all CSS properties that have an impact on the height of the content in\n // the textbox\n var _calculateNodeStyling = calculateNodeStyling(uiTextNode, useCache),\n paddingSize = _calculateNodeStyling.paddingSize,\n borderSize = _calculateNodeStyling.borderSize,\n boxSizing = _calculateNodeStyling.boxSizing,\n sizingStyle = _calculateNodeStyling.sizingStyle;\n\n // Need to have the overflow attribute to hide the scrollbar otherwise\n // text-lines will not calculated properly as the shadow will technically be\n // narrower for content\n hiddenTextarea.setAttribute('style', \"\".concat(sizingStyle, \";\").concat(HIDDEN_TEXTAREA_STYLE));\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || '';\n var minHeight = undefined;\n var maxHeight = undefined;\n var overflowY;\n var height = hiddenTextarea.scrollHeight;\n if (boxSizing === 'border-box') {\n // border-box: add border, since height = content + padding + border\n height += borderSize;\n } else if (boxSizing === 'content-box') {\n // remove padding, since height = content\n height -= paddingSize;\n }\n if (minRows !== null || maxRows !== null) {\n // measure height of a textarea with a single row\n hiddenTextarea.value = ' ';\n var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n overflowY = height > maxHeight ? '' : 'hidden';\n height = Math.min(maxHeight, height);\n }\n }\n var style = {\n height: height,\n overflowY: overflowY,\n resize: 'none'\n };\n if (minHeight) {\n style.minHeight = minHeight;\n }\n if (maxHeight) {\n style.maxHeight = maxHeight;\n }\n return style;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"onPressEnter\", \"defaultValue\", \"value\", \"autoSize\", \"onResize\", \"className\", \"style\", \"disabled\", \"onChange\", \"onInternalAutoSize\"];\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport calculateAutoSizeStyle from \"./calculateNodeHeight\";\nvar RESIZE_START = 0;\nvar RESIZE_MEASURING = 1;\nvar RESIZE_STABLE = 2;\nvar ResizableTextArea = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _ref = props,\n prefixCls = _ref.prefixCls,\n onPressEnter = _ref.onPressEnter,\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n autoSize = _ref.autoSize,\n onResize = _ref.onResize,\n className = _ref.className,\n style = _ref.style,\n disabled = _ref.disabled,\n onChange = _ref.onChange,\n onInternalAutoSize = _ref.onInternalAutoSize,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n // =============================== Value ================================\n var _useMergedState = useMergedState(defaultValue, {\n value: value,\n postState: function postState(val) {\n return val !== null && val !== void 0 ? val : '';\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setMergedValue = _useMergedState2[1];\n var onInternalChange = function onInternalChange(event) {\n setMergedValue(event.target.value);\n onChange === null || onChange === void 0 ? void 0 : onChange(event);\n };\n\n // ================================ Ref =================================\n var textareaRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return {\n textArea: textareaRef.current\n };\n });\n\n // ============================== AutoSize ==============================\n var _React$useMemo = React.useMemo(function () {\n if (autoSize && _typeof(autoSize) === 'object') {\n return [autoSize.minRows, autoSize.maxRows];\n }\n return [];\n }, [autoSize]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n minRows = _React$useMemo2[0],\n maxRows = _React$useMemo2[1];\n var needAutoSize = !!autoSize;\n\n // =============================== Scroll ===============================\n // https://github.com/ant-design/ant-design/issues/21870\n var fixFirefoxAutoScroll = function fixFirefoxAutoScroll() {\n try {\n // FF has bug with jump of scroll to top. We force back here.\n if (document.activeElement === textareaRef.current) {\n var _textareaRef$current = textareaRef.current,\n selectionStart = _textareaRef$current.selectionStart,\n selectionEnd = _textareaRef$current.selectionEnd,\n scrollTop = _textareaRef$current.scrollTop;\n\n // Fix Safari bug which not rollback when break line\n // This makes Chinese IME can't input. Do not fix this\n // const { value: tmpValue } = textareaRef.current;\n // textareaRef.current.value = '';\n // textareaRef.current.value = tmpValue;\n\n textareaRef.current.setSelectionRange(selectionStart, selectionEnd);\n textareaRef.current.scrollTop = scrollTop;\n }\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n };\n\n // =============================== Resize ===============================\n var _React$useState = React.useState(RESIZE_STABLE),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n resizeState = _React$useState2[0],\n setResizeState = _React$useState2[1];\n var _React$useState3 = React.useState(),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n autoSizeStyle = _React$useState4[0],\n setAutoSizeStyle = _React$useState4[1];\n var startResize = function startResize() {\n setResizeState(RESIZE_START);\n if (process.env.NODE_ENV === 'test') {\n onInternalAutoSize === null || onInternalAutoSize === void 0 ? void 0 : onInternalAutoSize();\n }\n };\n\n // Change to trigger resize measure\n useLayoutEffect(function () {\n if (needAutoSize) {\n startResize();\n }\n }, [value, minRows, maxRows, needAutoSize]);\n useLayoutEffect(function () {\n if (resizeState === RESIZE_START) {\n setResizeState(RESIZE_MEASURING);\n } else if (resizeState === RESIZE_MEASURING) {\n var textareaStyles = calculateAutoSizeStyle(textareaRef.current, false, minRows, maxRows);\n\n // Safari has bug that text will keep break line on text cut when it's prev is break line.\n // ZombieJ: This not often happen. So we just skip it.\n // const { selectionStart, selectionEnd, scrollTop } = textareaRef.current;\n // const { value: tmpValue } = textareaRef.current;\n // textareaRef.current.value = '';\n // textareaRef.current.value = tmpValue;\n\n // if (document.activeElement === textareaRef.current) {\n // textareaRef.current.scrollTop = scrollTop;\n // textareaRef.current.setSelectionRange(selectionStart, selectionEnd);\n // }\n\n setResizeState(RESIZE_STABLE);\n setAutoSizeStyle(textareaStyles);\n } else {\n fixFirefoxAutoScroll();\n }\n }, [resizeState]);\n\n // We lock resize trigger by raf to avoid Safari warning\n var resizeRafRef = React.useRef();\n var cleanRaf = function cleanRaf() {\n raf.cancel(resizeRafRef.current);\n };\n var onInternalResize = function onInternalResize(size) {\n if (resizeState === RESIZE_STABLE) {\n onResize === null || onResize === void 0 ? void 0 : onResize(size);\n if (autoSize) {\n cleanRaf();\n resizeRafRef.current = raf(function () {\n startResize();\n });\n }\n }\n };\n React.useEffect(function () {\n return cleanRaf;\n }, []);\n\n // =============================== Render ===============================\n var mergedAutoSizeStyle = needAutoSize ? autoSizeStyle : null;\n var mergedStyle = _objectSpread(_objectSpread({}, style), mergedAutoSizeStyle);\n if (resizeState === RESIZE_START || resizeState === RESIZE_MEASURING) {\n mergedStyle.overflowY = 'hidden';\n mergedStyle.overflowX = 'hidden';\n }\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onInternalResize,\n disabled: !(autoSize || onResize)\n }, /*#__PURE__*/React.createElement(\"textarea\", _extends({}, restProps, {\n ref: textareaRef,\n style: mergedStyle,\n className: classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)),\n disabled: disabled,\n value: mergedValue,\n onChange: onInternalChange\n })));\n});\nexport default ResizableTextArea;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar _excluded = [\"defaultValue\", \"value\", \"onFocus\", \"onBlur\", \"onChange\", \"allowClear\", \"maxLength\", \"onCompositionStart\", \"onCompositionEnd\", \"suffix\", \"prefixCls\", \"classes\", \"showCount\", \"className\", \"style\", \"disabled\", \"hidden\", \"classNames\", \"styles\"];\nimport clsx from 'classnames';\nimport { BaseInput } from 'rc-input';\nimport { fixControlledValue, resolveOnChange } from \"rc-input/es/utils/commonUtils\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React, { useEffect, useImperativeHandle, useRef } from 'react';\nimport ResizableTextArea from \"./ResizableTextArea\";\nfunction fixEmojiLength(value, maxLength) {\n return _toConsumableArray(value || '').slice(0, maxLength).join('');\n}\nfunction setTriggerValue(isCursorInEnd, preValue, triggerValue, maxLength) {\n var newTriggerValue = triggerValue;\n if (isCursorInEnd) {\n // 光标在尾部,直接截断\n newTriggerValue = fixEmojiLength(triggerValue, maxLength);\n } else if (_toConsumableArray(preValue || '').length < triggerValue.length && _toConsumableArray(triggerValue || '').length > maxLength) {\n // 光标在中间,如果最后的值超过最大值,则采用原先的值\n newTriggerValue = preValue;\n }\n return newTriggerValue;\n}\nvar TextArea = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var _clsx;\n var defaultValue = _ref.defaultValue,\n customValue = _ref.value,\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n onChange = _ref.onChange,\n allowClear = _ref.allowClear,\n maxLength = _ref.maxLength,\n onCompositionStart = _ref.onCompositionStart,\n onCompositionEnd = _ref.onCompositionEnd,\n suffix = _ref.suffix,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-textarea' : _ref$prefixCls,\n classes = _ref.classes,\n showCount = _ref.showCount,\n className = _ref.className,\n style = _ref.style,\n disabled = _ref.disabled,\n hidden = _ref.hidden,\n classNames = _ref.classNames,\n styles = _ref.styles,\n rest = _objectWithoutProperties(_ref, _excluded);\n var _useMergedState = useMergedState(defaultValue, {\n value: customValue,\n defaultValue: defaultValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var resizableTextAreaRef = useRef(null);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n focused = _React$useState2[0],\n setFocused = _React$useState2[1];\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n compositing = _React$useState4[0],\n setCompositing = _React$useState4[1];\n var oldCompositionValueRef = React.useRef();\n var oldSelectionStartRef = React.useRef(0);\n var focus = function focus() {\n resizableTextAreaRef.current.textArea.focus();\n };\n useImperativeHandle(ref, function () {\n return {\n resizableTextArea: resizableTextAreaRef.current,\n focus: focus,\n blur: function blur() {\n resizableTextAreaRef.current.textArea.blur();\n }\n };\n });\n useEffect(function () {\n setFocused(function (prev) {\n return !disabled && prev;\n });\n }, [disabled]);\n\n // =========================== Value Update ===========================\n // Max length value\n var hasMaxLength = Number(maxLength) > 0;\n var onInternalCompositionStart = function onInternalCompositionStart(e) {\n setCompositing(true);\n // 拼音输入前保存一份旧值\n oldCompositionValueRef.current = value;\n // 保存旧的光标位置\n oldSelectionStartRef.current = e.currentTarget.selectionStart;\n onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);\n };\n var onInternalCompositionEnd = function onInternalCompositionEnd(e) {\n setCompositing(false);\n var triggerValue = e.currentTarget.value;\n if (hasMaxLength) {\n var _oldCompositionValueR;\n var isCursorInEnd = oldSelectionStartRef.current >= maxLength + 1 || oldSelectionStartRef.current === ((_oldCompositionValueR = oldCompositionValueRef.current) === null || _oldCompositionValueR === void 0 ? void 0 : _oldCompositionValueR.length);\n triggerValue = setTriggerValue(isCursorInEnd, oldCompositionValueRef.current, triggerValue, maxLength);\n }\n // Patch composition onChange when value changed\n if (triggerValue !== value) {\n setValue(triggerValue);\n resolveOnChange(e.currentTarget, e, onChange, triggerValue);\n }\n onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);\n };\n var handleChange = function handleChange(e) {\n var triggerValue = e.target.value;\n if (!compositing && hasMaxLength) {\n // 1. 复制粘贴超过maxlength的情况 2.未超过maxlength的情况\n var isCursorInEnd = e.target.selectionStart >= maxLength + 1 || e.target.selectionStart === triggerValue.length || !e.target.selectionStart;\n triggerValue = setTriggerValue(isCursorInEnd, value, triggerValue, maxLength);\n }\n setValue(triggerValue);\n resolveOnChange(e.currentTarget, e, onChange, triggerValue);\n };\n var handleKeyDown = function handleKeyDown(e) {\n var onPressEnter = rest.onPressEnter,\n onKeyDown = rest.onKeyDown;\n if (e.key === 'Enter' && onPressEnter) {\n onPressEnter(e);\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n };\n var handleFocus = function handleFocus(e) {\n setFocused(true);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n var handleBlur = function handleBlur(e) {\n setFocused(false);\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n\n // ============================== Reset ===============================\n var handleReset = function handleReset(e) {\n setValue('');\n focus();\n resolveOnChange(resizableTextAreaRef.current.textArea, e, onChange);\n };\n var val = fixControlledValue(value);\n if (!compositing && hasMaxLength && (customValue === null || customValue === undefined)) {\n // fix #27612 将value转为数组进行截取,解决 '😂'.length === 2 等emoji表情导致的截取乱码的问题\n val = fixEmojiLength(val, maxLength);\n }\n var suffixNode = suffix;\n var dataCount;\n if (showCount) {\n var valueLength = _toConsumableArray(val).length;\n if (_typeof(showCount) === 'object') {\n dataCount = showCount.formatter({\n value: val,\n count: valueLength,\n maxLength: maxLength\n });\n } else {\n dataCount = \"\".concat(valueLength).concat(hasMaxLength ? \" / \".concat(maxLength) : '');\n }\n suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, suffixNode, /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(\"\".concat(prefixCls, \"-data-count\"), classNames === null || classNames === void 0 ? void 0 : classNames.count),\n style: styles === null || styles === void 0 ? void 0 : styles.count\n }, dataCount));\n }\n var textarea = /*#__PURE__*/React.createElement(BaseInput, {\n value: val,\n allowClear: allowClear,\n handleReset: handleReset,\n suffix: suffixNode,\n prefixCls: prefixCls,\n classes: {\n affixWrapper: clsx(classes === null || classes === void 0 ? void 0 : classes.affixWrapper, (_clsx = {}, _defineProperty(_clsx, \"\".concat(prefixCls, \"-show-count\"), showCount), _defineProperty(_clsx, \"\".concat(prefixCls, \"-textarea-allow-clear\"), allowClear), _clsx))\n },\n disabled: disabled,\n focused: focused,\n className: className,\n style: style,\n dataAttrs: {\n affixWrapper: {\n 'data-count': typeof dataCount === 'string' ? dataCount : undefined\n }\n },\n hidden: hidden,\n inputElement: /*#__PURE__*/React.createElement(ResizableTextArea, _extends({}, rest, {\n onKeyDown: handleKeyDown,\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onCompositionStart: onInternalCompositionStart,\n onCompositionEnd: onInternalCompositionEnd,\n className: classNames === null || classNames === void 0 ? void 0 : classNames.textarea,\n style: _objectSpread(_objectSpread({}, styles === null || styles === void 0 ? void 0 : styles.textarea), {}, {\n resize: style === null || style === void 0 ? void 0 : style.resize\n }),\n disabled: disabled,\n prefixCls: prefixCls,\n ref: resizableTextAreaRef\n }))\n });\n return textarea;\n});\nexport default TextArea;","import TextArea from \"./TextArea\";\nexport { default as ResizableTextArea } from \"./ResizableTextArea\";\nexport default TextArea;","var __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) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { forwardRef } from 'react';\nimport * as React from 'react';\nimport RcTextArea from 'rc-textarea';\nimport classNames from 'classnames';\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport { FormItemInputContext } from '../form/context';\nimport useStyle from './style';\nimport SizeContext from '../config-provider/SizeContext';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { triggerFocus } from './Input';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport { ConfigContext } from '../config-provider';\nconst TextArea = /*#__PURE__*/forwardRef((_a, ref) => {\n var {\n prefixCls: customizePrefixCls,\n bordered = true,\n size: customizeSize,\n disabled: customDisabled,\n status: customStatus,\n allowClear,\n showCount,\n classNames: classes\n } = _a,\n rest = __rest(_a, [\"prefixCls\", \"bordered\", \"size\", \"disabled\", \"status\", \"allowClear\", \"showCount\", \"classNames\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n // ===================== Size =====================\n const size = React.useContext(SizeContext);\n const mergedSize = customizeSize || size;\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== Status =====================\n const {\n status: contextStatus,\n hasFeedback,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Ref =====================\n const innerRef = React.useRef(null);\n React.useImperativeHandle(ref, () => {\n var _a;\n return {\n resizableTextArea: (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea,\n focus: option => {\n var _a, _b;\n triggerFocus((_b = (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea) === null || _b === void 0 ? void 0 : _b.textArea, option);\n },\n blur: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n };\n });\n const prefixCls = getPrefixCls('input', customizePrefixCls);\n // Allow clear\n let mergedAllowClear;\n if (typeof allowClear === 'object' && (allowClear === null || allowClear === void 0 ? void 0 : allowClear.clearIcon)) {\n mergedAllowClear = allowClear;\n } else if (allowClear) {\n mergedAllowClear = {\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null)\n };\n }\n // ===================== Style =====================\n const [wrapSSR, hashId] = useStyle(prefixCls);\n return wrapSSR( /*#__PURE__*/React.createElement(RcTextArea, Object.assign({}, rest, {\n disabled: mergedDisabled,\n allowClear: mergedAllowClear,\n classes: {\n affixWrapper: classNames(`${prefixCls}-textarea-affix-wrapper`, {\n [`${prefixCls}-affix-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-affix-wrapper-borderless`]: !bordered,\n [`${prefixCls}-affix-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-affix-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-textarea-show-count`]: showCount\n }, getStatusClassNames(`${prefixCls}-affix-wrapper`, mergedStatus), hashId)\n },\n classNames: Object.assign(Object.assign({}, classes), {\n textarea: classNames({\n [`${prefixCls}-borderless`]: !bordered,\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-lg`]: mergedSize === 'large'\n }, getStatusClassNames(prefixCls, mergedStatus), hashId, classes === null || classes === void 0 ? void 0 : classes.textarea)\n }),\n prefixCls: prefixCls,\n suffix: hasFeedback && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-textarea-suffix`\n }, feedbackIcon),\n showCount: showCount,\n ref: innerRef\n })));\n});\nexport default TextArea;","import Group from './Group';\nimport InternalInput from './Input';\nimport Password from './Password';\nimport Search from './Search';\nimport TextArea from './TextArea';\nconst Input = InternalInput;\nif (process.env.NODE_ENV !== 'production') {\n Input.displayName = 'Input';\n}\nInput.Group = Group;\nInput.Search = Search;\nInput.TextArea = TextArea;\nInput.Password = Password;\nexport default Input;","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n","export default (value: unknown): value is Date => value instanceof Date;\n","export default (value: unknown): value is null | undefined => value == null;\n","import isDateObject from './isDateObject';\nimport isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown) => typeof value === 'object';\n\nexport default (value: unknown): value is T =>\n !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n","import isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isObject from '../utils/isObject';\n\ntype Event = { target: any };\n\nexport default (event: unknown) =>\n isObject(event) && (event as Event).target\n ? isCheckBoxInput((event as Event).target)\n ? (event as Event).target.checked\n : (event as Event).target.value\n : event;\n","import { InternalFieldName } from '../types';\n\nimport getNodeParentName from './getNodeParentName';\n\nexport default (names: Set, name: InternalFieldName) =>\n names.has(getNodeParentName(name));\n","export default (name: string) =>\n name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n","import isObject from './isObject';\n\nexport default (tempObject: object) => {\n const prototypeCopy =\n tempObject.constructor && tempObject.constructor.prototype;\n\n return (\n isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf')\n );\n};\n","export default typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n","import isObject from './isObject';\nimport isPlainObject from './isPlainObject';\nimport isWeb from './isWeb';\n\nexport default function cloneObject(data: T): T {\n let copy: any;\n const isArray = Array.isArray(data);\n\n if (data instanceof Date) {\n copy = new Date(data);\n } else if (data instanceof Set) {\n copy = new Set(data);\n } else if (\n !(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n (isArray || isObject(data))\n ) {\n copy = isArray ? [] : {};\n\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n } else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n } else {\n return data;\n }\n\n return copy;\n}\n","export default (value: TValue[]) =>\n Array.isArray(value) ? value.filter(Boolean) : [];\n","export default (val: unknown): val is undefined => val === undefined;\n","import compact from './compact';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\n\nexport default (obj: T, path?: string, defaultValue?: unknown): any => {\n if (!path || !isObject(obj)) {\n return defaultValue;\n }\n\n const result = compact(path.split(/[,[\\].]+?/)).reduce(\n (result, key) =>\n isNullOrUndefined(result) ? result : result[key as keyof {}],\n obj,\n );\n\n return isUndefined(result) || result === obj\n ? isUndefined(obj[path as keyof T])\n ? defaultValue\n : obj[path as keyof T]\n : result;\n};\n","import { ValidationMode } from './types';\n\nexport const EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\n\nexport const VALIDATION_MODE: ValidationMode = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\n\nexport const INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n","import React from 'react';\n\nimport { FieldValues, FormProviderProps, UseFormReturn } from './types';\n\nconst HookFormContext = React.createContext(null);\n\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const useFormContext = <\n TFieldValues extends FieldValues,\n TContext = any,\n TransformedValues extends FieldValues | undefined = undefined,\n>(): UseFormReturn =>\n React.useContext(HookFormContext) as UseFormReturn<\n TFieldValues,\n TContext,\n TransformedValues\n >;\n\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useFrom methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nexport const FormProvider = <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props: FormProviderProps,\n) => {\n const { children, ...data } = props;\n return (\n \n {children}\n \n );\n};\n","import { VALIDATION_MODE } from '../constants';\nimport { Control, FieldValues, FormState, ReadFormState } from '../types';\n\nexport default (\n formState: FormState,\n control: Control,\n localProxyFormState?: ReadFormState,\n isRoot = true,\n) => {\n const result = {\n defaultValues: control._defaultValues,\n } as typeof formState;\n\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key as keyof FormState & keyof ReadFormState;\n\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n\n return result;\n};\n","import { EmptyObject } from '../types';\n\nimport isObject from './isObject';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","import { VALIDATION_MODE } from '../constants';\nimport {\n Control,\n FieldValues,\n FormState,\n InternalFieldName,\n ReadFormState,\n} from '../types';\nimport isEmptyObject from '../utils/isEmptyObject';\n\nexport default (\n formStateData: Partial> & { name?: InternalFieldName },\n _proxyFormState: K,\n updateFormState: Control['_updateFormState'],\n isRoot?: boolean,\n) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n\n return (\n isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find(\n (key) =>\n _proxyFormState[key as keyof ReadFormState] ===\n (!isRoot || VALIDATION_MODE.all),\n )\n );\n};\n","export default (value: T) => (Array.isArray(value) ? value : [value]);\n","import convertToArrayPayload from '../utils/convertToArrayPayload';\n\nexport default (\n name?: T,\n signalName?: string,\n exact?: boolean,\n) =>\n exact && signalName\n ? name === signalName\n : !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some(\n (currentName) =>\n currentName &&\n (currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)),\n );\n","import React from 'react';\n\nimport { Subject } from './utils/createSubject';\n\ntype Props = {\n disabled?: boolean;\n subject: Subject;\n next: (value: T) => void;\n};\n\nexport function useSubscribe(props: Props) {\n const _props = React.useRef(props);\n _props.current = props;\n\n React.useEffect(() => {\n const subscription =\n !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n","export default (value: unknown): value is string => typeof value === 'string';\n","import { DeepPartial, FieldValues, Names } from '../types';\nimport get from '../utils/get';\nimport isString from '../utils/isString';\n\nexport default (\n names: string | string[] | undefined,\n _names: Names,\n formValues?: FieldValues,\n isGlobal?: boolean,\n defaultValue?: DeepPartial | unknown,\n) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n\n if (Array.isArray(names)) {\n return names.map(\n (fieldName) => (\n isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)\n ),\n );\n }\n\n isGlobal && (_names.watchAll = true);\n\n return formValues;\n};\n","export default (value: string) => /^\\w*$/.test(value);\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n","import { FieldValues } from '../types';\n\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport stringToPath from './stringToPath';\n\nexport default function set(\n object: FieldValues,\n path: string,\n value?: unknown,\n) {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n}\n","import React from 'react';\n\nimport getEventValue from './logic/getEventValue';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport cloneObject from './utils/cloneObject';\nimport get from './utils/get';\nimport isUndefined from './utils/isUndefined';\nimport { EVENTS } from './constants';\nimport {\n ControllerFieldState,\n Field,\n FieldPath,\n FieldPathValue,\n FieldValues,\n InternalFieldName,\n UseControllerProps,\n UseControllerReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useFormState } from './useFormState';\nimport { useWatch } from './useWatch';\nimport { set } from './utils';\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n *
\n * \n *

{fieldState.isTouched && \"Touched\"}

\n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\n *
\n * );\n * }\n * ```\n */\nexport function useController<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>(\n props: UseControllerProps,\n): UseControllerReturn {\n const methods = useFormContext();\n const { name, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(\n control._formValues,\n name,\n get(control._defaultValues, name, props.defaultValue),\n ),\n exact: true,\n }) as FieldPathValue;\n const formState = useFormState({\n control,\n name,\n });\n\n const _registerProps = React.useRef(\n control.register(name, {\n ...props.rules,\n value,\n }),\n );\n\n _registerProps.current = control.register(name, props.rules);\n\n React.useEffect(() => {\n const _shouldUnregisterField =\n control._options.shouldUnregister || shouldUnregister;\n\n const updateMounted = (name: InternalFieldName, value: boolean) => {\n const field: Field = get(control._fields, name);\n\n if (field) {\n field._f.mount = value;\n }\n };\n\n updateMounted(name, true);\n\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n\n return () => {\n (\n isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField\n )\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n\n return {\n field: {\n name,\n value,\n onChange: React.useCallback(\n (event) =>\n _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name as InternalFieldName,\n },\n type: EVENTS.CHANGE,\n }),\n [name],\n ),\n onBlur: React.useCallback(\n () =>\n _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name as InternalFieldName,\n },\n type: EVENTS.BLUR,\n }),\n [name, control],\n ),\n ref: (elm) => {\n const field = get(control._fields, name);\n\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: (message: string) =>\n elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n },\n },\n formState,\n fieldState: Object.defineProperties(\n {},\n {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n },\n ) as ControllerFieldState,\n };\n}\n","import React from 'react';\n\nimport generateWatchOutput from './logic/generateWatchOutput';\nimport shouldSubscribeByName from './logic/shouldSubscribeByName';\nimport cloneObject from './utils/cloneObject';\nimport {\n Control,\n DeepPartialSkipArrayKey,\n FieldPath,\n FieldPathValue,\n FieldPathValues,\n FieldValues,\n InternalFieldName,\n UseWatchProps,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Subscribe to the entire form values change and re-render at the hook level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { watch } = useForm();\n * const values = useWatch({\n * control,\n * defaultValue: {\n * name: \"data\"\n * },\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n>(props: {\n defaultValue?: DeepPartialSkipArrayKey;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): DeepPartialSkipArrayKey;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { watch } = useForm();\n * const values = useWatch({\n * control,\n * name: \"fieldA\",\n * defaultValue: \"default value\",\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath = FieldPath,\n>(props: {\n name: TFieldName;\n defaultValue?: FieldPathValue;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): FieldPathValue;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { watch } = useForm();\n * const values = useWatch({\n * control,\n * name: [\"fieldA\", \"fieldB\"],\n * defaultValue: {\n * fieldA: \"data\",\n * fieldB: \"data\"\n * },\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldNames extends readonly FieldPath[] = readonly FieldPath[],\n>(props: {\n name: readonly [...TFieldNames];\n defaultValue?: DeepPartialSkipArrayKey;\n control?: Control;\n disabled?: boolean;\n exact?: boolean;\n}): FieldPathValues;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * // can skip passing down the control into useWatch if the form is wrapped with the FormProvider\n * const values = useWatch()\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n>(): DeepPartialSkipArrayKey;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { watch } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nexport function useWatch(\n props?: UseWatchProps,\n) {\n const methods = useFormContext();\n const {\n control = methods.control,\n name,\n defaultValue,\n disabled,\n exact,\n } = props || {};\n const _name = React.useRef(name);\n\n _name.current = name;\n\n useSubscribe({\n disabled,\n subject: control._subjects.values,\n next: (formState: { name?: InternalFieldName; values?: FieldValues }) => {\n if (\n shouldSubscribeByName(\n _name.current as InternalFieldName,\n formState.name,\n exact,\n )\n ) {\n updateValue(\n cloneObject(\n generateWatchOutput(\n _name.current as InternalFieldName | InternalFieldName[],\n control._names,\n formState.values || control._formValues,\n false,\n defaultValue,\n ),\n ),\n );\n }\n },\n });\n\n const [value, updateValue] = React.useState(\n control._getWatch(\n name as InternalFieldName,\n defaultValue as DeepPartialSkipArrayKey,\n ),\n );\n\n React.useEffect(() => control._removeUnmounted());\n\n return value;\n}\n","import React from 'react';\n\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport shouldSubscribeByName from './logic/shouldSubscribeByName';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormStateProps,\n UseFormStateReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n *
\n * \n * {dirtyFields.firstName &&

Field is dirty.

}\n * \n *
\n * );\n * }\n * ```\n */\nfunction useFormState(\n props?: UseFormStateProps,\n): UseFormStateReturn {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n const _name = React.useRef(name);\n\n _name.current = name;\n\n useSubscribe({\n disabled,\n next: (\n value: Partial> & { name?: InternalFieldName },\n ) =>\n _mounted.current &&\n shouldSubscribeByName(\n _name.current as InternalFieldName,\n value.name,\n exact,\n ) &&\n shouldRenderFormState(\n value,\n _localProxyFormState.current,\n control._updateFormState,\n ) &&\n updateFormState({\n ...control._formState,\n ...value,\n }),\n subject: control._subjects.state,\n });\n\n React.useEffect(() => {\n _mounted.current = true;\n _localProxyFormState.current.isValid && control._updateValid(true);\n\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n\n return getProxyFormState(\n formState,\n control,\n _localProxyFormState.current,\n false,\n );\n}\n\nexport { useFormState };\n","import { ControllerProps, FieldPath, FieldValues } from './types';\nimport { useController } from './useController';\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n *
\n * (\n * <>\n * \n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\n *

{fieldState.isTouched ? \"touched\" : \"\"}

\n * \n * )}\n * />\n * \n * );\n * }\n * ```\n */\nconst Controller = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath = FieldPath,\n>(\n props: ControllerProps,\n) => props.render(useController(props));\n\nexport { Controller };\n","import {\n InternalFieldErrors,\n InternalFieldName,\n ValidateResult,\n} from '../types';\n\nexport default (\n name: InternalFieldName,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors,\n type: string,\n message: ValidateResult,\n) =>\n validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name]!.types ? errors[name]!.types : {}),\n [type]: message || true,\n },\n }\n : {};\n","import { FieldRefs, InternalFieldName } from '../types';\nimport { get } from '../utils';\nimport isObject from '../utils/isObject';\n\nconst focusFieldBy = (\n fields: FieldRefs,\n callback: (name?: string) => boolean,\n fieldsNames?: Set | InternalFieldName[],\n) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n\n if (field) {\n const { _f, ...currentField } = field;\n\n if (_f && callback(_f.name)) {\n if (_f.ref.focus) {\n _f.ref.focus();\n break;\n } else if (_f.refs && _f.refs[0].focus) {\n _f.refs[0].focus();\n break;\n }\n } else if (isObject(currentField)) {\n focusFieldBy(currentField, callback);\n }\n }\n }\n};\n\nexport default focusFieldBy;\n","export default () => {\n const d =\n typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n","import { VALIDATION_MODE } from '../constants';\nimport { Mode } from '../types';\n\nexport default (\n mode?: Mode,\n): {\n isOnSubmit: boolean;\n isOnBlur: boolean;\n isOnChange: boolean;\n isOnAll: boolean;\n isOnTouch: boolean;\n} => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n","import { InternalFieldName, Names } from '../types';\n\nexport default (\n name: InternalFieldName,\n _names: Names,\n isBlurEvent?: boolean,\n) =>\n !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some(\n (watchName) =>\n name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length)),\n ));\n","import {\n FieldError,\n FieldErrors,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport compact from '../utils/compact';\nimport get from '../utils/get';\nimport set from '../utils/set';\n\nexport default (\n errors: FieldErrors,\n error: Partial>,\n name: InternalFieldName,\n): FieldErrors => {\n const fieldArrayErrors = compact(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import isWeb from './isWeb';\n\nexport default (value: unknown): value is HTMLElement => {\n if (!isWeb) {\n return false;\n }\n\n const owner = value ? ((value as HTMLElement).ownerDocument as Document) : 0;\n return (\n value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement)\n );\n};\n","import { Message } from '../types';\nimport isString from '../utils/isString';\n\nexport default (value: unknown): value is Message => isString(value);\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import isUndefined from '../utils/isUndefined';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean | undefined;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: HTMLInputElement[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n","type RadioFieldResult = {\n isValid: boolean;\n value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n isValid: false,\n value: null,\n};\n\nexport default (options?: HTMLInputElement[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","import { FieldError, Ref, ValidateResult } from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (\n isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)\n ) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n","import { ValidationRule } from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","import { INPUT_VALIDATION_RULES } from '../constants';\nimport {\n Field,\n FieldError,\n FieldValues,\n InternalFieldErrors,\n Message,\n NativeFieldValue,\n} from '../types';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMessage from '../utils/isMessage';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioInput from '../utils/isRadioInput';\nimport isRegex from '../utils/isRegex';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nimport appendErrors from './appendErrors';\nimport getCheckboxValue from './getCheckboxValue';\nimport getRadioValue from './getRadioValue';\nimport getValidateError from './getValidateError';\nimport getValueAndMessage from './getValueAndMessage';\n\nexport default async (\n field: Field,\n formValues: T,\n validateAllFieldCriteria: boolean,\n shouldUseNativeValidation?: boolean,\n isFieldArray?: boolean,\n): Promise => {\n const {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n valueAsNumber,\n mount,\n disabled,\n } = field._f;\n const inputValue: NativeFieldValue = get(formValues, name);\n if (!mount || disabled) {\n return {};\n }\n const inputRef: HTMLInputElement = refs ? refs[0] : (ref as HTMLInputElement);\n const setCustomValidity = (message?: string | boolean) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error: InternalFieldErrors = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty =\n ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(\n null,\n name,\n validateAllFieldCriteria,\n error,\n );\n const getMinMaxMessage = (\n exceedMax: boolean,\n maxLengthMessage: Message,\n minLengthMessage: Message,\n maxType = INPUT_VALIDATION_RULES.maxLength,\n minType = INPUT_VALIDATION_RULES.minLength,\n ) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n\n if (\n isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))\n ) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue as number)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate =\n (ref as HTMLInputElement).valueAsDate || new Date(inputValue as string);\n const convertTimeToDate = (time: unknown) =>\n new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n !!exceedMax,\n maxOutput.message,\n minOutput.message,\n INPUT_VALIDATION_RULES.max,\n INPUT_VALIDATION_RULES.min,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (\n (maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))\n ) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(\n INPUT_VALIDATION_RULES.validate,\n validateError.message,\n ),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateError = getValidateError(\n await validate[key](inputValue, formValues),\n inputRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n setCustomValidity(validateError.message);\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n setCustomValidity(true);\n return error;\n};\n","import isEmptyObject from './isEmptyObject';\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n\n return object;\n}\n\nfunction isEmptyArray(obj: unknown[]) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\n\nexport default function unset(object: any, path: string | (string | number)[]) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n\n const index = paths.length - 1;\n const key = paths[index];\n\n if (childObject) {\n delete childObject[key];\n }\n\n if (\n index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))\n ) {\n unset(object, paths.slice(0, -1));\n }\n\n return object;\n}\n","import { Noop } from '../types';\n\nexport type Observer = {\n next: (value: T) => void;\n};\n\nexport type Subscription = {\n unsubscribe: Noop;\n};\n\nexport type Subject = {\n readonly observers: Observer[];\n subscribe: (value: Observer) => Subscription;\n unsubscribe: Noop;\n} & Observer;\n\nexport default function createSubject(): Subject {\n let _observers: Observer[] = [];\n\n const next = (value: T) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n\n const subscribe = (observer: Observer): Subscription => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n\n const unsubscribe = () => {\n _observers = [];\n };\n\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n}\n","import { Primitive } from '../types';\n\nimport isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isObject from '../utils/isObject';\n\nimport isDateObject from './isDateObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(object1: any, object2: any) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n const val1 = object1[key];\n\n if (!keys2.includes(key)) {\n return false;\n }\n\n if (key !== 'ref') {\n const val2 = object2[key];\n\n if (\n (isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2\n ) {\n return false;\n }\n }\n }\n\n return true;\n}\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `select-multiple`;\n","import { FieldElement } from '../types';\n\nimport isCheckBoxInput from './isCheckBoxInput';\nimport isRadioInput from './isRadioInput';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","import { Ref } from '../types';\n\nimport isHTMLElement from './isHTMLElement';\n\nexport default (ref: Ref) => isHTMLElement(ref) && ref.isConnected;\n","import isFunction from './isFunction';\n\nexport default (data: T): boolean => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n","import deepEqual from '../utils/deepEqual';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isUndefined from '../utils/isUndefined';\nimport objectHasFunction from '../utils/objectHasFunction';\n\nfunction markFieldsDirty(data: U, fields: Record = {}) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n } else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n\n return fields;\n}\n\nfunction getDirtyFieldsFromDefaultValues(\n data: T,\n formValues: T,\n dirtyFieldsFromValues: any,\n) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n if (\n isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])\n ) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n } else {\n getDirtyFieldsFromDefaultValues(\n data[key],\n isNullOrUndefined(formValues) ? {} : formValues[key],\n dirtyFieldsFromValues[key],\n );\n }\n } else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n\n return dirtyFieldsFromValues;\n}\n\nexport default (defaultValues: T, formValues: T) =>\n getDirtyFieldsFromDefaultValues(\n defaultValues,\n formValues,\n markFieldsDirty(formValues),\n );\n","import { Field, NativeFieldValue } from '../types';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n value: T,\n { valueAsNumber, valueAsDate, setValueAs }: Field['_f'],\n) =>\n isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n","import { Field } from '../types';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isFileInput from '../utils/isFileInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isRadioInput from '../utils/isRadioInput';\nimport isUndefined from '../utils/isUndefined';\n\nimport getCheckboxValue from './getCheckboxValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getRadioValue from './getRadioValue';\n\nexport default function getFieldValue(_f: Field['_f']) {\n const ref = _f.ref;\n\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n return;\n }\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n","import {\n CriteriaMode,\n Field,\n FieldName,\n FieldRefs,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport { get } from '../utils';\nimport set from '../utils/set';\n\nexport default (\n fieldsNames: Set | InternalFieldName[],\n _fields: FieldRefs,\n criteriaMode?: CriteriaMode,\n shouldUseNativeValidation?: boolean | undefined,\n) => {\n const fields: Record = {};\n\n for (const name of fieldsNames) {\n const field: Field = get(_fields, name);\n\n field && set(fields, name, field._f);\n }\n\n return {\n criteriaMode,\n names: [...fieldsNames] as FieldName[],\n fields,\n shouldUseNativeValidation,\n };\n};\n","import {\n ValidationRule,\n ValidationValue,\n ValidationValueMessage,\n} from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n rule?: ValidationRule | ValidationValueMessage,\n) =>\n isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n","import { Field } from '../types';\n\nexport default (options: Field['_f']) =>\n options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n","import { FieldError, FieldErrors, FieldValues } from '../types';\nimport get from '../utils/get';\nimport isKey from '../utils/isKey';\n\nexport default function schemaErrorLookup(\n errors: FieldErrors,\n _fields: FieldValues,\n name: string,\n): {\n error?: FieldError;\n name: string;\n} {\n const error = get(errors, name);\n\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n\n const names = name.split('.');\n\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n\n names.pop();\n }\n\n return {\n name,\n };\n}\n","export default (\n isBlurEvent: boolean,\n isTouched: boolean,\n isSubmitted: boolean,\n reValidateMode: {\n isOnBlur: boolean;\n isOnChange: boolean;\n },\n mode: Partial<{\n isOnSubmit: boolean;\n isOnBlur: boolean;\n isOnChange: boolean;\n isOnTouch: boolean;\n isOnAll: boolean;\n }>,\n) => {\n if (mode.isOnAll) {\n return false;\n } else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n","import compact from '../utils/compact';\nimport get from '../utils/get';\nimport unset from '../utils/unset';\n\nexport default (ref: T, name: string) =>\n !compact(get(ref, name)).length && unset(ref, name);\n","import { EVENTS, VALIDATION_MODE } from '../constants';\nimport {\n BatchFieldArrayUpdate,\n ChangeHandler,\n DeepPartial,\n DelayCallback,\n EventType,\n Field,\n FieldError,\n FieldNamesMarkedBoolean,\n FieldPath,\n FieldRefs,\n FieldValues,\n FormState,\n GetIsDirty,\n InternalFieldName,\n Names,\n Path,\n PathValue,\n Ref,\n SetFieldValue,\n SetValueConfig,\n Subjects,\n UseFormClearErrors,\n UseFormGetFieldState,\n UseFormGetValues,\n UseFormHandleSubmit,\n UseFormProps,\n UseFormRegister,\n UseFormReset,\n UseFormResetField,\n UseFormReturn,\n UseFormSetError,\n UseFormSetFocus,\n UseFormSetValue,\n UseFormTrigger,\n UseFormUnregister,\n UseFormWatch,\n WatchInternal,\n WatchObserver,\n} from '../types';\nimport cloneObject from '../utils/cloneObject';\nimport compact from '../utils/compact';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport createSubject from '../utils/createSubject';\nimport deepEqual from '../utils/deepEqual';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDateObject from '../utils/isDateObject';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isRadioOrCheckbox from '../utils/isRadioOrCheckbox';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\nimport isWeb from '../utils/isWeb';\nimport live from '../utils/live';\nimport set from '../utils/set';\nimport unset from '../utils/unset';\n\nimport focusFieldBy from './focusFieldBy';\nimport generateWatchOutput from './generateWatchOutput';\nimport getDirtyFields from './getDirtyFields';\nimport getEventValue from './getEventValue';\nimport getFieldValue from './getFieldValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getResolverOptions from './getResolverOptions';\nimport getRuleValue from './getRuleValue';\nimport getValidationModes from './getValidationModes';\nimport hasValidation from './hasValidation';\nimport isNameInFieldArray from './isNameInFieldArray';\nimport isWatched from './isWatched';\nimport schemaErrorLookup from './schemaErrorLookup';\nimport skipValidation from './skipValidation';\nimport unsetEmptyArray from './unsetEmptyArray';\nimport updateFieldArrayRootError from './updateFieldArrayRootError';\nimport validateField from './validateField';\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n} as const;\n\nexport function createFormControl<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n>(\n props: UseFormProps = {},\n flushRootRender: () => void,\n): Omit, 'formState'> {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState: FormState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n errors: {},\n };\n let _fields = {};\n let _defaultValues =\n isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names: Names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback: DelayCallback | null;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects: Subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const shouldCaptureDirtyFields =\n props.resetOptions && props.resetOptions.keepDirtyValues;\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors =\n _options.criteriaMode === VALIDATION_MODE.all;\n\n const debounce =\n (callback: T) =>\n (wait: number) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n\n const _updateValid = async (shouldUpdateValid?: boolean) => {\n if (_proxyFormState.isValid || shouldUpdateValid) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n\n const _updateIsValidating = (value: boolean) =>\n _proxyFormState.isValidating &&\n _subjects.state.next({\n isValidating: value,\n });\n\n const _updateFieldArray: BatchFieldArrayUpdate = (\n name,\n values = [],\n method,\n args,\n shouldSetValues = true,\n shouldUpdateFieldsAndState = true,\n ) => {\n if (args && method) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n\n if (\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))\n ) {\n const errors = method(\n get(_formState.errors, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n\n if (\n _proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))\n ) {\n const touchedFields = method(\n get(_formState.touchedFields, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n } else {\n set(_formValues, name, values);\n }\n };\n\n const updateErrors = (name: InternalFieldName, error: FieldError) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n\n const updateValidAndValue = (\n name: InternalFieldName,\n shouldSkipSetValueAs: boolean,\n value?: unknown,\n ref?: Ref,\n ) => {\n const field: Field = get(_fields, name);\n\n if (field) {\n const defaultValue = get(\n _formValues,\n name,\n isUndefined(value) ? get(_defaultValues, name) : value,\n );\n\n isUndefined(defaultValue) ||\n (ref && (ref as HTMLInputElement).defaultChecked) ||\n shouldSkipSetValueAs\n ? set(\n _formValues,\n name,\n shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f),\n )\n : setFieldValue(name, defaultValue);\n\n _state.mount && _updateValid();\n }\n };\n\n const updateTouchAndDirty = (\n name: InternalFieldName,\n fieldValue: unknown,\n isBlurEvent?: boolean,\n shouldDirty?: boolean,\n shouldRender?: boolean,\n ): Partial<\n Pick, 'dirtyFields' | 'isDirty' | 'touchedFields'>\n > => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output: Partial> & { name: string } = {\n name,\n };\n\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n\n const isCurrentFieldPristine = deepEqual(\n get(_defaultValues, name),\n fieldValue,\n );\n\n isPreviousDirty = get(_formState.dirtyFields, name);\n isCurrentFieldPristine\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n\n return shouldUpdateField ? output : {};\n };\n\n const shouldRenderByError = (\n name: InternalFieldName,\n isValid?: boolean,\n error?: FieldError,\n fieldState?: {\n dirty?: FieldNamesMarkedBoolean;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean;\n },\n ) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid =\n _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n\n if (props.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(props.delayError);\n } else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n\n if (\n (error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid\n ) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n\n _subjects.state.next(updatedFormState);\n }\n\n _updateIsValidating(false);\n };\n\n const _executeSchema = async (name?: InternalFieldName[]) =>\n _options.resolver!(\n _formValues as TFieldValues,\n _options.context,\n getResolverOptions(\n name || _names.mount,\n _fields,\n _options.criteriaMode,\n _options.shouldUseNativeValidation,\n ),\n );\n\n const executeSchemaAndUpdateState = async (names?: InternalFieldName[]) => {\n const { errors } = await _executeSchema();\n\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n } else {\n _formState.errors = errors;\n }\n\n return errors;\n };\n\n const executeBuiltInValidation = async (\n fields: FieldRefs,\n shouldOnlyCheckValid?: boolean,\n context: {\n valid: boolean;\n } = {\n valid: true,\n },\n ) => {\n for (const name in fields) {\n const field = fields[name];\n\n if (field) {\n const { _f, ...fieldValue } = field;\n\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const fieldError = await validateField(\n field,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation && !shouldOnlyCheckValid,\n isFieldArrayRoot,\n );\n\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(\n _formState.errors,\n fieldError,\n _f.name,\n )\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n\n fieldValue &&\n (await executeBuiltInValidation(\n fieldValue,\n shouldOnlyCheckValid,\n context,\n ));\n }\n }\n\n return context.valid;\n };\n\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field: Field = get(_fields, name);\n\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name as FieldPath);\n }\n\n _names.unMount = new Set();\n };\n\n const _getDirty: GetIsDirty = (name, data) => (\n name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues)\n );\n\n const _getWatch: WatchInternal = (\n names,\n defaultValue,\n isGlobal,\n ) =>\n generateWatchOutput(\n names,\n _names,\n {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n },\n isGlobal,\n defaultValue,\n );\n\n const _getFieldArray = (\n name: InternalFieldName,\n ): Partial[] =>\n compact(\n get(\n _state.mount ? _formValues : _defaultValues,\n name,\n props.shouldUnregister ? get(_defaultValues, name, []) : [],\n ),\n );\n\n const setFieldValue = (\n name: InternalFieldName,\n value: SetFieldValue,\n options: SetValueConfig = {},\n ) => {\n const field: Field = get(_fields, name);\n let fieldValue: unknown = value;\n\n if (field) {\n const fieldReference = field._f;\n\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach(\n (optionRef) =>\n (optionRef.selected = (\n fieldValue as InternalFieldName[]\n ).includes(optionRef.value)),\n );\n } else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach(\n (checkboxRef) =>\n (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!(fieldValue as []).find(\n (data: string) => data === checkboxRef.value,\n )\n : fieldValue === checkboxRef.value),\n )\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n } else {\n fieldReference.refs.forEach(\n (radioRef: HTMLInputElement) =>\n (radioRef.checked = radioRef.value === fieldValue),\n );\n }\n } else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n } else {\n fieldReference.ref.value = fieldValue;\n\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(\n name,\n fieldValue,\n options.shouldTouch,\n options.shouldDirty,\n true,\n );\n\n options.shouldValidate && trigger(name as Path);\n };\n\n const setValues = <\n T extends InternalFieldName,\n K extends SetFieldValue,\n U extends SetValueConfig,\n >(\n name: T,\n value: K,\n options: U,\n ) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n\n (_names.array.has(name) ||\n !isPrimitive(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n\n const setValue: UseFormSetValue = (\n name,\n value,\n options = {},\n ) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n\n set(_formValues, name, cloneValue);\n\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n\n if (\n (_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty\n ) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n } else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n !_state.mount && flushRootRender();\n };\n\n const onChange: ChangeHandler = async (event) => {\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field: Field = get(_fields, name);\n const getCurrentFieldValue = () =>\n target.type ? getFieldValue(field._f) : getEventValue(event);\n\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent =\n event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation =\n (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(\n isBlurEvent,\n get(_formState.touchedFields, name),\n _formState.isSubmitted,\n validationModeAfterSubmit,\n validationModeBeforeSubmit,\n );\n const watched = isWatched(name, _names, isBlurEvent);\n\n set(_formValues, name, fieldValue);\n\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n } else if (field._f.onChange) {\n field._f.onChange(event);\n }\n\n const fieldState = updateTouchAndDirty(\n name,\n fieldValue,\n isBlurEvent,\n false,\n );\n\n const shouldRender = !isEmptyObject(fieldState) || watched;\n\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n\n if (shouldSkipValidation) {\n _proxyFormState.isValid && _updateValid();\n\n return (\n shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) })\n );\n }\n\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n\n _updateIsValidating(true);\n\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n const previousErrorLookupResult = schemaErrorLookup(\n _formState.errors,\n _fields,\n name,\n );\n const errorLookupResult = schemaErrorLookup(\n errors,\n _fields,\n previousErrorLookupResult.name || name,\n );\n\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n\n isValid = isEmptyObject(errors);\n } else {\n error = (\n await validateField(\n field,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n )\n )[name];\n\n isFieldValueUpdated =\n isNaN(fieldValue) ||\n fieldValue === get(_formValues, name, fieldValue);\n\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n } else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(\n field._f.deps as\n | FieldPath\n | FieldPath[],\n );\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n\n const trigger: UseFormTrigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name) as InternalFieldName[];\n\n _updateIsValidating(true);\n\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(\n isUndefined(name) ? name : fieldNames,\n );\n\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n } else if (name) {\n validationResult = (\n await Promise.all(\n fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(\n field && field._f ? { [fieldName]: field } : field,\n );\n }),\n )\n ).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n } else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n isValidating: false,\n });\n\n options.shouldFocus &&\n !validationResult &&\n focusFieldBy(\n _fields,\n (key) => key && get(_formState.errors, key),\n name ? fieldNames : _names.mount,\n );\n\n return validationResult;\n };\n\n const getValues: UseFormGetValues = (\n fieldNames?:\n | FieldPath\n | ReadonlyArray>,\n ) => {\n const values = {\n ..._defaultValues,\n ...(_state.mount ? _formValues : {}),\n };\n\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n\n const getFieldState: UseFormGetFieldState = (\n name,\n formState,\n ) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n error: get((formState || _formState).errors, name),\n });\n\n const clearErrors: UseFormClearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) =>\n unset(_formState.errors, inputName),\n );\n\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n\n const setError: UseFormSetError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n\n set(_formState.errors, name, {\n ...error,\n ref,\n });\n\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n\n const watch: UseFormWatch = (\n name?:\n | FieldPath\n | ReadonlyArray>\n | WatchObserver,\n defaultValue?: DeepPartial,\n ) =>\n isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) =>\n name(\n _getWatch(undefined, defaultValue),\n payload as {\n name?: FieldPath;\n type?: EventType;\n value?: unknown;\n },\n ),\n })\n : _getWatch(\n name as InternalFieldName | InternalFieldName[],\n defaultValue,\n true,\n );\n\n const unregister: UseFormUnregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n\n _subjects.values.next({\n values: { ..._formValues },\n });\n\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n\n !options.keepIsValid && _updateValid();\n };\n\n const register: UseFormRegister = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled);\n\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n\n field\n ? disabledIsDefined &&\n set(\n _formValues,\n name,\n options.disabled\n ? undefined\n : get(_formValues, name, getFieldValue(field._f)),\n )\n : updateValidAndValue(name, true, options.value);\n\n return {\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength) as number,\n maxLength: getRuleValue(options.maxLength) as number,\n pattern: getRuleValue(options.pattern) as string,\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref: HTMLInputElement | null): void => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? (ref.querySelectorAll('input,select,textarea')[0] as Ref) || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n\n if (\n radioOrCheckbox\n ? refs.find((option: Ref) => option === fieldRef)\n : fieldRef === field._f.ref\n ) {\n return;\n }\n\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n\n updateValidAndValue(name, false, undefined, fieldRef);\n } else {\n field = get(_fields, name, {});\n\n if (field._f) {\n field._f.mount = false;\n }\n\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n\n const _focusError = () =>\n _options.shouldFocusError &&\n focusFieldBy(\n _fields,\n (key) => key && get(_formState.errors, key),\n _names.mount,\n );\n\n const handleSubmit: UseFormHandleSubmit =\n (onValid, onInvalid) => async (e) => {\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n\n _subjects.state.next({\n isSubmitting: true,\n });\n\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n } else {\n await executeBuiltInValidation(_fields);\n }\n\n unset(_formState.errors, 'root');\n\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n await onValid(fieldValues as TFieldValues, e);\n } else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors),\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n };\n\n const resetField: UseFormResetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, get(_defaultValues, name));\n } else {\n setValue(\n name,\n options.defaultValue as PathValue<\n TFieldValues,\n FieldPath\n >,\n );\n set(_defaultValues, name, options.defaultValue);\n }\n\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, get(_defaultValues, name))\n : _getDirty();\n }\n\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n\n _subjects.state.next({ ..._formState });\n }\n };\n\n const _reset: UseFormReset = (\n formValues,\n keepStateOptions = {},\n ) => {\n const updatedValues = formValues || _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const values =\n formValues && !isEmptyObject(formValues)\n ? cloneUpdatedValues\n : _defaultValues;\n\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues || shouldCaptureDirtyFields) {\n for (const fieldName of _names.mount) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(\n fieldName as FieldPath,\n get(values, fieldName),\n );\n }\n } else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n\n _fields = {};\n }\n\n _formValues = props.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n\n _subjects.array.next({\n values: { ...values },\n });\n\n _subjects.values.next({\n values: { ...values },\n });\n }\n\n _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n\n !_state.mount && flushRootRender();\n\n _state.mount = !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\n\n _state.watch = !!props.shouldUnregister;\n\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(\n keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)\n ),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: keepStateOptions.keepDirtyValues\n ? _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n });\n };\n\n const reset: UseFormReset = (formValues, keepStateOptions) =>\n _reset(\n isFunction(formValues)\n ? formValues(_formValues as TFieldValues)\n : formValues,\n keepStateOptions,\n );\n\n const setFocus: UseFormSetFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect && fieldRef.select();\n }\n }\n };\n\n const _updateFormState = (\n updatedFormState: Partial>,\n ) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n\n const _resetDefaultValues = () =>\n isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _subjects,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n","import React from 'react';\n\nimport { createFormControl } from './logic/createFormControl';\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport deepEqual from './utils/deepEqual';\nimport isFunction from './utils/isFunction';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormProps,\n UseFormReturn,\n} from './types';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n *
\n * \n * \n * {errors.exampleRequired && This field is required}\n * \n *
\n * );\n * }\n * ```\n */\nexport function useForm<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props: UseFormProps = {},\n): UseFormReturn {\n const _formControl = React.useRef<\n UseFormReturn | undefined\n >();\n const [formState, updateFormState] = React.useState>({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n errors: {},\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props, () =>\n updateFormState((formState) => ({ ...formState })),\n ),\n formState,\n };\n }\n\n const control = _formControl.current.control;\n control._options = props;\n\n useSubscribe({\n subject: control._subjects.state,\n next: (\n value: Partial> & { name?: InternalFieldName },\n ) => {\n if (\n shouldRenderFormState(\n value,\n control._proxyFormState,\n control._updateFormState,\n true,\n )\n ) {\n updateFormState({ ...control._formState });\n }\n },\n });\n\n React.useEffect(() => {\n if (\n props.values &&\n (!deepEqual(props.values, control._defaultValues) ||\n !deepEqual(props.values, control._formValues))\n ) {\n control._reset(props.values, control._options.resetOptions);\n } else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n\n control._removeUnmounted();\n });\n\n _formControl.current.formState = getProxyFormState(formState, control);\n\n return _formControl.current;\n}\n","import React, { useState } from \"react\";\nimport { EyeOutlined, EyeInvisibleOutlined } from \"@ant-design/icons\";\nimport \"./floatInput.scss\";\nimport { Input } from \"antd\";\nimport { Controller } from \"react-hook-form\";\nconst FloatInput = ({ control, error, name, label, placeholder, type, required, addonBefore, username }) => {\n const [value, setValue] = useState(username || \"\");\n const [passwordVisible, setPasswordVisible] = useState(false); // State to track password visibility\n\n if (!placeholder) placeholder = label;\n\n const isOccupied = value && value.length;\n const labelClass = isOccupied ? \"label as-label\" : \"label as-placeholder\";\n const requiredMark = required ? * : null;\n\n const togglePasswordVisibility = () => {\n setPasswordVisible(!passwordVisible);\n };\n return (\n
\n {control ? (\n <>\n {\" \"}\n {\n return (\n <>\n {\n field.onChange(e?.target?.value);\n setValue(e.target.value);\n }}\n type={passwordVisible ? \"text\" : type || \"text\"}\n addonBefore={addonBefore}\n suffix={\n type === \"password\" && (\n \n {passwordVisible ? : }\n \n )\n }\n defaultValue={username || \"\"}\n />\n \n \n );\n }}\n />\n {error?.[name ?? \"\"] && (\n \n <>{error?.[name ?? \"\"]?.message.toString()}\n \n )}\n \n ) : (\n <>\n {\" \"}\n \n {passwordVisible ? : }\n \n )\n }\n />\n \n \n )}\n
\n );\n};\n\nexport default FloatInput;\n","import {\n get,\n FieldError,\n ResolverOptions,\n Ref,\n FieldErrors,\n FieldValues,\n} from 'react-hook-form';\n\nconst setCustomValidity = (\n ref: Ref,\n fieldPath: string,\n errors: FieldErrors,\n) => {\n if (ref && 'reportValidity' in ref) {\n const error = get(errors, fieldPath) as FieldError | undefined;\n ref.setCustomValidity((error && error.message) || '');\n\n ref.reportValidity();\n }\n};\n\n// Native validation (web only)\nexport const validateFieldsNatively = (\n errors: FieldErrors,\n options: ResolverOptions,\n): void => {\n for (const fieldPath in options.fields) {\n const field = options.fields[fieldPath];\n if (field && field.ref && 'reportValidity' in field.ref) {\n setCustomValidity(field.ref, fieldPath, errors);\n } else if (field.refs) {\n field.refs.forEach((ref: HTMLInputElement) =>\n setCustomValidity(ref, fieldPath, errors),\n );\n }\n }\n};\n","// ES6 Map\nvar map\ntry {\n map = Map\n} catch (_) { }\nvar set\n\n// ES6 Set\ntry {\n set = Set\n} catch (_) { }\n\nfunction baseClone (src, circulars, clones) {\n // Null/undefined/functions/etc\n if (!src || typeof src !== 'object' || typeof src === 'function') {\n return src\n }\n\n // DOM Node\n if (src.nodeType && 'cloneNode' in src) {\n return src.cloneNode(true)\n }\n\n // Date\n if (src instanceof Date) {\n return new Date(src.getTime())\n }\n\n // RegExp\n if (src instanceof RegExp) {\n return new RegExp(src)\n }\n\n // Arrays\n if (Array.isArray(src)) {\n return src.map(clone)\n }\n\n // ES6 Maps\n if (map && src instanceof map) {\n return new Map(Array.from(src.entries()))\n }\n\n // ES6 Sets\n if (set && src instanceof set) {\n return new Set(Array.from(src.values()))\n }\n\n // Object\n if (src instanceof Object) {\n circulars.push(src)\n var obj = Object.create(src)\n clones.push(obj)\n for (var key in src) {\n var idx = circulars.findIndex(function (i) {\n return i === src[key]\n })\n obj[key] = idx > -1 ? clones[idx] : baseClone(src[key], circulars, clones)\n }\n return obj\n }\n\n // ???\n return src\n}\n\nexport default function clone (src) {\n return baseClone(src, [], [])\n}\n","import {\n set,\n get,\n FieldErrors,\n Field,\n ResolverOptions,\n FieldValues,\n} from 'react-hook-form';\nimport { validateFieldsNatively } from './validateFieldsNatively';\n\nexport const toNestError = (\n errors: FieldErrors,\n options: ResolverOptions,\n): FieldErrors => {\n options.shouldUseNativeValidation && validateFieldsNatively(errors, options);\n\n const fieldErrors = {} as FieldErrors;\n for (const path in errors) {\n const field = get(options.fields, path) as Field['_f'] | undefined;\n\n set(\n fieldErrors,\n path,\n Object.assign(errors[path] || {}, { ref: field && field.ref }),\n );\n }\n\n return fieldErrors;\n};\n","import * as Yup from 'yup';\nimport { toNestError, validateFieldsNatively } from '@hookform/resolvers';\nimport {\n appendErrors,\n FieldError,\n FieldValues,\n Resolver,\n} from 'react-hook-form';\n\n/**\n * Why `path!` ? because it could be `undefined` in some case\n * https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n */\nconst parseErrorSchema = (\n error: Yup.ValidationError,\n validateAllFieldCriteria: boolean,\n) => {\n return (error.inner || []).reduce>(\n (previous, error) => {\n if (!previous[error.path!]) {\n previous[error.path!] = { message: error.message, type: error.type! };\n }\n\n if (validateAllFieldCriteria) {\n const types = previous[error.path!].types;\n const messages = types && types[error.type!];\n\n previous[error.path!] = appendErrors(\n error.path!,\n validateAllFieldCriteria,\n previous,\n error.type!,\n messages\n ? ([] as string[]).concat(messages as string[], error.message)\n : error.message,\n ) as FieldError;\n }\n\n return previous;\n },\n {},\n );\n};\n\nexport function yupResolver(\n schema: Yup.ObjectSchema,\n schemaOptions: Parameters<(typeof schema)['validate']>[1] = {},\n resolverOptions: {\n /**\n * @default async\n */\n mode?: 'async' | 'sync';\n /**\n * Return the raw input values rather than the parsed values.\n * @default false\n */\n raw?: boolean;\n } = {},\n): Resolver {\n return async (values, context, options) => {\n try {\n if (schemaOptions.context && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n \"You should not used the yup options context. Please, use the 'useForm' context object instead\",\n );\n }\n\n const result = await schema[\n resolverOptions.mode === 'sync' ? 'validateSync' : 'validate'\n ](\n values,\n Object.assign({ abortEarly: false }, schemaOptions, { context }),\n );\n\n options.shouldUseNativeValidation && validateFieldsNatively({}, options);\n\n return {\n values: resolverOptions.raw ? values : result,\n errors: {},\n };\n } catch (e: any) {\n if (!e.inner) {\n throw e;\n }\n\n return {\n values: {},\n errors: toNestError(\n parseErrorSchema(\n e,\n !options.shouldUseNativeValidation &&\n options.criteriaMode === 'all',\n ),\n options,\n ),\n };\n }\n };\n}\n","const toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\n\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\n\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n const tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\n\nexport default function printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}","import printValue from './util/printValue';\nexport let mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: ({\n path,\n type,\n value,\n originalValue\n }) => {\n let isCast = originalValue != null && originalValue !== value;\n let msg = `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + (isCast ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.');\n\n if (value === null) {\n msg += `\\n If \"null\" is intended as an empty value be sure to mark the schema as \\`.nullable()\\``;\n }\n\n return msg;\n },\n defined: '${path} must be defined'\n};\nexport let string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n uuid: '${path} must be a valid UUID',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nexport let number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nexport let date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nexport let boolean = {\n isValue: '${path} field must be ${value}'\n};\nexport let object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}'\n};\nexport let array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items',\n length: '${path} must have ${length} items'\n};\nexport default Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean\n});","const isSchema = obj => obj && obj.__isYupSchema__;\n\nexport default isSchema;","import has from 'lodash/has';\nimport isSchema from './util/isSchema';\n\nclass Condition {\n constructor(refs, options) {\n this.fn = void 0;\n this.refs = refs;\n this.refs = refs;\n\n if (typeof options === 'function') {\n this.fn = options;\n return;\n }\n\n if (!has(options, 'is')) throw new TypeError('`is:` is required for `when()` conditions');\n if (!options.then && !options.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n let {\n is,\n then,\n otherwise\n } = options;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n\n this.fn = function (...args) {\n let options = args.pop();\n let schema = args.pop();\n let branch = check(...args) ? then : otherwise;\n if (!branch) return undefined;\n if (typeof branch === 'function') return branch(schema);\n return schema.concat(branch.resolve(options));\n };\n }\n\n resolve(base, options) {\n let values = this.refs.map(ref => ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn.apply(base, values.concat(base, options));\n if (schema === undefined || schema === base) return base;\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n\n}\n\nexport default Condition;","export default function toArray(value) {\n return value == null ? [] : [].concat(value);\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport printValue from './util/printValue';\nimport toArray from './util/toArray';\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\nexport default class ValidationError extends Error {\n static formatError(message, params) {\n const path = params.label || params.path || 'this';\n if (path !== params.path) params = _extends({}, params, {\n path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n\n constructor(errorOrErrors, value, field, type) {\n super();\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.errors = void 0;\n this.params = void 0;\n this.inner = void 0;\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n this.inner = this.inner.concat(err.inner.length ? err.inner : err);\n } else {\n this.errors.push(err);\n }\n });\n this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n if (Error.captureStackTrace) Error.captureStackTrace(this, ValidationError);\n }\n\n}","import ValidationError from '../ValidationError';\n\nconst once = cb => {\n let fired = false;\n return (...args) => {\n if (fired) return;\n fired = true;\n cb(...args);\n };\n};\n\nexport default function runTests(options, cb) {\n let {\n endEarly,\n tests,\n args,\n value,\n errors,\n sort,\n path\n } = options;\n let callback = once(cb);\n let count = tests.length;\n const nestedErrors = [];\n errors = errors ? errors : [];\n if (!count) return errors.length ? callback(new ValidationError(errors, value, path)) : callback(null, value);\n\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, function finishTestRun(err) {\n if (err) {\n // always return early for non validation errors\n if (!ValidationError.isError(err)) {\n return callback(err, value);\n }\n\n if (endEarly) {\n err.value = value;\n return callback(err, value);\n }\n\n nestedErrors.push(err);\n }\n\n if (--count <= 0) {\n if (nestedErrors.length) {\n if (sort) nestedErrors.sort(sort); //show parent errors after the nested ones: name.first, name\n\n if (errors.length) nestedErrors.push(...errors);\n errors = nestedErrors;\n }\n\n if (errors.length) {\n callback(new ValidationError(errors, value, path), value);\n return;\n }\n\n callback(null, value);\n }\n });\n }\n}","import { getter } from 'property-expr';\nconst prefixes = {\n context: '$',\n value: '.'\n};\nexport function create(key, options) {\n return new Reference(key, options);\n}\nexport default class Reference {\n constructor(key, options = {}) {\n this.key = void 0;\n this.isContext = void 0;\n this.isValue = void 0;\n this.isSibling = void 0;\n this.path = void 0;\n this.getter = void 0;\n this.map = void 0;\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n\n\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n\n resolve() {\n return this;\n }\n\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n\n toString() {\n return `Ref(${this.key})`;\n }\n\n static isRef(value) {\n return value && value.__isYupRef;\n }\n\n} // @ts-ignore\n\nReference.prototype.__isYupRef = true;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport mapValues from 'lodash/mapValues';\nimport ValidationError from '../ValidationError';\nimport Ref from '../Reference';\nexport default function createValidation(config) {\n function validate(_ref, cb) {\n let {\n value,\n path = '',\n label,\n options,\n originalValue,\n sync\n } = _ref,\n rest = _objectWithoutPropertiesLoose(_ref, [\"value\", \"path\", \"label\", \"options\", \"originalValue\", \"sync\"]);\n\n const {\n name,\n test,\n params,\n message\n } = config;\n let {\n parent,\n context\n } = options;\n\n function resolve(item) {\n return Ref.isRef(item) ? item.getValue(value, parent, context) : item;\n }\n\n function createError(overrides = {}) {\n const nextParams = mapValues(_extends({\n value,\n originalValue,\n label,\n path: overrides.path || path\n }, params, overrides.params), resolve);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name);\n error.params = nextParams;\n return error;\n }\n\n let ctx = _extends({\n path,\n parent,\n type: name,\n createError,\n resolve,\n options,\n originalValue\n }, rest);\n\n if (!sync) {\n try {\n Promise.resolve(test.call(ctx, value, ctx)).then(validOrError => {\n if (ValidationError.isError(validOrError)) cb(validOrError);else if (!validOrError) cb(createError());else cb(null, validOrError);\n }).catch(cb);\n } catch (err) {\n cb(err);\n }\n\n return;\n }\n\n let result;\n\n try {\n var _ref2;\n\n result = test.call(ctx, value, ctx);\n\n if (typeof ((_ref2 = result) == null ? void 0 : _ref2.then) === 'function') {\n throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n }\n } catch (err) {\n cb(err);\n return;\n }\n\n if (ValidationError.isError(result)) cb(result);else if (!result) cb(createError());else cb(null, result);\n }\n\n validate.OPTIONS = config;\n return validate;\n}","import { forEach } from 'property-expr';\n\nlet trim = part => part.substr(0, part.length - 1).substr(1);\n\nexport function getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug; // root path: ''\n\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? trim(_part) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n\n if (schema.innerType) {\n let idx = isArray ? parseInt(part, 10) : 0;\n\n if (value && idx >= value.length) {\n throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n }\n\n parent = value;\n value = value && value[idx];\n schema = schema.innerType;\n } // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n\n\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema._type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\n\nconst reach = (obj, path, value, context) => getIn(obj, path, value, context).schema;\n\nexport default reach;","import Reference from '../Reference';\nexport default class ReferenceSet {\n constructor() {\n this.list = void 0;\n this.refs = void 0;\n this.list = new Set();\n this.refs = new Map();\n }\n\n get size() {\n return this.list.size + this.refs.size;\n }\n\n describe() {\n const description = [];\n\n for (const item of this.list) description.push(item);\n\n for (const [, ref] of this.refs) description.push(ref.describe());\n\n return description;\n }\n\n toArray() {\n return Array.from(this.list).concat(Array.from(this.refs.values()));\n }\n\n resolveAll(resolve) {\n return this.toArray().reduce((acc, e) => acc.concat(Reference.isRef(e) ? resolve(e) : e), []);\n }\n\n add(value) {\n Reference.isRef(value) ? this.refs.set(value.key, value) : this.list.add(value);\n }\n\n delete(value) {\n Reference.isRef(value) ? this.refs.delete(value.key) : this.list.delete(value);\n }\n\n clone() {\n const next = new ReferenceSet();\n next.list = new Set(this.list);\n next.refs = new Map(this.refs);\n return next;\n }\n\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.list.forEach(value => next.add(value));\n newItems.refs.forEach(value => next.add(value));\n removeItems.list.forEach(value => next.delete(value));\n removeItems.refs.forEach(value => next.delete(value));\n return next;\n }\n\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n// @ts-ignore\nimport cloneDeep from 'nanoclone';\nimport { mixed as locale } from './locale';\nimport Condition from './Condition';\nimport runTests from './util/runTests';\nimport createValidation from './util/createValidation';\nimport printValue from './util/printValue';\nimport Ref from './Reference';\nimport { getIn } from './util/reach';\nimport ValidationError from './ValidationError';\nimport ReferenceSet from './util/ReferenceSet';\nimport toArray from './util/toArray'; // const UNSET = 'unset' as const;\n\nexport default class BaseSchema {\n constructor(options) {\n this.deps = [];\n this.tests = void 0;\n this.transforms = void 0;\n this.conditions = [];\n this._mutate = void 0;\n this._typeError = void 0;\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this.spec = void 0;\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(locale.notType);\n });\n this.type = (options == null ? void 0 : options.type) || 'mixed';\n this.spec = _extends({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n nullable: false,\n presence: 'optional'\n }, options == null ? void 0 : options.spec);\n } // TODO: remove\n\n\n get _type() {\n return this.type;\n }\n\n _typeCheck(_value) {\n return true;\n }\n\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n } // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n\n\n const next = Object.create(Object.getPrototypeOf(this)); // @ts-expect-error this is readonly\n\n next.type = this.type;\n next._typeError = this._typeError;\n next._whitelistError = this._whitelistError;\n next._blacklistError = this._blacklistError;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.exclusiveTests = _extends({}, this.exclusiveTests); // @ts-expect-error this is readonly\n\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = cloneDeep(_extends({}, this.spec, spec));\n return next;\n }\n\n label(label) {\n let next = this.clone();\n next.spec.label = label;\n return next;\n }\n\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n } // withContext(): BaseSchema<\n // TCast,\n // TContext,\n // TOutput\n // > {\n // return this as any;\n // }\n\n\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n\n concat(schema) {\n if (!schema || schema === this) return this;\n if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n let base = this;\n let combined = schema.clone();\n\n const mergedSpec = _extends({}, base.spec, combined.spec); // if (combined.spec.nullable === UNSET)\n // mergedSpec.nullable = base.spec.nullable;\n // if (combined.spec.presence === UNSET)\n // mergedSpec.presence = base.spec.presence;\n\n\n combined.spec = mergedSpec;\n combined._typeError || (combined._typeError = base._typeError);\n combined._whitelistError || (combined._whitelistError = base._whitelistError);\n combined._blacklistError || (combined._blacklistError = base._blacklistError); // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist); // start with the current tests\n\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests; // manually add the new tests to ensure\n // the deduping logic is consistent\n\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n combined.transforms = [...base.transforms, ...combined.transforms];\n return combined;\n }\n\n isType(v) {\n if (this.spec.nullable && v === null) return true;\n return this._typeCheck(v);\n }\n\n resolve(options) {\n let schema = this;\n\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((schema, condition) => condition.resolve(schema, options), schema);\n schema = schema.resolve(options);\n }\n\n return schema;\n }\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {*=} options.parent\n * @param {*=} options.context\n */\n\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(_extends({\n value\n }, options));\n\n let result = resolvedSchema._cast(value, options);\n\n if (value !== undefined && options.assert !== false && resolvedSchema.isType(result) !== true) {\n let formattedValue = printValue(value);\n let formattedResult = printValue(result);\n throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema._type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n }\n\n return result;\n }\n\n _cast(rawValue, _options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((value, fn) => fn.call(this, value, rawValue, this), rawValue);\n\n if (value === undefined) {\n value = this.getDefault();\n }\n\n return value;\n }\n\n _validate(_value, options = {}, cb) {\n let {\n sync,\n path,\n from = [],\n originalValue = _value,\n strict = this.spec.strict,\n abortEarly = this.spec.abortEarly\n } = options;\n let value = _value;\n\n if (!strict) {\n // this._validating = true;\n value = this._cast(value, _extends({\n assert: false\n }, options)); // this._validating = false;\n } // value is cast, we can check if it meets type requirements\n\n\n let args = {\n value,\n path,\n options,\n originalValue,\n schema: this,\n label: this.spec.label,\n sync,\n from\n };\n let initialTests = [];\n if (this._typeError) initialTests.push(this._typeError);\n let finalTests = [];\n if (this._whitelistError) finalTests.push(this._whitelistError);\n if (this._blacklistError) finalTests.push(this._blacklistError);\n runTests({\n args,\n value,\n path,\n sync,\n tests: initialTests,\n endEarly: abortEarly\n }, err => {\n if (err) return void cb(err, value);\n runTests({\n tests: this.tests.concat(finalTests),\n args,\n path,\n sync,\n value,\n endEarly: abortEarly\n }, cb);\n });\n }\n\n validate(value, options, maybeCb) {\n let schema = this.resolve(_extends({}, options, {\n value\n })); // callback case is for nested validations\n\n return typeof maybeCb === 'function' ? schema._validate(value, options, maybeCb) : new Promise((resolve, reject) => schema._validate(value, options, (err, value) => {\n if (err) reject(err);else resolve(value);\n }));\n }\n\n validateSync(value, options) {\n let schema = this.resolve(_extends({}, options, {\n value\n }));\n let result;\n\n schema._validate(value, _extends({}, options, {\n sync: true\n }), (err, value) => {\n if (err) throw err;\n result = value;\n });\n\n return result;\n }\n\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n\n _getDefault() {\n let defaultValue = this.spec.default;\n\n if (defaultValue == null) {\n return defaultValue;\n }\n\n return typeof defaultValue === 'function' ? defaultValue.call(this) : cloneDeep(defaultValue);\n }\n\n getDefault(options) {\n let schema = this.resolve(options || {});\n return schema._getDefault();\n }\n\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n\n let next = this.clone({\n default: def\n });\n return next;\n }\n\n strict(isStrict = true) {\n let next = this.clone();\n next.spec.strict = isStrict;\n return next;\n }\n\n _isPresent(value) {\n return value != null;\n }\n\n defined(message = locale.defined) {\n return this.test({\n message,\n name: 'defined',\n exclusive: true,\n\n test(value) {\n return value !== undefined;\n }\n\n });\n }\n\n required(message = locale.required) {\n return this.clone({\n presence: 'required'\n }).withMutation(s => s.test({\n message,\n name: 'required',\n exclusive: true,\n\n test(value) {\n return this.schema._isPresent(value);\n }\n\n }));\n }\n\n notRequired() {\n let next = this.clone({\n presence: 'optional'\n });\n next.tests = next.tests.filter(test => test.OPTIONS.name !== 'required');\n return next;\n }\n\n nullable(isNullable = true) {\n let next = this.clone({\n nullable: isNullable !== false\n });\n return next;\n }\n\n transform(fn) {\n let next = this.clone();\n next.transforms.push(fn);\n return next;\n }\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n\n\n test(...args) {\n let opts;\n\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n\n if (opts.message === undefined) opts.message = locale.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(fn => {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n\n return true;\n });\n next.tests.push(validate);\n return next;\n }\n\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n\n let next = this.clone();\n let deps = toArray(keys).map(key => new Ref(key));\n deps.forEach(dep => {\n // @ts-ignore\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(new Condition(deps, options));\n return next;\n }\n\n typeError(message) {\n let next = this.clone();\n next._typeError = createValidation({\n message,\n name: 'typeError',\n\n test(value) {\n if (value !== undefined && !this.schema.isType(value)) return this.createError({\n params: {\n type: this.schema._type\n }\n });\n return true;\n }\n\n });\n return next;\n }\n\n oneOf(enums, message = locale.oneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n\n next._blacklist.delete(val);\n });\n next._whitelistError = createValidation({\n message,\n name: 'oneOf',\n\n test(value) {\n if (value === undefined) return true;\n let valids = this.schema._whitelist;\n let resolved = valids.resolveAll(this.resolve);\n return resolved.includes(value) ? true : this.createError({\n params: {\n values: valids.toArray().join(', '),\n resolved\n }\n });\n }\n\n });\n return next;\n }\n\n notOneOf(enums, message = locale.notOneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n\n next._whitelist.delete(val);\n });\n next._blacklistError = createValidation({\n message,\n name: 'notOneOf',\n\n test(value) {\n let invalids = this.schema._blacklist;\n let resolved = invalids.resolveAll(this.resolve);\n if (resolved.includes(value)) return this.createError({\n params: {\n values: invalids.toArray().join(', '),\n resolved\n }\n });\n return true;\n }\n\n });\n return next;\n }\n\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n describe() {\n const next = this.clone();\n const {\n label,\n meta\n } = next.spec;\n const description = {\n meta,\n label,\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.map(fn => ({\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n })).filter((n, idx, list) => list.findIndex(c => c.name === n.name) === idx)\n };\n return description;\n }\n\n} // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n// @ts-expect-error\nBaseSchema.prototype.__isYupSchema__ = true;\n\nfor (const method of ['validate', 'validateSync']) BaseSchema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], _extends({}, options, {\n parent,\n path\n }));\n};\n\nfor (const alias of ['equals', 'is']) BaseSchema.prototype[alias] = BaseSchema.prototype.oneOf;\n\nfor (const alias of ['not', 'nope']) BaseSchema.prototype[alias] = BaseSchema.prototype.notOneOf;\n\nBaseSchema.prototype.optional = BaseSchema.prototype.notRequired;","import BaseSchema from './schema';\nconst Mixed = BaseSchema;\nexport default Mixed;\nexport function create() {\n return new Mixed();\n} // XXX: this is using the Base schema so that `addMethod(mixed)` works as a base class\n\ncreate.prototype = Mixed.prototype;","const isAbsent = value => value == null;\n\nexport default isAbsent;","import BaseSchema from './schema';\nimport { boolean as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nexport function create() {\n return new BooleanSchema();\n}\nexport default class BooleanSchema extends BaseSchema {\n constructor() {\n super({\n type: 'boolean'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (!this.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n\n return value;\n });\n });\n }\n\n _typeCheck(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n\n isTrue(message = locale.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n\n test(value) {\n return isAbsent(value) || value === true;\n }\n\n });\n }\n\n isFalse(message = locale.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n\n test(value) {\n return isAbsent(value) || value === false;\n }\n\n });\n }\n\n}\ncreate.prototype = BooleanSchema.prototype;","import { string as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema'; // eslint-disable-next-line\n\nlet rEmail = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i; // eslint-disable-next-line\n\nlet rUrl = /^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i; // eslint-disable-next-line\n\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\n\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\n\nlet objStringTag = {}.toString();\nexport function create() {\n return new StringSchema();\n}\nexport default class StringSchema extends BaseSchema {\n constructor() {\n super({\n type: 'string'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (this.isType(value)) return value;\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n\n _typeCheck(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n\n _isPresent(value) {\n return super._isPresent(value) && !!value.length;\n }\n\n length(length, message = locale.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n\n test(value) {\n return isAbsent(value) || value.length === this.resolve(length);\n }\n\n });\n }\n\n min(min, message = locale.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value.length >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value.length <= this.resolve(max);\n }\n\n });\n }\n\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n\n return this.test({\n name: name || 'matches',\n message: message || locale.matches,\n params: {\n regex\n },\n test: value => isAbsent(value) || value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n\n email(message = locale.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n\n url(message = locale.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n\n uuid(message = locale.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n } //-- transforms --\n\n\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n\n trim(message = locale.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n\n lowercase(message = locale.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n\n uppercase(message = locale.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n\n}\ncreate.prototype = StringSchema.prototype; //\n// String Interfaces\n//","import { number as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema';\n\nlet isNaN = value => value != +value;\n\nexport function create() {\n return new NumberSchema();\n}\nexport default class NumberSchema extends BaseSchema {\n constructor() {\n super({\n type: 'number'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n let parsed = value;\n\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN; // don't use parseFloat to avoid positives on alpha-numeric strings\n\n parsed = +parsed;\n }\n\n if (this.isType(parsed)) return parsed;\n return parseFloat(parsed);\n });\n });\n }\n\n _typeCheck(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN(value);\n }\n\n min(min, message = locale.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value <= this.resolve(max);\n }\n\n });\n }\n\n lessThan(less, message = locale.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n\n test(value) {\n return isAbsent(value) || value < this.resolve(less);\n }\n\n });\n }\n\n moreThan(more, message = locale.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n\n test(value) {\n return isAbsent(value) || value > this.resolve(more);\n }\n\n });\n }\n\n positive(msg = locale.positive) {\n return this.moreThan(0, msg);\n }\n\n negative(msg = locale.negative) {\n return this.lessThan(0, msg);\n }\n\n integer(message = locale.integer) {\n return this.test({\n name: 'integer',\n message,\n test: val => isAbsent(val) || Number.isInteger(val)\n });\n }\n\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n\n round(method) {\n var _method;\n\n let avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round'; // this exists for symemtry with the new Math.trunc\n\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n }\n\n}\ncreate.prototype = NumberSchema.prototype; //\n// Number Interfaces\n//","/* eslint-disable */\n\n/**\n *\n * Date.parse with progressive enhancement for ISO 8601 \n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover \n * Released under MIT license.\n */\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm\nvar isoReg = /^(\\d{4}|[+\\-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nexport default function parseIsoDate(date) {\n var numericKeys = [1, 4, 5, 6, 7, 10, 11],\n minutesOffset = 0,\n timestamp,\n struct;\n\n if (struct = isoReg.exec(date)) {\n // avoid NaN timestamps caused by “undefined” values being passed to Date.UTC\n for (var i = 0, k; k = numericKeys[i]; ++i) struct[k] = +struct[k] || 0; // allow undefined days and months\n\n\n struct[2] = (+struct[2] || 1) - 1;\n struct[3] = +struct[3] || 1; // allow arbitrary sub-second precision beyond milliseconds\n\n struct[7] = struct[7] ? String(struct[7]).substr(0, 3) : 0; // timestamps without timezone identifiers should be considered local time\n\n if ((struct[8] === undefined || struct[8] === '') && (struct[9] === undefined || struct[9] === '')) timestamp = +new Date(struct[1], struct[2], struct[3], struct[4], struct[5], struct[6], struct[7]);else {\n if (struct[8] !== 'Z' && struct[9] !== undefined) {\n minutesOffset = struct[10] * 60 + struct[11];\n if (struct[9] === '+') minutesOffset = 0 - minutesOffset;\n }\n\n timestamp = Date.UTC(struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7]);\n }\n } else timestamp = Date.parse ? Date.parse(date) : NaN;\n\n return timestamp;\n}","// @ts-ignore\nimport isoParse from './util/isodate';\nimport { date as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport Ref from './Reference';\nimport BaseSchema from './schema';\nlet invalidDate = new Date('');\n\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\n\nexport function create() {\n return new DateSchema();\n}\nexport default class DateSchema extends BaseSchema {\n constructor() {\n super({\n type: 'date'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (this.isType(value)) return value;\n value = isoParse(value); // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n\n return !isNaN(value) ? new Date(value) : invalidDate;\n });\n });\n }\n\n _typeCheck(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n\n prepareParam(ref, name) {\n let param;\n\n if (!Ref.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n\n return param;\n }\n\n min(min, message = locale.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value >= this.resolve(limit);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n let limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value <= this.resolve(limit);\n }\n\n });\n }\n\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate.prototype = DateSchema.prototype;\ncreate.INVALID_DATE = invalidDate;","function findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n\n if (((_err$path = err.path) == null ? void 0 : _err$path.indexOf(key)) !== -1) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\n\nexport default function sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport has from 'lodash/has';\nimport snakeCase from 'lodash/snakeCase';\nimport camelCase from 'lodash/camelCase';\nimport mapKeys from 'lodash/mapKeys';\nimport mapValues from 'lodash/mapValues';\nimport { getter } from 'property-expr';\nimport { object as locale } from './locale';\nimport sortFields from './util/sortFields';\nimport sortByKeyOrder from './util/sortByKeyOrder';\nimport runTests from './util/runTests';\nimport ValidationError from './ValidationError';\nimport BaseSchema from './schema';\n\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\n\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\n\nconst defaultSort = sortByKeyOrder([]);\nexport default class ObjectSchema extends BaseSchema {\n constructor(spec) {\n super({\n type: 'object'\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n this.transform(function coerce(value) {\n if (typeof value === 'string') {\n try {\n value = JSON.parse(value);\n } catch (err) {\n value = null;\n }\n }\n\n if (this.isType(value)) return value;\n return null;\n });\n\n if (spec) {\n this.shape(spec);\n }\n });\n }\n\n _typeCheck(value) {\n return isObject(value) || typeof value === 'function';\n }\n\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n\n let value = super._cast(_value, options); //should ignore nulls here\n\n\n if (value === undefined) return this.getDefault();\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n\n let props = this._nodes.concat(Object.keys(value).filter(v => this._nodes.indexOf(v) === -1));\n\n let intermediateValue = {}; // is filled during the transform below\n\n let innerOptions = _extends({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n\n let isChanged = false;\n\n for (const prop of props) {\n let field = fields[prop];\n let exists = has(value, prop);\n\n if (field) {\n let fieldValue;\n let inputValue = value[prop]; // safe to mutate since this is fired in sequence\n\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop; // innerOptions.value = value[prop];\n\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = 'spec' in field ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n\n if (fieldSpec == null ? void 0 : fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n\n fieldValue = !options.__validating || !strict ? // TODO: use _cast, this is double resolving\n field.cast(value[prop], innerOptions) : value[prop];\n\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = value[prop];\n }\n\n if (intermediateValue[prop] !== value[prop]) {\n isChanged = true;\n }\n }\n\n return isChanged ? intermediateValue : value;\n }\n\n _validate(_value, opts = {}, callback) {\n let errors = [];\n let {\n sync,\n from = [],\n originalValue = _value,\n abortEarly = this.spec.abortEarly,\n recursive = this.spec.recursive\n } = opts;\n from = [{\n schema: this,\n value: originalValue\n }, ...from]; // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n\n opts.__validating = true;\n opts.originalValue = originalValue;\n opts.from = from;\n\n super._validate(_value, opts, (err, value) => {\n if (err) {\n if (!ValidationError.isError(err) || abortEarly) {\n return void callback(err, value);\n }\n\n errors.push(err);\n }\n\n if (!recursive || !isObject(value)) {\n callback(errors[0] || null, value);\n return;\n }\n\n originalValue = originalValue || value;\n\n let tests = this._nodes.map(key => (_, cb) => {\n let path = key.indexOf('.') === -1 ? (opts.path ? `${opts.path}.` : '') + key : `${opts.path || ''}[\"${key}\"]`;\n let field = this.fields[key];\n\n if (field && 'validate' in field) {\n field.validate(value[key], _extends({}, opts, {\n // @ts-ignore\n path,\n from,\n // inner fields are always strict:\n // 1. this isn't strict so the casting will also have cast inner values\n // 2. this is strict in which case the nested values weren't cast either\n strict: true,\n parent: value,\n originalValue: originalValue[key]\n }), cb);\n return;\n }\n\n cb(null);\n });\n\n runTests({\n sync,\n tests,\n value,\n errors,\n endEarly: abortEarly,\n sort: this._sortErrors,\n path: opts.path\n }, callback);\n });\n }\n\n clone(spec) {\n const next = super.clone(spec);\n next.fields = _extends({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n\n if (target === undefined) {\n nextFields[field] = schemaOrRef;\n } else if (target instanceof BaseSchema && schemaOrRef instanceof BaseSchema) {\n nextFields[field] = schemaOrRef.concat(target);\n }\n }\n\n return next.withMutation(() => next.shape(nextFields, this._excludedEdges));\n }\n\n getDefaultFromShape() {\n let dft = {};\n\n this._nodes.forEach(key => {\n const field = this.fields[key];\n dft[key] = 'default' in field ? field.getDefault() : undefined;\n });\n\n return dft;\n }\n\n _getDefault() {\n if ('default' in this.spec) {\n return super._getDefault();\n } // if there is no default set invent one\n\n\n if (!this._nodes.length) {\n return undefined;\n }\n\n return this.getDefaultFromShape();\n }\n\n shape(additions, excludes = []) {\n let next = this.clone();\n let fields = Object.assign(next.fields, additions);\n next.fields = fields;\n next._sortErrors = sortByKeyOrder(Object.keys(fields));\n\n if (excludes.length) {\n // this is a convenience for when users only supply a single pair\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n next._excludedEdges = [...next._excludedEdges, ...excludes];\n }\n\n next._nodes = sortFields(fields, next._excludedEdges);\n return next;\n }\n\n pick(keys) {\n const picked = {};\n\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n\n return this.clone().withMutation(next => {\n next.fields = {};\n return next.shape(picked);\n });\n }\n\n omit(keys) {\n const next = this.clone();\n const fields = next.fields;\n next.fields = {};\n\n for (const key of keys) {\n delete fields[key];\n }\n\n return next.withMutation(() => next.shape(fields));\n }\n\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (obj == null) return obj;\n let newObj = obj;\n\n if (has(obj, from)) {\n newObj = _extends({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n\n return newObj;\n });\n }\n\n noUnknown(noAllow = true, message = locale.noUnknown) {\n if (typeof noAllow === 'string') {\n message = noAllow;\n noAllow = true;\n }\n\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n\n unknown(allow = true, message = locale.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n\n transformKeys(fn) {\n return this.transform(obj => obj && mapKeys(obj, (_, key) => fn(key)));\n }\n\n camelCase() {\n return this.transformKeys(camelCase);\n }\n\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n\n describe() {\n let base = super.describe();\n base.fields = mapValues(this.fields, value => value.describe());\n return base;\n }\n\n}\nexport function create(spec) {\n return new ObjectSchema(spec);\n}\ncreate.prototype = ObjectSchema.prototype;","import has from 'lodash/has'; // @ts-expect-error\n\nimport toposort from 'toposort';\nimport { split } from 'property-expr';\nimport Ref from '../Reference';\nimport isSchema from './isSchema';\nexport default function sortFields(fields, excludedEdges = []) {\n let edges = [];\n let nodes = new Set();\n let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n\n function addNode(depPath, key) {\n let node = split(depPath)[0];\n nodes.add(node);\n if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n }\n\n for (const key in fields) if (has(fields, key)) {\n let value = fields[key];\n nodes.add(key);\n if (Ref.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n\n return toposort.array(Array.from(nodes), edges).reverse();\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport isAbsent from './util/isAbsent';\nimport isSchema from './util/isSchema';\nimport printValue from './util/printValue';\nimport { array as locale } from './locale';\nimport runTests from './util/runTests';\nimport ValidationError from './ValidationError';\nimport BaseSchema from './schema';\nexport function create(type) {\n return new ArraySchema(type);\n}\nexport default class ArraySchema extends BaseSchema {\n constructor(type) {\n super({\n type: 'array'\n }); // `undefined` specifically means uninitialized, as opposed to\n // \"no subtype\"\n\n this.innerType = void 0;\n this.innerType = type;\n this.withMutation(() => {\n this.transform(function (values) {\n if (typeof values === 'string') try {\n values = JSON.parse(values);\n } catch (err) {\n values = null;\n }\n return this.isType(values) ? values : null;\n });\n });\n }\n\n _typeCheck(v) {\n return Array.isArray(v);\n }\n\n get _subType() {\n return this.innerType;\n }\n\n _cast(_value, _opts) {\n const value = super._cast(_value, _opts); //should ignore nulls here\n\n\n if (!this._typeCheck(value) || !this.innerType) return value;\n let isChanged = false;\n const castArray = value.map((v, idx) => {\n const castElement = this.innerType.cast(v, _extends({}, _opts, {\n path: `${_opts.path || ''}[${idx}]`\n }));\n\n if (castElement !== v) {\n isChanged = true;\n }\n\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n\n _validate(_value, options = {}, callback) {\n var _options$abortEarly, _options$recursive;\n\n let errors = [];\n let sync = options.sync;\n let path = options.path;\n let innerType = this.innerType;\n let endEarly = (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly;\n let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;\n let originalValue = options.originalValue != null ? options.originalValue : _value;\n\n super._validate(_value, options, (err, value) => {\n if (err) {\n if (!ValidationError.isError(err) || endEarly) {\n return void callback(err, value);\n }\n\n errors.push(err);\n }\n\n if (!recursive || !innerType || !this._typeCheck(value)) {\n callback(errors[0] || null, value);\n return;\n }\n\n originalValue = originalValue || value; // #950 Ensure that sparse array empty slots are validated\n\n let tests = new Array(value.length);\n\n for (let idx = 0; idx < value.length; idx++) {\n let item = value[idx];\n let path = `${options.path || ''}[${idx}]`; // object._validate note for isStrict explanation\n\n let innerOptions = _extends({}, options, {\n path,\n strict: true,\n parent: value,\n index: idx,\n originalValue: originalValue[idx]\n });\n\n tests[idx] = (_, cb) => innerType.validate(item, innerOptions, cb);\n }\n\n runTests({\n sync,\n path,\n value,\n errors,\n endEarly,\n tests\n }, callback);\n });\n }\n\n clone(spec) {\n const next = super.clone(spec);\n next.innerType = this.innerType;\n return next;\n }\n\n concat(schema) {\n let next = super.concat(schema);\n next.innerType = this.innerType;\n if (schema.innerType) next.innerType = next.innerType ? // @ts-expect-error Lazy doesn't have concat()\n next.innerType.concat(schema.innerType) : schema.innerType;\n return next;\n }\n\n of(schema) {\n // FIXME: this should return a new instance of array without the default to be\n let next = this.clone();\n if (!isSchema(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + printValue(schema)); // FIXME(ts):\n\n next.innerType = schema;\n return next;\n }\n\n length(length, message = locale.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n\n test(value) {\n return isAbsent(value) || value.length === this.resolve(length);\n }\n\n });\n }\n\n min(min, message) {\n message = message || locale.min;\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n // FIXME(ts): Array\n test(value) {\n return isAbsent(value) || value.length >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message) {\n message = message || locale.max;\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value.length <= this.resolve(max);\n }\n\n });\n }\n\n ensure() {\n return this.default(() => []).transform((val, original) => {\n // We don't want to return `null` for nullable schema\n if (this._typeCheck(val)) return val;\n return original == null ? [] : [].concat(original);\n });\n }\n\n compact(rejector) {\n let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);\n return this.transform(values => values != null ? values.filter(reject) : values);\n }\n\n describe() {\n let base = super.describe();\n if (this.innerType) base.innerType = this.innerType.describe();\n return base;\n }\n\n nullable(isNullable = true) {\n return super.nullable(isNullable);\n }\n\n defined() {\n return super.defined();\n }\n\n required(msg) {\n return super.required(msg);\n }\n\n}\ncreate.prototype = ArraySchema.prototype; //\n// Interfaces\n//","import * as yup from \"yup\";\nexport const LoginValidation = yup.object().shape({\n password: yup\n .string()\n .required(\"Password is required\")\n .min(8, \"Enter a valid password\")\n .matches(/[0-9]/, \"Enter a valid password\")\n .matches(/[a-z]/, \"Enter a valid password\")\n .matches(/[A-Z]/, \"Enter a valid password\")\n .matches(/[!-\\/:-@[-`{-~]/, \"Enter a valid password\"),\n email: yup\n .string()\n .required(\"Email is Required\")\n .email(\"Please enter a valid email\")\n .matches(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/, \"Please enter a valid email\")\n});\n\nexport const MobileNumberLogin = yup\n .object()\n .shape({\n mobile: yup\n .string()\n .required(\"Mobile number is required\")\n .min(10, \"Mobile number is not valid\")\n .max(10, \"Mobile number is not valid\")\n .matches(/[6-9][0-9]{9}/, \"Mobile number is not valid\")\n })\n .when((values, schema) => {\n if (values?.isOtpVisible) {\n return schema.shape({\n mobileOTP: yup.string().required(\"Otp is required\").min(6, \"Otp is not valid\").max(6, \"Otp is not valid\")\n });\n }\n });\nexport const InfoFormValidation = yup.object().shape({\n firstName: yup\n .string()\n .required(\"This field is required\")\n .test(\"spaces\", \"Full-name is required\", (val) => !!val?.trim()),\n username: yup\n .string()\n .required(\"This field is required\")\n .test(\"spaces\", \"Username is required\", (val) => !!val?.trim())\n .matches(\n /^[a-z0-9_]{3,20}$/,\n \"Username must be between 3 and 20 characters and can only contain lowercase letters, digits, and underscores\"\n )\n});\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst stringToByteArray = function (str: string): number[] {\n // TODO(user): Use native implementations if/when available\n const out: number[] = [];\n let p = 0;\n for (let i = 0; i < str.length; i++) {\n let c = str.charCodeAt(i);\n if (c < 128) {\n out[p++] = c;\n } else if (c < 2048) {\n out[p++] = (c >> 6) | 192;\n out[p++] = (c & 63) | 128;\n } else if (\n (c & 0xfc00) === 0xd800 &&\n i + 1 < str.length &&\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00\n ) {\n // Surrogate Pair\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\n out[p++] = (c >> 18) | 240;\n out[p++] = ((c >> 12) & 63) | 128;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n } else {\n out[p++] = (c >> 12) | 224;\n out[p++] = ((c >> 6) & 63) | 128;\n out[p++] = (c & 63) | 128;\n }\n }\n return out;\n};\n\n/**\n * Turns an array of numbers into the string given by the concatenation of the\n * characters to which the numbers correspond.\n * @param bytes Array of numbers representing characters.\n * @return Stringification of the array.\n */\nconst byteArrayToString = function (bytes: number[]): string {\n // TODO(user): Use native implementations if/when available\n const out: string[] = [];\n let pos = 0,\n c = 0;\n while (pos < bytes.length) {\n const c1 = bytes[pos++];\n if (c1 < 128) {\n out[c++] = String.fromCharCode(c1);\n } else if (c1 > 191 && c1 < 224) {\n const c2 = bytes[pos++];\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\n } else if (c1 > 239 && c1 < 365) {\n // Surrogate Pair\n const c2 = bytes[pos++];\n const c3 = bytes[pos++];\n const c4 = bytes[pos++];\n const u =\n (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\n 0x10000;\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\n } else {\n const c2 = bytes[pos++];\n const c3 = bytes[pos++];\n out[c++] = String.fromCharCode(\n ((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)\n );\n }\n }\n return out.join('');\n};\n\ninterface Base64 {\n byteToCharMap_: { [key: number]: string } | null;\n charToByteMap_: { [key: string]: number } | null;\n byteToCharMapWebSafe_: { [key: number]: string } | null;\n charToByteMapWebSafe_: { [key: string]: number } | null;\n ENCODED_VALS_BASE: string;\n readonly ENCODED_VALS: string;\n readonly ENCODED_VALS_WEBSAFE: string;\n HAS_NATIVE_SUPPORT: boolean;\n encodeByteArray(input: number[] | Uint8Array, webSafe?: boolean): string;\n encodeString(input: string, webSafe?: boolean): string;\n decodeString(input: string, webSafe: boolean): string;\n decodeStringToByteArray(input: string, webSafe: boolean): number[];\n init_(): void;\n}\n\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\n// Static lookup maps, lazily populated by init_()\nexport const base64: Base64 = {\n /**\n * Maps bytes to characters.\n */\n byteToCharMap_: null,\n\n /**\n * Maps characters to bytes.\n */\n charToByteMap_: null,\n\n /**\n * Maps bytes to websafe characters.\n * @private\n */\n byteToCharMapWebSafe_: null,\n\n /**\n * Maps websafe characters to bytes.\n * @private\n */\n charToByteMapWebSafe_: null,\n\n /**\n * Our default alphabet, shared between\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\n */\n ENCODED_VALS_BASE:\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\n\n /**\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\n */\n get ENCODED_VALS() {\n return this.ENCODED_VALS_BASE + '+/=';\n },\n\n /**\n * Our websafe alphabet.\n */\n get ENCODED_VALS_WEBSAFE() {\n return this.ENCODED_VALS_BASE + '-_.';\n },\n\n /**\n * Whether this browser supports the atob and btoa functions. This extension\n * started at Mozilla but is now implemented by many browsers. We use the\n * ASSUME_* variables to avoid pulling in the full useragent detection library\n * but still allowing the standard per-browser compilations.\n *\n */\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\n\n /**\n * Base64-encode an array of bytes.\n *\n * @param input An array of bytes (numbers with\n * value in [0, 255]) to encode.\n * @param webSafe Boolean indicating we should use the\n * alternative alphabet.\n * @return The base64 encoded string.\n */\n encodeByteArray(input: number[] | Uint8Array, webSafe?: boolean): string {\n if (!Array.isArray(input)) {\n throw Error('encodeByteArray takes an array as a parameter');\n }\n\n this.init_();\n\n const byteToCharMap = webSafe\n ? this.byteToCharMapWebSafe_!\n : this.byteToCharMap_!;\n\n const output = [];\n\n for (let i = 0; i < input.length; i += 3) {\n const byte1 = input[i];\n const haveByte2 = i + 1 < input.length;\n const byte2 = haveByte2 ? input[i + 1] : 0;\n const haveByte3 = i + 2 < input.length;\n const byte3 = haveByte3 ? input[i + 2] : 0;\n\n const outByte1 = byte1 >> 2;\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\n let outByte4 = byte3 & 0x3f;\n\n if (!haveByte3) {\n outByte4 = 64;\n\n if (!haveByte2) {\n outByte3 = 64;\n }\n }\n\n output.push(\n byteToCharMap[outByte1],\n byteToCharMap[outByte2],\n byteToCharMap[outByte3],\n byteToCharMap[outByte4]\n );\n }\n\n return output.join('');\n },\n\n /**\n * Base64-encode a string.\n *\n * @param input A string to encode.\n * @param webSafe If true, we should use the\n * alternative alphabet.\n * @return The base64 encoded string.\n */\n encodeString(input: string, webSafe?: boolean): string {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return btoa(input);\n }\n return this.encodeByteArray(stringToByteArray(input), webSafe);\n },\n\n /**\n * Base64-decode a string.\n *\n * @param input to decode.\n * @param webSafe True if we should use the\n * alternative alphabet.\n * @return string representing the decoded value.\n */\n decodeString(input: string, webSafe: boolean): string {\n // Shortcut for Mozilla browsers that implement\n // a native base64 encoder in the form of \"btoa/atob\"\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\n return atob(input);\n }\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\n },\n\n /**\n * Base64-decode a string.\n *\n * In base-64 decoding, groups of four characters are converted into three\n * bytes. If the encoder did not apply padding, the input length may not\n * be a multiple of 4.\n *\n * In this case, the last group will have fewer than 4 characters, and\n * padding will be inferred. If the group has one or two characters, it decodes\n * to one byte. If the group has three characters, it decodes to two bytes.\n *\n * @param input Input to decode.\n * @param webSafe True if we should use the web-safe alphabet.\n * @return bytes representing the decoded value.\n */\n decodeStringToByteArray(input: string, webSafe: boolean): number[] {\n this.init_();\n\n const charToByteMap = webSafe\n ? this.charToByteMapWebSafe_!\n : this.charToByteMap_!;\n\n const output: number[] = [];\n\n for (let i = 0; i < input.length; ) {\n const byte1 = charToByteMap[input.charAt(i++)];\n\n const haveByte2 = i < input.length;\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\n ++i;\n\n const haveByte3 = i < input.length;\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n\n const haveByte4 = i < input.length;\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\n ++i;\n\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\n throw new DecodeBase64StringError();\n }\n\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\n output.push(outByte1);\n\n if (byte3 !== 64) {\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\n output.push(outByte2);\n\n if (byte4 !== 64) {\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\n output.push(outByte3);\n }\n }\n }\n\n return output;\n },\n\n /**\n * Lazy static initialization function. Called before\n * accessing any of the static map variables.\n * @private\n */\n init_() {\n if (!this.byteToCharMap_) {\n this.byteToCharMap_ = {};\n this.charToByteMap_ = {};\n this.byteToCharMapWebSafe_ = {};\n this.charToByteMapWebSafe_ = {};\n\n // We want quick mappings back and forth, so we precompute two maps.\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\n\n // Be forgiving when decoding and correctly decode both encodings.\n if (i >= this.ENCODED_VALS_BASE.length) {\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\n }\n }\n }\n }\n};\n\n/**\n * An error encountered while decoding base64 string.\n */\nexport class DecodeBase64StringError extends Error {\n readonly name = 'DecodeBase64StringError';\n}\n\n/**\n * URL-safe base64 encoding\n */\nexport const base64Encode = function (str: string): string {\n const utf8Bytes = stringToByteArray(str);\n return base64.encodeByteArray(utf8Bytes, true);\n};\n\n/**\n * URL-safe base64 encoding (without \".\" padding in the end).\n * e.g. Used in JSON Web Token (JWT) parts.\n */\nexport const base64urlEncodeWithoutPadding = function (str: string): string {\n // Use base64url encoding and remove padding in the end (dot characters).\n return base64Encode(str).replace(/\\./g, '');\n};\n\n/**\n * URL-safe base64 decoding\n *\n * NOTE: DO NOT use the global atob() function - it does NOT support the\n * base64Url variant encoding.\n *\n * @param str To be decoded\n * @return Decoded result, if possible\n */\nexport const base64Decode = function (str: string): string | null {\n try {\n return base64.decodeString(str, true);\n } catch (e) {\n console.error('base64Decode failed: ', e);\n }\n return null;\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Do a deep-copy of basic JavaScript Objects or Arrays.\n */\nexport function deepCopy(value: T): T {\n return deepExtend(undefined, value) as T;\n}\n\n/**\n * Copy properties from source to target (recursively allows extension\n * of Objects and Arrays). Scalar values in the target are over-written.\n * If target is undefined, an object of the appropriate type will be created\n * (and returned).\n *\n * We recursively copy all child properties of plain Objects in the source- so\n * that namespace- like dictionaries are merged.\n *\n * Note that the target can be a function, in which case the properties in\n * the source Object are copied onto it as static properties of the Function.\n *\n * Note: we don't merge __proto__ to prevent prototype pollution\n */\nexport function deepExtend(target: unknown, source: unknown): unknown {\n if (!(source instanceof Object)) {\n return source;\n }\n\n switch (source.constructor) {\n case Date:\n // Treat Dates like scalars; if the target date object had any child\n // properties - they will be lost!\n const dateValue = source as Date;\n return new Date(dateValue.getTime());\n\n case Object:\n if (target === undefined) {\n target = {};\n }\n break;\n case Array:\n // Always copy the array source and overwrite the target.\n target = [];\n break;\n\n default:\n // Not a plain Object - treat it as a scalar.\n return source;\n }\n\n for (const prop in source) {\n // use isValidKey to guard against prototype pollution. See https://snyk.io/vuln/SNYK-JS-LODASH-450202\n if (!source.hasOwnProperty(prop) || !isValidKey(prop)) {\n continue;\n }\n (target as Record)[prop] = deepExtend(\n (target as Record)[prop],\n (source as Record)[prop]\n );\n }\n\n return target;\n}\n\nfunction isValidKey(key: string): boolean {\n return key !== '__proto__';\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { base64Decode } from './crypt';\nimport { getGlobal } from './global';\n\n/**\n * Keys for experimental properties on the `FirebaseDefaults` object.\n * @public\n */\nexport type ExperimentalKey = 'authTokenSyncURL' | 'authIdTokenMaxAge';\n\n/**\n * An object that can be injected into the environment as __FIREBASE_DEFAULTS__,\n * either as a property of globalThis, a shell environment variable, or a\n * cookie.\n *\n * This object can be used to automatically configure and initialize\n * a Firebase app as well as any emulators.\n *\n * @public\n */\nexport interface FirebaseDefaults {\n config?: Record;\n emulatorHosts?: Record;\n _authTokenSyncURL?: string;\n _authIdTokenMaxAge?: number;\n /**\n * Override Firebase's runtime environment detection and\n * force the SDK to act as if it were in the specified environment.\n */\n forceEnvironment?: 'browser' | 'node';\n [key: string]: unknown;\n}\n\ndeclare global {\n // Need `var` for this to work.\n // eslint-disable-next-line no-var\n var __FIREBASE_DEFAULTS__: FirebaseDefaults | undefined;\n}\n\nconst getDefaultsFromGlobal = (): FirebaseDefaults | undefined =>\n getGlobal().__FIREBASE_DEFAULTS__;\n\n/**\n * Attempt to read defaults from a JSON string provided to\n * process(.)env(.)__FIREBASE_DEFAULTS__ or a JSON file whose path is in\n * process(.)env(.)__FIREBASE_DEFAULTS_PATH__\n * The dots are in parens because certain compilers (Vite?) cannot\n * handle seeing that variable in comments.\n * See https://github.com/firebase/firebase-js-sdk/issues/6838\n */\nconst getDefaultsFromEnvVariable = (): FirebaseDefaults | undefined => {\n if (typeof process === 'undefined' || typeof process.env === 'undefined') {\n return;\n }\n const defaultsJsonString = process.env.__FIREBASE_DEFAULTS__;\n if (defaultsJsonString) {\n return JSON.parse(defaultsJsonString);\n }\n};\n\nconst getDefaultsFromCookie = (): FirebaseDefaults | undefined => {\n if (typeof document === 'undefined') {\n return;\n }\n let match;\n try {\n match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/);\n } catch (e) {\n // Some environments such as Angular Universal SSR have a\n // `document` object but error on accessing `document.cookie`.\n return;\n }\n const decoded = match && base64Decode(match[1]);\n return decoded && JSON.parse(decoded);\n};\n\n/**\n * Get the __FIREBASE_DEFAULTS__ object. It checks in order:\n * (1) if such an object exists as a property of `globalThis`\n * (2) if such an object was provided on a shell environment variable\n * (3) if such an object exists in a cookie\n * @public\n */\nexport const getDefaults = (): FirebaseDefaults | undefined => {\n try {\n return (\n getDefaultsFromGlobal() ||\n getDefaultsFromEnvVariable() ||\n getDefaultsFromCookie()\n );\n } catch (e) {\n /**\n * Catch-all for being unable to get __FIREBASE_DEFAULTS__ due\n * to any environment case we have not accounted for. Log to\n * info instead of swallowing so we can find these unknown cases\n * and add paths for them if needed.\n */\n console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);\n return;\n }\n};\n\n/**\n * Returns emulator host stored in the __FIREBASE_DEFAULTS__ object\n * for the given product.\n * @returns a URL host formatted like `127.0.0.1:9999` or `[::1]:4000` if available\n * @public\n */\nexport const getDefaultEmulatorHost = (\n productName: string\n): string | undefined => getDefaults()?.emulatorHosts?.[productName];\n\n/**\n * Returns emulator hostname and port stored in the __FIREBASE_DEFAULTS__ object\n * for the given product.\n * @returns a pair of hostname and port like `[\"::1\", 4000]` if available\n * @public\n */\nexport const getDefaultEmulatorHostnameAndPort = (\n productName: string\n): [hostname: string, port: number] | undefined => {\n const host = getDefaultEmulatorHost(productName);\n if (!host) {\n return undefined;\n }\n const separatorIndex = host.lastIndexOf(':'); // Finding the last since IPv6 addr also has colons.\n if (separatorIndex <= 0 || separatorIndex + 1 === host.length) {\n throw new Error(`Invalid host ${host} with no separate hostname and port!`);\n }\n // eslint-disable-next-line no-restricted-globals\n const port = parseInt(host.substring(separatorIndex + 1), 10);\n if (host[0] === '[') {\n // Bracket-quoted `[ipv6addr]:port` => return \"ipv6addr\" (without brackets).\n return [host.substring(1, separatorIndex - 1), port];\n } else {\n return [host.substring(0, separatorIndex), port];\n }\n};\n\n/**\n * Returns Firebase app config stored in the __FIREBASE_DEFAULTS__ object.\n * @public\n */\nexport const getDefaultAppConfig = (): Record | undefined =>\n getDefaults()?.config;\n\n/**\n * Returns an experimental setting on the __FIREBASE_DEFAULTS__ object (properties\n * prefixed by \"_\")\n * @public\n */\nexport const getExperimentalSetting = (\n name: T\n): FirebaseDefaults[`_${T}`] =>\n getDefaults()?.[`_${name}`] as FirebaseDefaults[`_${T}`];\n","/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Polyfill for `globalThis` object.\n * @returns the `globalThis` object for the given environment.\n * @public\n */\nexport function getGlobal(): typeof globalThis {\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('Unable to locate global object.');\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport class Deferred {\n promise: Promise;\n reject: (value?: unknown) => void = () => {};\n resolve: (value?: unknown) => void = () => {};\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve as (value?: unknown) => void;\n this.reject = reject as (value?: unknown) => void;\n });\n }\n\n /**\n * Our API internals are not promiseified and cannot because our callback APIs have subtle expectations around\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\n */\n wrapCallback(\n callback?: (error?: unknown, value?: unknown) => void\n ): (error: unknown, value?: unknown) => void {\n return (error, value?) => {\n if (error) {\n this.reject(error);\n } else {\n this.resolve(value);\n }\n if (typeof callback === 'function') {\n // Attaching noop handler just in case developer wasn't expecting\n // promises\n this.promise.catch(() => {});\n\n // Some of our callbacks don't expect a value and our own tests\n // assert that the parameter length is 1\n if (callback.length === 1) {\n callback(error);\n } else {\n callback(error, value);\n }\n }\n };\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CONSTANTS } from './constants';\nimport { getDefaults } from './defaults';\n\n/**\n * Returns navigator.userAgent string or '' if it's not defined.\n * @return user agent string\n */\nexport function getUA(): string {\n if (\n typeof navigator !== 'undefined' &&\n typeof navigator['userAgent'] === 'string'\n ) {\n return navigator['userAgent'];\n } else {\n return '';\n }\n}\n\n/**\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\n *\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\n * wait for a callback.\n */\nexport function isMobileCordova(): boolean {\n return (\n typeof window !== 'undefined' &&\n // @ts-ignore Setting up an broadly applicable index signature for Window\n // just to deal with this case would probably be a bad idea.\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA())\n );\n}\n\n/**\n * Detect Node.js.\n *\n * @return true if Node.js environment is detected or specified.\n */\n// Node detection logic from: https://github.com/iliakan/detect-node/\nexport function isNode(): boolean {\n const forceEnvironment = getDefaults()?.forceEnvironment;\n if (forceEnvironment === 'node') {\n return true;\n } else if (forceEnvironment === 'browser') {\n return false;\n }\n\n try {\n return (\n Object.prototype.toString.call(global.process) === '[object process]'\n );\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Detect Browser Environment\n */\nexport function isBrowser(): boolean {\n return typeof self === 'object' && self.self === self;\n}\n\n/**\n * Detect browser extensions (Chrome and Firefox at least).\n */\ninterface BrowserRuntime {\n id?: unknown;\n}\ndeclare const chrome: { runtime?: BrowserRuntime };\ndeclare const browser: { runtime?: BrowserRuntime };\nexport function isBrowserExtension(): boolean {\n const runtime =\n typeof chrome === 'object'\n ? chrome.runtime\n : typeof browser === 'object'\n ? browser.runtime\n : undefined;\n return typeof runtime === 'object' && runtime.id !== undefined;\n}\n\n/**\n * Detect React Native.\n *\n * @return true if ReactNative environment is detected.\n */\nexport function isReactNative(): boolean {\n return (\n typeof navigator === 'object' && navigator['product'] === 'ReactNative'\n );\n}\n\n/** Detects Electron apps. */\nexport function isElectron(): boolean {\n return getUA().indexOf('Electron/') >= 0;\n}\n\n/** Detects Internet Explorer. */\nexport function isIE(): boolean {\n const ua = getUA();\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n}\n\n/** Detects Universal Windows Platform apps. */\nexport function isUWP(): boolean {\n return getUA().indexOf('MSAppHost/') >= 0;\n}\n\n/**\n * Detect whether the current SDK build is the Node version.\n *\n * @return true if it's the Node SDK build.\n */\nexport function isNodeSdk(): boolean {\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\n}\n\n/** Returns true if we are running in Safari. */\nexport function isSafari(): boolean {\n return (\n !isNode() &&\n navigator.userAgent.includes('Safari') &&\n !navigator.userAgent.includes('Chrome')\n );\n}\n\n/**\n * This method checks if indexedDB is supported by current browser/service worker context\n * @return true if indexedDB is supported by current browser/service worker context\n */\nexport function isIndexedDBAvailable(): boolean {\n try {\n return typeof indexedDB === 'object';\n } catch (e) {\n return false;\n }\n}\n\n/**\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\n * if errors occur during the database open operation.\n *\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\n * private browsing)\n */\nexport function validateIndexedDBOpenable(): Promise {\n return new Promise((resolve, reject) => {\n try {\n let preExist: boolean = true;\n const DB_CHECK_NAME =\n 'validate-browser-context-for-indexeddb-analytics-module';\n const request = self.indexedDB.open(DB_CHECK_NAME);\n request.onsuccess = () => {\n request.result.close();\n // delete database only when it doesn't pre-exist\n if (!preExist) {\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\n }\n resolve(true);\n };\n request.onupgradeneeded = () => {\n preExist = false;\n };\n\n request.onerror = () => {\n reject(request.error?.message || '');\n };\n } catch (error) {\n reject(error);\n }\n });\n}\n\n/**\n *\n * This method checks whether cookie is enabled within current browser\n * @return true if cookie is enabled within current browser\n */\nexport function areCookiesEnabled(): boolean {\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\n return false;\n }\n return true;\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @fileoverview Standardized Firebase Error.\n *\n * Usage:\n *\n * // Typescript string literals for type-safe codes\n * type Err =\n * 'unknown' |\n * 'object-not-found'\n * ;\n *\n * // Closure enum for type-safe error codes\n * // at-enum {string}\n * var Err = {\n * UNKNOWN: 'unknown',\n * OBJECT_NOT_FOUND: 'object-not-found',\n * }\n *\n * let errors: Map = {\n * 'generic-error': \"Unknown error\",\n * 'file-not-found': \"Could not find file: {$file}\",\n * };\n *\n * // Type-safe function - must pass a valid error code as param.\n * let error = new ErrorFactory('service', 'Service', errors);\n *\n * ...\n * throw error.create(Err.GENERIC);\n * ...\n * throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\n * ...\n * // Service: Could not file file: foo.txt (service/file-not-found).\n *\n * catch (e) {\n * assert(e.message === \"Could not find file: foo.txt.\");\n * if ((e as FirebaseError)?.code === 'service/file-not-found') {\n * console.log(\"Could not read file: \" + e['file']);\n * }\n * }\n */\n\nexport type ErrorMap = {\n readonly [K in ErrorCode]: string;\n};\n\nconst ERROR_NAME = 'FirebaseError';\n\nexport interface StringLike {\n toString(): string;\n}\n\nexport interface ErrorData {\n [key: string]: unknown;\n}\n\n// Based on code from:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\nexport class FirebaseError extends Error {\n /** The custom name for all FirebaseErrors. */\n readonly name: string = ERROR_NAME;\n\n constructor(\n /** The error code for this error. */\n readonly code: string,\n message: string,\n /** Custom data for this error. */\n public customData?: Record\n ) {\n super(message);\n\n // Fix For ES5\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, FirebaseError.prototype);\n\n // Maintains proper stack trace for where our error was thrown.\n // Only available on V8.\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ErrorFactory.prototype.create);\n }\n }\n}\n\nexport class ErrorFactory<\n ErrorCode extends string,\n ErrorParams extends { readonly [K in ErrorCode]?: ErrorData } = {}\n> {\n constructor(\n private readonly service: string,\n private readonly serviceName: string,\n private readonly errors: ErrorMap\n ) {}\n\n create(\n code: K,\n ...data: K extends keyof ErrorParams ? [ErrorParams[K]] : []\n ): FirebaseError {\n const customData = (data[0] as ErrorData) || {};\n const fullCode = `${this.service}/${code}`;\n const template = this.errors[code];\n\n const message = template ? replaceTemplate(template, customData) : 'Error';\n // Service Name: Error message (service/code).\n const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\n\n const error = new FirebaseError(fullCode, fullMessage, customData);\n\n return error;\n }\n}\n\nfunction replaceTemplate(template: string, data: ErrorData): string {\n return template.replace(PATTERN, (_, key) => {\n const value = data[key];\n return value != null ? String(value) : `<${key}?>`;\n });\n}\n\nconst PATTERN = /\\{\\$([^}]+)}/g;\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function contains(obj: T, key: string): boolean {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexport function safeGet(\n obj: T,\n key: K\n): T[K] | undefined {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return obj[key];\n } else {\n return undefined;\n }\n}\n\nexport function isEmpty(obj: object): obj is {} {\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport function map(\n obj: { [key in K]: V },\n fn: (value: V, key: K, obj: { [key in K]: V }) => U,\n contextObj?: unknown\n): { [key in K]: U } {\n const res: Partial<{ [key in K]: U }> = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n res[key] = fn.call(contextObj, obj[key], key, obj);\n }\n }\n return res as { [key in K]: U };\n}\n\n/**\n * Deep equal two objects. Support Arrays and Objects.\n */\nexport function deepEqual(a: object, b: object): boolean {\n if (a === b) {\n return true;\n }\n\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n for (const k of aKeys) {\n if (!bKeys.includes(k)) {\n return false;\n }\n\n const aProp = (a as Record)[k];\n const bProp = (b as Record)[k];\n if (isObject(aProp) && isObject(bProp)) {\n if (!deepEqual(aProp, bProp)) {\n return false;\n }\n } else if (aProp !== bProp) {\n return false;\n }\n }\n\n for (const k of bKeys) {\n if (!aKeys.includes(k)) {\n return false;\n }\n }\n return true;\n}\n\nfunction isObject(thing: unknown): thing is object {\n return thing !== null && typeof thing === 'object';\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\n * params object (e.g. {arg: 'val', arg2: 'val2'})\n * Note: You must prepend it with ? when adding it to a URL.\n */\nexport function querystring(querystringParams: {\n [key: string]: string | number;\n}): string {\n const params = [];\n for (const [key, value] of Object.entries(querystringParams)) {\n if (Array.isArray(value)) {\n value.forEach(arrayVal => {\n params.push(\n encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal)\n );\n });\n } else {\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n }\n }\n return params.length ? '&' + params.join('&') : '';\n}\n\n/**\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\n * (e.g. {arg: 'val', arg2: 'val2'})\n */\nexport function querystringDecode(querystring: string): Record {\n const obj: Record = {};\n const tokens = querystring.replace(/^\\?/, '').split('&');\n\n tokens.forEach(token => {\n if (token) {\n const [key, value] = token.split('=');\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\n }\n });\n return obj;\n}\n\n/**\n * Extract the query string part of a URL, including the leading question mark (if present).\n */\nexport function extractQuerystring(url: string): string {\n const queryStart = url.indexOf('?');\n if (!queryStart) {\n return '';\n }\n const fragmentStart = url.indexOf('#', queryStart);\n return url.substring(\n queryStart,\n fragmentStart > 0 ? fragmentStart : undefined\n );\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport type NextFn = (value: T) => void;\nexport type ErrorFn = (error: Error) => void;\nexport type CompleteFn = () => void;\n\nexport interface Observer {\n // Called once for each value in a stream of values.\n next: NextFn;\n\n // A stream terminates by a single call to EITHER error() or complete().\n error: ErrorFn;\n\n // No events will be sent to next() once complete() is called.\n complete: CompleteFn;\n}\n\nexport type PartialObserver = Partial>;\n\n// TODO: Support also Unsubscribe.unsubscribe?\nexport type Unsubscribe = () => void;\n\n/**\n * The Subscribe interface has two forms - passing the inline function\n * callbacks, or a object interface with callback properties.\n */\nexport interface Subscribe {\n (next?: NextFn, error?: ErrorFn, complete?: CompleteFn): Unsubscribe;\n (observer: PartialObserver): Unsubscribe;\n}\n\nexport interface Observable {\n // Subscribe method\n subscribe: Subscribe;\n}\n\nexport type Executor = (observer: Observer) => void;\n\n/**\n * Helper to make a Subscribe function (just like Promise helps make a\n * Thenable).\n *\n * @param executor Function which can make calls to a single Observer\n * as a proxy.\n * @param onNoObservers Callback when count of Observers goes to zero.\n */\nexport function createSubscribe(\n executor: Executor,\n onNoObservers?: Executor\n): Subscribe {\n const proxy = new ObserverProxy(executor, onNoObservers);\n return proxy.subscribe.bind(proxy);\n}\n\n/**\n * Implement fan-out for any number of Observers attached via a subscribe\n * function.\n */\nclass ObserverProxy implements Observer {\n private observers: Array> | undefined = [];\n private unsubscribes: Unsubscribe[] = [];\n private onNoObservers: Executor | undefined;\n private observerCount = 0;\n // Micro-task scheduling by calling task.then().\n private task = Promise.resolve();\n private finalized = false;\n private finalError?: Error;\n\n /**\n * @param executor Function which can make calls to a single Observer\n * as a proxy.\n * @param onNoObservers Callback when count of Observers goes to zero.\n */\n constructor(executor: Executor, onNoObservers?: Executor) {\n this.onNoObservers = onNoObservers;\n // Call the executor asynchronously so subscribers that are called\n // synchronously after the creation of the subscribe function\n // can still receive the very first value generated in the executor.\n this.task\n .then(() => {\n executor(this);\n })\n .catch(e => {\n this.error(e);\n });\n }\n\n next(value: T): void {\n this.forEachObserver((observer: Observer) => {\n observer.next(value);\n });\n }\n\n error(error: Error): void {\n this.forEachObserver((observer: Observer) => {\n observer.error(error);\n });\n this.close(error);\n }\n\n complete(): void {\n this.forEachObserver((observer: Observer) => {\n observer.complete();\n });\n this.close();\n }\n\n /**\n * Subscribe function that can be used to add an Observer to the fan-out list.\n *\n * - We require that no event is sent to a subscriber sychronously to their\n * call to subscribe().\n */\n subscribe(\n nextOrObserver?: NextFn | PartialObserver,\n error?: ErrorFn,\n complete?: CompleteFn\n ): Unsubscribe {\n let observer: Observer;\n\n if (\n nextOrObserver === undefined &&\n error === undefined &&\n complete === undefined\n ) {\n throw new Error('Missing Observer.');\n }\n\n // Assemble an Observer object when passed as callback functions.\n if (\n implementsAnyMethods(nextOrObserver as { [key: string]: unknown }, [\n 'next',\n 'error',\n 'complete'\n ])\n ) {\n observer = nextOrObserver as Observer;\n } else {\n observer = {\n next: nextOrObserver as NextFn,\n error,\n complete\n } as Observer;\n }\n\n if (observer.next === undefined) {\n observer.next = noop as NextFn;\n }\n if (observer.error === undefined) {\n observer.error = noop as ErrorFn;\n }\n if (observer.complete === undefined) {\n observer.complete = noop as CompleteFn;\n }\n\n const unsub = this.unsubscribeOne.bind(this, this.observers!.length);\n\n // Attempt to subscribe to a terminated Observable - we\n // just respond to the Observer with the final error or complete\n // event.\n if (this.finalized) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n try {\n if (this.finalError) {\n observer.error(this.finalError);\n } else {\n observer.complete();\n }\n } catch (e) {\n // nothing\n }\n return;\n });\n }\n\n this.observers!.push(observer as Observer);\n\n return unsub;\n }\n\n // Unsubscribe is synchronous - we guarantee that no events are sent to\n // any unsubscribed Observer.\n private unsubscribeOne(i: number): void {\n if (this.observers === undefined || this.observers[i] === undefined) {\n return;\n }\n\n delete this.observers[i];\n\n this.observerCount -= 1;\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\n this.onNoObservers(this);\n }\n }\n\n private forEachObserver(fn: (observer: Observer) => void): void {\n if (this.finalized) {\n // Already closed by previous event....just eat the additional values.\n return;\n }\n\n // Since sendOne calls asynchronously - there is no chance that\n // this.observers will become undefined.\n for (let i = 0; i < this.observers!.length; i++) {\n this.sendOne(i, fn);\n }\n }\n\n // Call the Observer via one of it's callback function. We are careful to\n // confirm that the observe has not been unsubscribed since this asynchronous\n // function had been queued.\n private sendOne(i: number, fn: (observer: Observer) => void): void {\n // Execute the callback asynchronously\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n if (this.observers !== undefined && this.observers[i] !== undefined) {\n try {\n fn(this.observers[i]);\n } catch (e) {\n // Ignore exceptions raised in Observers or missing methods of an\n // Observer.\n // Log error to console. b/31404806\n if (typeof console !== 'undefined' && console.error) {\n console.error(e);\n }\n }\n }\n });\n }\n\n private close(err?: Error): void {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n if (err !== undefined) {\n this.finalError = err;\n }\n // Proxy is no longer needed - garbage collect references\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.task.then(() => {\n this.observers = undefined;\n this.onNoObservers = undefined;\n });\n }\n}\n\n/** Turn synchronous function into one called asynchronously. */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function async(fn: Function, onError?: ErrorFn): Function {\n return (...args: unknown[]) => {\n Promise.resolve(true)\n .then(() => {\n fn(...args);\n })\n .catch((error: Error) => {\n if (onError) {\n onError(error);\n }\n });\n };\n}\n\n/**\n * Return true if the object passed in implements any of the named methods.\n */\nfunction implementsAnyMethods(\n obj: { [key: string]: unknown },\n methods: string[]\n): boolean {\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n\n for (const method of methods) {\n if (method in obj && typeof obj[method] === 'function') {\n return true;\n }\n }\n\n return false;\n}\n\nfunction noop(): void {\n // do nothing\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface Compat {\n _delegate: T;\n}\n\nexport function getModularInstance(\n service: Compat | ExpService\n): ExpService {\n if (service && (service as Compat)._delegate) {\n return (service as Compat)._delegate;\n } else {\n return service as ExpService;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n InstantiationMode,\n InstanceFactory,\n ComponentType,\n Dictionary,\n Name,\n onInstanceCreatedCallback\n} from './types';\n\n/**\n * Component for service name T, e.g. `auth`, `auth-internal`\n */\nexport class Component {\n multipleInstances = false;\n /**\n * Properties to be added to the service namespace\n */\n serviceProps: Dictionary = {};\n\n instantiationMode = InstantiationMode.LAZY;\n\n onInstanceCreated: onInstanceCreatedCallback | null = null;\n\n /**\n *\n * @param name The public service name, e.g. app, auth, firestore, database\n * @param instanceFactory Service factory responsible for creating the public interface\n * @param type whether the service provided by the component is public or private\n */\n constructor(\n readonly name: T,\n readonly instanceFactory: InstanceFactory,\n readonly type: ComponentType\n ) {}\n\n setInstantiationMode(mode: InstantiationMode): this {\n this.instantiationMode = mode;\n return this;\n }\n\n setMultipleInstances(multipleInstances: boolean): this {\n this.multipleInstances = multipleInstances;\n return this;\n }\n\n setServiceProps(props: Dictionary): this {\n this.serviceProps = props;\n return this;\n }\n\n setInstanceCreatedCallback(callback: onInstanceCreatedCallback): this {\n this.onInstanceCreated = callback;\n return this;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const DEFAULT_ENTRY_NAME = '[DEFAULT]';\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Deferred } from '@firebase/util';\nimport { ComponentContainer } from './component_container';\nimport { DEFAULT_ENTRY_NAME } from './constants';\nimport {\n InitializeOptions,\n InstantiationMode,\n Name,\n NameServiceMapping,\n OnInitCallBack\n} from './types';\nimport { Component } from './component';\n\n/**\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\n * NameServiceMapping[T] is an alias for the type of the instance\n */\nexport class Provider {\n private component: Component | null = null;\n private readonly instances: Map = new Map();\n private readonly instancesDeferred: Map<\n string,\n Deferred\n > = new Map();\n private readonly instancesOptions: Map> =\n new Map();\n private onInitCallbacks: Map>> = new Map();\n\n constructor(\n private readonly name: T,\n private readonly container: ComponentContainer\n ) {}\n\n /**\n * @param identifier A provider can provide mulitple instances of a service\n * if this.component.multipleInstances is true.\n */\n get(identifier?: string): Promise {\n // if multipleInstances is not supported, use the default name\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\n const deferred = new Deferred();\n this.instancesDeferred.set(normalizedIdentifier, deferred);\n\n if (\n this.isInitialized(normalizedIdentifier) ||\n this.shouldAutoInitialize()\n ) {\n // initialize the service if it can be auto-initialized\n try {\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n });\n if (instance) {\n deferred.resolve(instance);\n }\n } catch (e) {\n // when the instance factory throws an exception during get(), it should not cause\n // a fatal error. We just return the unresolved promise in this case.\n }\n }\n }\n\n return this.instancesDeferred.get(normalizedIdentifier)!.promise;\n }\n\n /**\n *\n * @param options.identifier A provider can provide mulitple instances of a service\n * if this.component.multipleInstances is true.\n * @param options.optional If optional is false or not provided, the method throws an error when\n * the service is not immediately available.\n * If optional is true, the method returns null if the service is not immediately available.\n */\n getImmediate(options: {\n identifier?: string;\n optional: true;\n }): NameServiceMapping[T] | null;\n getImmediate(options?: {\n identifier?: string;\n optional?: false;\n }): NameServiceMapping[T];\n getImmediate(options?: {\n identifier?: string;\n optional?: boolean;\n }): NameServiceMapping[T] | null {\n // if multipleInstances is not supported, use the default name\n const normalizedIdentifier = this.normalizeInstanceIdentifier(\n options?.identifier\n );\n const optional = options?.optional ?? false;\n\n if (\n this.isInitialized(normalizedIdentifier) ||\n this.shouldAutoInitialize()\n ) {\n try {\n return this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n });\n } catch (e) {\n if (optional) {\n return null;\n } else {\n throw e;\n }\n }\n } else {\n // In case a component is not initialized and should/can not be auto-initialized at the moment, return null if the optional flag is set, or throw\n if (optional) {\n return null;\n } else {\n throw Error(`Service ${this.name} is not available`);\n }\n }\n }\n\n getComponent(): Component | null {\n return this.component;\n }\n\n setComponent(component: Component): void {\n if (component.name !== this.name) {\n throw Error(\n `Mismatching Component ${component.name} for Provider ${this.name}.`\n );\n }\n\n if (this.component) {\n throw Error(`Component for ${this.name} has already been provided`);\n }\n\n this.component = component;\n\n // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\n if (!this.shouldAutoInitialize()) {\n return;\n }\n\n // if the service is eager, initialize the default instance\n if (isComponentEager(component)) {\n try {\n this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });\n } catch (e) {\n // when the instance factory for an eager Component throws an exception during the eager\n // initialization, it should not cause a fatal error.\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\n // a fatal error in this case?\n }\n }\n\n // Create service instances for the pending promises and resolve them\n // NOTE: if this.multipleInstances is false, only the default instance will be created\n // and all promises with resolve with it regardless of the identifier.\n for (const [\n instanceIdentifier,\n instanceDeferred\n ] of this.instancesDeferred.entries()) {\n const normalizedIdentifier =\n this.normalizeInstanceIdentifier(instanceIdentifier);\n\n try {\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier\n })!;\n instanceDeferred.resolve(instance);\n } catch (e) {\n // when the instance factory throws an exception, it should not cause\n // a fatal error. We just leave the promise unresolved.\n }\n }\n }\n\n clearInstance(identifier: string = DEFAULT_ENTRY_NAME): void {\n this.instancesDeferred.delete(identifier);\n this.instancesOptions.delete(identifier);\n this.instances.delete(identifier);\n }\n\n // app.delete() will call this method on every provider to delete the services\n // TODO: should we mark the provider as deleted?\n async delete(): Promise {\n const services = Array.from(this.instances.values());\n\n await Promise.all([\n ...services\n .filter(service => 'INTERNAL' in service) // legacy services\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(service => (service as any).INTERNAL!.delete()),\n ...services\n .filter(service => '_delete' in service) // modularized services\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(service => (service as any)._delete())\n ]);\n }\n\n isComponentSet(): boolean {\n return this.component != null;\n }\n\n isInitialized(identifier: string = DEFAULT_ENTRY_NAME): boolean {\n return this.instances.has(identifier);\n }\n\n getOptions(identifier: string = DEFAULT_ENTRY_NAME): Record {\n return this.instancesOptions.get(identifier) || {};\n }\n\n initialize(opts: InitializeOptions = {}): NameServiceMapping[T] {\n const { options = {} } = opts;\n const normalizedIdentifier = this.normalizeInstanceIdentifier(\n opts.instanceIdentifier\n );\n if (this.isInitialized(normalizedIdentifier)) {\n throw Error(\n `${this.name}(${normalizedIdentifier}) has already been initialized`\n );\n }\n\n if (!this.isComponentSet()) {\n throw Error(`Component ${this.name} has not been registered yet`);\n }\n\n const instance = this.getOrInitializeService({\n instanceIdentifier: normalizedIdentifier,\n options\n })!;\n\n // resolve any pending promise waiting for the service instance\n for (const [\n instanceIdentifier,\n instanceDeferred\n ] of this.instancesDeferred.entries()) {\n const normalizedDeferredIdentifier =\n this.normalizeInstanceIdentifier(instanceIdentifier);\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\n instanceDeferred.resolve(instance);\n }\n }\n\n return instance;\n }\n\n /**\n *\n * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().\n * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\n *\n * @param identifier An optional instance identifier\n * @returns a function to unregister the callback\n */\n onInit(callback: OnInitCallBack, identifier?: string): () => void {\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\n const existingCallbacks =\n this.onInitCallbacks.get(normalizedIdentifier) ??\n new Set>();\n existingCallbacks.add(callback);\n this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\n\n const existingInstance = this.instances.get(normalizedIdentifier);\n if (existingInstance) {\n callback(existingInstance, normalizedIdentifier);\n }\n\n return () => {\n existingCallbacks.delete(callback);\n };\n }\n\n /**\n * Invoke onInit callbacks synchronously\n * @param instance the service instance`\n */\n private invokeOnInitCallbacks(\n instance: NameServiceMapping[T],\n identifier: string\n ): void {\n const callbacks = this.onInitCallbacks.get(identifier);\n if (!callbacks) {\n return;\n }\n for (const callback of callbacks) {\n try {\n callback(instance, identifier);\n } catch {\n // ignore errors in the onInit callback\n }\n }\n }\n\n private getOrInitializeService({\n instanceIdentifier,\n options = {}\n }: {\n instanceIdentifier: string;\n options?: Record;\n }): NameServiceMapping[T] | null {\n let instance = this.instances.get(instanceIdentifier);\n if (!instance && this.component) {\n instance = this.component.instanceFactory(this.container, {\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\n options\n });\n this.instances.set(instanceIdentifier, instance);\n this.instancesOptions.set(instanceIdentifier, options);\n\n /**\n * Invoke onInit listeners.\n * Note this.component.onInstanceCreated is different, which is used by the component creator,\n * while onInit listeners are registered by consumers of the provider.\n */\n this.invokeOnInitCallbacks(instance, instanceIdentifier);\n\n /**\n * Order is important\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\n * makes `isInitialized()` return true.\n */\n if (this.component.onInstanceCreated) {\n try {\n this.component.onInstanceCreated(\n this.container,\n instanceIdentifier,\n instance\n );\n } catch {\n // ignore errors in the onInstanceCreatedCallback\n }\n }\n }\n\n return instance || null;\n }\n\n private normalizeInstanceIdentifier(\n identifier: string = DEFAULT_ENTRY_NAME\n ): string {\n if (this.component) {\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\n } else {\n return identifier; // assume multiple instances are supported before the component is provided.\n }\n }\n\n private shouldAutoInitialize(): boolean {\n return (\n !!this.component &&\n this.component.instantiationMode !== InstantiationMode.EXPLICIT\n );\n }\n}\n\n// undefined should be passed to the service factory for the default instance\nfunction normalizeIdentifierForFactory(identifier: string): string | undefined {\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\n}\n\nfunction isComponentEager(component: Component): boolean {\n return component.instantiationMode === InstantiationMode.EAGER;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Provider } from './provider';\nimport { Component } from './component';\nimport { Name } from './types';\n\n/**\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\n */\nexport class ComponentContainer {\n private readonly providers = new Map>();\n\n constructor(private readonly name: string) {}\n\n /**\n *\n * @param component Component being added\n * @param overwrite When a component with the same name has already been registered,\n * if overwrite is true: overwrite the existing component with the new component and create a new\n * provider with the new component. It can be useful in tests where you want to use different mocks\n * for different tests.\n * if overwrite is false: throw an exception\n */\n addComponent(component: Component): void {\n const provider = this.getProvider(component.name);\n if (provider.isComponentSet()) {\n throw new Error(\n `Component ${component.name} has already been registered with ${this.name}`\n );\n }\n\n provider.setComponent(component);\n }\n\n addOrOverwriteComponent(component: Component): void {\n const provider = this.getProvider(component.name);\n if (provider.isComponentSet()) {\n // delete the existing provider from the container, so we can register the new component\n this.providers.delete(component.name);\n }\n\n this.addComponent(component);\n }\n\n /**\n * getProvider provides a type safe interface where it can only be called with a field name\n * present in NameServiceMapping interface.\n *\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\n * themselves.\n */\n getProvider(name: T): Provider {\n if (this.providers.has(name)) {\n return this.providers.get(name) as unknown as Provider;\n }\n\n // create a Provider for a service that hasn't registered with Firebase\n const provider = new Provider(name, this);\n this.providers.set(name, provider as unknown as Provider);\n\n return provider as Provider;\n }\n\n getProviders(): Array> {\n return Array.from(this.providers.values());\n }\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type LogLevelString =\n | 'debug'\n | 'verbose'\n | 'info'\n | 'warn'\n | 'error'\n | 'silent';\n\nexport interface LogOptions {\n level: LogLevelString;\n}\n\nexport type LogCallback = (callbackParams: LogCallbackParams) => void;\n\nexport interface LogCallbackParams {\n level: LogLevelString;\n message: string;\n args: unknown[];\n type: string;\n}\n\n/**\n * A container for all of the Logger instances\n */\nexport const instances: Logger[] = [];\n\n/**\n * The JS SDK supports 5 log levels and also allows a user the ability to\n * silence the logs altogether.\n *\n * The order is a follows:\n * DEBUG < VERBOSE < INFO < WARN < ERROR\n *\n * All of the log types above the current log level will be captured (i.e. if\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\n * `VERBOSE` logs will not)\n */\nexport enum LogLevel {\n DEBUG,\n VERBOSE,\n INFO,\n WARN,\n ERROR,\n SILENT\n}\n\nconst levelStringToEnum: { [key in LogLevelString]: LogLevel } = {\n 'debug': LogLevel.DEBUG,\n 'verbose': LogLevel.VERBOSE,\n 'info': LogLevel.INFO,\n 'warn': LogLevel.WARN,\n 'error': LogLevel.ERROR,\n 'silent': LogLevel.SILENT\n};\n\n/**\n * The default log level\n */\nconst defaultLogLevel: LogLevel = LogLevel.INFO;\n\n/**\n * We allow users the ability to pass their own log handler. We will pass the\n * type of log, the current log level, and any other arguments passed (i.e. the\n * messages that the user wants to log) to this function.\n */\nexport type LogHandler = (\n loggerInstance: Logger,\n logType: LogLevel,\n ...args: unknown[]\n) => void;\n\n/**\n * By default, `console.debug` is not displayed in the developer console (in\n * chrome). To avoid forcing users to have to opt-in to these logs twice\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\n * logs to the `console.log` function.\n */\nconst ConsoleMethod = {\n [LogLevel.DEBUG]: 'log',\n [LogLevel.VERBOSE]: 'log',\n [LogLevel.INFO]: 'info',\n [LogLevel.WARN]: 'warn',\n [LogLevel.ERROR]: 'error'\n};\n\n/**\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\n * messages on to their corresponding console counterparts (if the log method\n * is supported by the current log level)\n */\nconst defaultLogHandler: LogHandler = (instance, logType, ...args): void => {\n if (logType < instance.logLevel) {\n return;\n }\n const now = new Date().toISOString();\n const method = ConsoleMethod[logType as keyof typeof ConsoleMethod];\n if (method) {\n console[method as 'log' | 'info' | 'warn' | 'error'](\n `[${now}] ${instance.name}:`,\n ...args\n );\n } else {\n throw new Error(\n `Attempted to log a message with an invalid logType (value: ${logType})`\n );\n }\n};\n\nexport class Logger {\n /**\n * Gives you an instance of a Logger to capture messages according to\n * Firebase's logging scheme.\n *\n * @param name The name that the logs will be associated with\n */\n constructor(public name: string) {\n /**\n * Capture the current instance for later use\n */\n instances.push(this);\n }\n\n /**\n * The log level of the given Logger instance.\n */\n private _logLevel = defaultLogLevel;\n\n get logLevel(): LogLevel {\n return this._logLevel;\n }\n\n set logLevel(val: LogLevel) {\n if (!(val in LogLevel)) {\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\n }\n this._logLevel = val;\n }\n\n // Workaround for setter/getter having to be the same type.\n setLogLevel(val: LogLevel | LogLevelString): void {\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\n }\n\n /**\n * The main (internal) log handler for the Logger instance.\n * Can be set to a new function in internal package code but not by user.\n */\n private _logHandler: LogHandler = defaultLogHandler;\n get logHandler(): LogHandler {\n return this._logHandler;\n }\n set logHandler(val: LogHandler) {\n if (typeof val !== 'function') {\n throw new TypeError('Value assigned to `logHandler` must be a function');\n }\n this._logHandler = val;\n }\n\n /**\n * The optional, additional, user-defined log handler for the Logger instance.\n */\n private _userLogHandler: LogHandler | null = null;\n get userLogHandler(): LogHandler | null {\n return this._userLogHandler;\n }\n set userLogHandler(val: LogHandler | null) {\n this._userLogHandler = val;\n }\n\n /**\n * The functions below are all based on the `console` interface\n */\n\n debug(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\n this._logHandler(this, LogLevel.DEBUG, ...args);\n }\n log(...args: unknown[]): void {\n this._userLogHandler &&\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\n this._logHandler(this, LogLevel.VERBOSE, ...args);\n }\n info(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\n this._logHandler(this, LogLevel.INFO, ...args);\n }\n warn(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\n this._logHandler(this, LogLevel.WARN, ...args);\n }\n error(...args: unknown[]): void {\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\n this._logHandler(this, LogLevel.ERROR, ...args);\n }\n}\n\nexport function setLogLevel(level: LogLevelString | LogLevel): void {\n instances.forEach(inst => {\n inst.setLogLevel(level);\n });\n}\n\nexport function setUserLogHandler(\n logCallback: LogCallback | null,\n options?: LogOptions\n): void {\n for (const instance of instances) {\n let customLogLevel: LogLevel | null = null;\n if (options && options.level) {\n customLogLevel = levelStringToEnum[options.level];\n }\n if (logCallback === null) {\n instance.userLogHandler = null;\n } else {\n instance.userLogHandler = (\n instance: Logger,\n level: LogLevel,\n ...args: unknown[]\n ) => {\n const message = args\n .map(arg => {\n if (arg == null) {\n return null;\n } else if (typeof arg === 'string') {\n return arg;\n } else if (typeof arg === 'number' || typeof arg === 'boolean') {\n return arg.toString();\n } else if (arg instanceof Error) {\n return arg.message;\n } else {\n try {\n return JSON.stringify(arg);\n } catch (ignored) {\n return null;\n }\n }\n })\n .filter(arg => arg)\n .join(' ');\n if (level >= (customLogLevel ?? instance.logLevel)) {\n logCallback({\n level: LogLevel[level].toLowerCase() as LogLevelString,\n message,\n args,\n type: instance.name\n });\n }\n };\n }\n }\n}\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ComponentContainer,\n ComponentType,\n Provider,\n Name\n} from '@firebase/component';\nimport { PlatformLoggerService, VersionService } from './types';\n\nexport class PlatformLoggerServiceImpl implements PlatformLoggerService {\n constructor(private readonly container: ComponentContainer) {}\n // In initial implementation, this will be called by installations on\n // auth token refresh, and installations will send this string.\n getPlatformInfoString(): string {\n const providers = this.container.getProviders();\n // Loop through providers and get library/version pairs from any that are\n // version components.\n return providers\n .map(provider => {\n if (isVersionServiceProvider(provider)) {\n const service = provider.getImmediate() as VersionService;\n return `${service.library}/${service.version}`;\n } else {\n return null;\n }\n })\n .filter(logString => logString)\n .join(' ');\n }\n}\n/**\n *\n * @param provider check if this provider provides a VersionService\n *\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\n * provides VersionService. The provider is not necessarily a 'app-version'\n * provider.\n */\nfunction isVersionServiceProvider(provider: Provider): boolean {\n const component = provider.getComponent();\n return component?.type === ComponentType.VERSION;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Logger } from '@firebase/logger';\n\nexport const logger = new Logger('@firebase/app');\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { name as appName } from '../package.json';\nimport { name as appCompatName } from '../../app-compat/package.json';\nimport { name as analyticsCompatName } from '../../../packages/analytics-compat/package.json';\nimport { name as analyticsName } from '../../../packages/analytics/package.json';\nimport { name as appCheckCompatName } from '../../../packages/app-check-compat/package.json';\nimport { name as appCheckName } from '../../../packages/app-check/package.json';\nimport { name as authName } from '../../../packages/auth/package.json';\nimport { name as authCompatName } from '../../../packages/auth-compat/package.json';\nimport { name as databaseName } from '../../../packages/database/package.json';\nimport { name as databaseCompatName } from '../../../packages/database-compat/package.json';\nimport { name as functionsName } from '../../../packages/functions/package.json';\nimport { name as functionsCompatName } from '../../../packages/functions-compat/package.json';\nimport { name as installationsName } from '../../../packages/installations/package.json';\nimport { name as installationsCompatName } from '../../../packages/installations-compat/package.json';\nimport { name as messagingName } from '../../../packages/messaging/package.json';\nimport { name as messagingCompatName } from '../../../packages/messaging-compat/package.json';\nimport { name as performanceName } from '../../../packages/performance/package.json';\nimport { name as performanceCompatName } from '../../../packages/performance-compat/package.json';\nimport { name as remoteConfigName } from '../../../packages/remote-config/package.json';\nimport { name as remoteConfigCompatName } from '../../../packages/remote-config-compat/package.json';\nimport { name as storageName } from '../../../packages/storage/package.json';\nimport { name as storageCompatName } from '../../../packages/storage-compat/package.json';\nimport { name as firestoreName } from '../../../packages/firestore/package.json';\nimport { name as firestoreCompatName } from '../../../packages/firestore-compat/package.json';\nimport { name as packageName } from '../../../packages/firebase/package.json';\n\n/**\n * The default app name\n *\n * @internal\n */\nexport const DEFAULT_ENTRY_NAME = '[DEFAULT]';\n\nexport const PLATFORM_LOG_STRING = {\n [appName]: 'fire-core',\n [appCompatName]: 'fire-core-compat',\n [analyticsName]: 'fire-analytics',\n [analyticsCompatName]: 'fire-analytics-compat',\n [appCheckName]: 'fire-app-check',\n [appCheckCompatName]: 'fire-app-check-compat',\n [authName]: 'fire-auth',\n [authCompatName]: 'fire-auth-compat',\n [databaseName]: 'fire-rtdb',\n [databaseCompatName]: 'fire-rtdb-compat',\n [functionsName]: 'fire-fn',\n [functionsCompatName]: 'fire-fn-compat',\n [installationsName]: 'fire-iid',\n [installationsCompatName]: 'fire-iid-compat',\n [messagingName]: 'fire-fcm',\n [messagingCompatName]: 'fire-fcm-compat',\n [performanceName]: 'fire-perf',\n [performanceCompatName]: 'fire-perf-compat',\n [remoteConfigName]: 'fire-rc',\n [remoteConfigCompatName]: 'fire-rc-compat',\n [storageName]: 'fire-gcs',\n [storageCompatName]: 'fire-gcs-compat',\n [firestoreName]: 'fire-fst',\n [firestoreCompatName]: 'fire-fst-compat',\n 'fire-js': 'fire-js', // Platform identifier for JS SDK.\n [packageName]: 'fire-js-all'\n} as const;\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseApp } from './public-types';\nimport { Component, Provider, Name } from '@firebase/component';\nimport { logger } from './logger';\nimport { DEFAULT_ENTRY_NAME } from './constants';\nimport { FirebaseAppImpl } from './firebaseApp';\n\n/**\n * @internal\n */\nexport const _apps = new Map();\n\n/**\n * Registered components.\n *\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const _components = new Map>();\n\n/**\n * @param component - the component being added to this app's container\n *\n * @internal\n */\nexport function _addComponent(\n app: FirebaseApp,\n component: Component\n): void {\n try {\n (app as FirebaseAppImpl).container.addComponent(component);\n } catch (e) {\n logger.debug(\n `Component ${component.name} failed to register with FirebaseApp ${app.name}`,\n e\n );\n }\n}\n\n/**\n *\n * @internal\n */\nexport function _addOrOverwriteComponent(\n app: FirebaseApp,\n component: Component\n): void {\n (app as FirebaseAppImpl).container.addOrOverwriteComponent(component);\n}\n\n/**\n *\n * @param component - the component to register\n * @returns whether or not the component is registered successfully\n *\n * @internal\n */\nexport function _registerComponent(\n component: Component\n): boolean {\n const componentName = component.name;\n if (_components.has(componentName)) {\n logger.debug(\n `There were multiple attempts to register component ${componentName}.`\n );\n\n return false;\n }\n\n _components.set(componentName, component);\n\n // add the component to existing app instances\n for (const app of _apps.values()) {\n _addComponent(app as FirebaseAppImpl, component);\n }\n\n return true;\n}\n\n/**\n *\n * @param app - FirebaseApp instance\n * @param name - service name\n *\n * @returns the provider for the service with the matching name\n *\n * @internal\n */\nexport function _getProvider(\n app: FirebaseApp,\n name: T\n): Provider {\n const heartbeatController = (app as FirebaseAppImpl).container\n .getProvider('heartbeat')\n .getImmediate({ optional: true });\n if (heartbeatController) {\n void heartbeatController.triggerHeartbeat();\n }\n return (app as FirebaseAppImpl).container.getProvider(name);\n}\n\n/**\n *\n * @param app - FirebaseApp instance\n * @param name - service name\n * @param instanceIdentifier - service instance identifier in case the service supports multiple instances\n *\n * @internal\n */\nexport function _removeServiceInstance(\n app: FirebaseApp,\n name: T,\n instanceIdentifier: string = DEFAULT_ENTRY_NAME\n): void {\n _getProvider(app, name).clearInstance(instanceIdentifier);\n}\n\n/**\n * Test only\n *\n * @internal\n */\nexport function _clearComponents(): void {\n _components.clear();\n}\n\n/**\n * Exported in order to be used in app-compat package\n */\nexport { DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME };\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ErrorFactory, ErrorMap } from '@firebase/util';\n\nexport const enum AppError {\n NO_APP = 'no-app',\n BAD_APP_NAME = 'bad-app-name',\n DUPLICATE_APP = 'duplicate-app',\n APP_DELETED = 'app-deleted',\n NO_OPTIONS = 'no-options',\n INVALID_APP_ARGUMENT = 'invalid-app-argument',\n INVALID_LOG_ARGUMENT = 'invalid-log-argument',\n IDB_OPEN = 'idb-open',\n IDB_GET = 'idb-get',\n IDB_WRITE = 'idb-set',\n IDB_DELETE = 'idb-delete'\n}\n\nconst ERRORS: ErrorMap = {\n [AppError.NO_APP]:\n \"No Firebase App '{$appName}' has been created - \" +\n 'call initializeApp() first',\n [AppError.BAD_APP_NAME]: \"Illegal App name: '{$appName}\",\n [AppError.DUPLICATE_APP]:\n \"Firebase App named '{$appName}' already exists with different options or config\",\n [AppError.APP_DELETED]: \"Firebase App named '{$appName}' already deleted\",\n [AppError.NO_OPTIONS]:\n 'Need to provide options, when not being deployed to hosting via source.',\n [AppError.INVALID_APP_ARGUMENT]:\n 'firebase.{$appName}() takes either no argument or a ' +\n 'Firebase App instance.',\n [AppError.INVALID_LOG_ARGUMENT]:\n 'First argument to `onLog` must be null or a function.',\n [AppError.IDB_OPEN]:\n 'Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.',\n [AppError.IDB_GET]:\n 'Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.',\n [AppError.IDB_WRITE]:\n 'Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.',\n [AppError.IDB_DELETE]:\n 'Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.'\n};\n\ninterface ErrorParams {\n [AppError.NO_APP]: { appName: string };\n [AppError.BAD_APP_NAME]: { appName: string };\n [AppError.DUPLICATE_APP]: { appName: string };\n [AppError.APP_DELETED]: { appName: string };\n [AppError.INVALID_APP_ARGUMENT]: { appName: string };\n [AppError.IDB_OPEN]: { originalErrorMessage?: string };\n [AppError.IDB_GET]: { originalErrorMessage?: string };\n [AppError.IDB_WRITE]: { originalErrorMessage?: string };\n [AppError.IDB_DELETE]: { originalErrorMessage?: string };\n}\n\nexport const ERROR_FACTORY = new ErrorFactory(\n 'app',\n 'Firebase',\n ERRORS\n);\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n FirebaseApp,\n FirebaseOptions,\n FirebaseAppSettings\n} from './public-types';\nimport {\n ComponentContainer,\n Component,\n ComponentType\n} from '@firebase/component';\nimport { ERROR_FACTORY, AppError } from './errors';\n\nexport class FirebaseAppImpl implements FirebaseApp {\n private readonly _options: FirebaseOptions;\n private readonly _name: string;\n /**\n * Original config values passed in as a constructor parameter.\n * It is only used to compare with another config object to support idempotent initializeApp().\n *\n * Updating automaticDataCollectionEnabled on the App instance will not change its value in _config.\n */\n private readonly _config: Required;\n private _automaticDataCollectionEnabled: boolean;\n private _isDeleted = false;\n private readonly _container: ComponentContainer;\n\n constructor(\n options: FirebaseOptions,\n config: Required,\n container: ComponentContainer\n ) {\n this._options = { ...options };\n this._config = { ...config };\n this._name = config.name;\n this._automaticDataCollectionEnabled =\n config.automaticDataCollectionEnabled;\n this._container = container;\n this.container.addComponent(\n new Component('app', () => this, ComponentType.PUBLIC)\n );\n }\n\n get automaticDataCollectionEnabled(): boolean {\n this.checkDestroyed();\n return this._automaticDataCollectionEnabled;\n }\n\n set automaticDataCollectionEnabled(val: boolean) {\n this.checkDestroyed();\n this._automaticDataCollectionEnabled = val;\n }\n\n get name(): string {\n this.checkDestroyed();\n return this._name;\n }\n\n get options(): FirebaseOptions {\n this.checkDestroyed();\n return this._options;\n }\n\n get config(): Required {\n this.checkDestroyed();\n return this._config;\n }\n\n get container(): ComponentContainer {\n return this._container;\n }\n\n get isDeleted(): boolean {\n return this._isDeleted;\n }\n\n set isDeleted(val: boolean) {\n this._isDeleted = val;\n }\n\n /**\n * This function will throw an Error if the App has already been deleted -\n * use before performing API actions on the App.\n */\n private checkDestroyed(): void {\n if (this.isDeleted) {\n throw ERROR_FACTORY.create(AppError.APP_DELETED, { appName: this._name });\n }\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n FirebaseApp,\n FirebaseOptions,\n FirebaseAppSettings\n} from './public-types';\nimport { DEFAULT_ENTRY_NAME, PLATFORM_LOG_STRING } from './constants';\nimport { ERROR_FACTORY, AppError } from './errors';\nimport {\n ComponentContainer,\n Component,\n Name,\n ComponentType\n} from '@firebase/component';\nimport { version } from '../../firebase/package.json';\nimport { FirebaseAppImpl } from './firebaseApp';\nimport { _apps, _components, _registerComponent } from './internal';\nimport { logger } from './logger';\nimport {\n LogLevelString,\n setLogLevel as setLogLevelImpl,\n LogCallback,\n LogOptions,\n setUserLogHandler\n} from '@firebase/logger';\nimport { deepEqual, getDefaultAppConfig } from '@firebase/util';\n\nexport { FirebaseError } from '@firebase/util';\n\n/**\n * The current SDK version.\n *\n * @public\n */\nexport const SDK_VERSION = version;\n\n/**\n * Creates and initializes a {@link @firebase/app#FirebaseApp} instance.\n *\n * See\n * {@link\n * https://firebase.google.com/docs/web/setup#add_firebase_to_your_app\n * | Add Firebase to your app} and\n * {@link\n * https://firebase.google.com/docs/web/setup#multiple-projects\n * | Initialize multiple projects} for detailed documentation.\n *\n * @example\n * ```javascript\n *\n * // Initialize default app\n * // Retrieve your own options values by adding a web app on\n * // https://console.firebase.google.com\n * initializeApp({\n * apiKey: \"AIza....\", // Auth / General Use\n * authDomain: \"YOUR_APP.firebaseapp.com\", // Auth with popup/redirect\n * databaseURL: \"https://YOUR_APP.firebaseio.com\", // Realtime Database\n * storageBucket: \"YOUR_APP.appspot.com\", // Storage\n * messagingSenderId: \"123456789\" // Cloud Messaging\n * });\n * ```\n *\n * @example\n * ```javascript\n *\n * // Initialize another app\n * const otherApp = initializeApp({\n * databaseURL: \"https://.firebaseio.com\",\n * storageBucket: \".appspot.com\"\n * }, \"otherApp\");\n * ```\n *\n * @param options - Options to configure the app's services.\n * @param name - Optional name of the app to initialize. If no name\n * is provided, the default is `\"[DEFAULT]\"`.\n *\n * @returns The initialized app.\n *\n * @public\n */\nexport function initializeApp(\n options: FirebaseOptions,\n name?: string\n): FirebaseApp;\n/**\n * Creates and initializes a FirebaseApp instance.\n *\n * @param options - Options to configure the app's services.\n * @param config - FirebaseApp Configuration\n *\n * @public\n */\nexport function initializeApp(\n options: FirebaseOptions,\n config?: FirebaseAppSettings\n): FirebaseApp;\n/**\n * Creates and initializes a FirebaseApp instance.\n *\n * @public\n */\nexport function initializeApp(): FirebaseApp;\nexport function initializeApp(\n _options?: FirebaseOptions,\n rawConfig = {}\n): FirebaseApp {\n let options = _options;\n\n if (typeof rawConfig !== 'object') {\n const name = rawConfig;\n rawConfig = { name };\n }\n\n const config: Required = {\n name: DEFAULT_ENTRY_NAME,\n automaticDataCollectionEnabled: false,\n ...rawConfig\n };\n const name = config.name;\n\n if (typeof name !== 'string' || !name) {\n throw ERROR_FACTORY.create(AppError.BAD_APP_NAME, {\n appName: String(name)\n });\n }\n\n options ||= getDefaultAppConfig();\n\n if (!options) {\n throw ERROR_FACTORY.create(AppError.NO_OPTIONS);\n }\n\n const existingApp = _apps.get(name) as FirebaseAppImpl;\n if (existingApp) {\n // return the existing app if options and config deep equal the ones in the existing app.\n if (\n deepEqual(options, existingApp.options) &&\n deepEqual(config, existingApp.config)\n ) {\n return existingApp;\n } else {\n throw ERROR_FACTORY.create(AppError.DUPLICATE_APP, { appName: name });\n }\n }\n\n const container = new ComponentContainer(name);\n for (const component of _components.values()) {\n container.addComponent(component);\n }\n\n const newApp = new FirebaseAppImpl(options, config, container);\n\n _apps.set(name, newApp);\n\n return newApp;\n}\n\n/**\n * Retrieves a {@link @firebase/app#FirebaseApp} instance.\n *\n * When called with no arguments, the default app is returned. When an app name\n * is provided, the app corresponding to that name is returned.\n *\n * An exception is thrown if the app being retrieved has not yet been\n * initialized.\n *\n * @example\n * ```javascript\n * // Return the default app\n * const app = getApp();\n * ```\n *\n * @example\n * ```javascript\n * // Return a named app\n * const otherApp = getApp(\"otherApp\");\n * ```\n *\n * @param name - Optional name of the app to return. If no name is\n * provided, the default is `\"[DEFAULT]\"`.\n *\n * @returns The app corresponding to the provided app name.\n * If no app name is provided, the default app is returned.\n *\n * @public\n */\nexport function getApp(name: string = DEFAULT_ENTRY_NAME): FirebaseApp {\n const app = _apps.get(name);\n if (!app && name === DEFAULT_ENTRY_NAME && getDefaultAppConfig()) {\n return initializeApp();\n }\n if (!app) {\n throw ERROR_FACTORY.create(AppError.NO_APP, { appName: name });\n }\n\n return app;\n}\n\n/**\n * A (read-only) array of all initialized apps.\n * @public\n */\nexport function getApps(): FirebaseApp[] {\n return Array.from(_apps.values());\n}\n\n/**\n * Renders this app unusable and frees the resources of all associated\n * services.\n *\n * @example\n * ```javascript\n * deleteApp(app)\n * .then(function() {\n * console.log(\"App deleted successfully\");\n * })\n * .catch(function(error) {\n * console.log(\"Error deleting app:\", error);\n * });\n * ```\n *\n * @public\n */\nexport async function deleteApp(app: FirebaseApp): Promise {\n const name = app.name;\n if (_apps.has(name)) {\n _apps.delete(name);\n await Promise.all(\n (app as FirebaseAppImpl).container\n .getProviders()\n .map(provider => provider.delete())\n );\n (app as FirebaseAppImpl).isDeleted = true;\n }\n}\n\n/**\n * Registers a library's name and version for platform logging purposes.\n * @param library - Name of 1p or 3p library (e.g. firestore, angularfire)\n * @param version - Current version of that library.\n * @param variant - Bundle variant, e.g., node, rn, etc.\n *\n * @public\n */\nexport function registerVersion(\n libraryKeyOrName: string,\n version: string,\n variant?: string\n): void {\n // TODO: We can use this check to whitelist strings when/if we set up\n // a good whitelist system.\n let library = PLATFORM_LOG_STRING[libraryKeyOrName] ?? libraryKeyOrName;\n if (variant) {\n library += `-${variant}`;\n }\n const libraryMismatch = library.match(/\\s|\\//);\n const versionMismatch = version.match(/\\s|\\//);\n if (libraryMismatch || versionMismatch) {\n const warning = [\n `Unable to register library \"${library}\" with version \"${version}\":`\n ];\n if (libraryMismatch) {\n warning.push(\n `library name \"${library}\" contains illegal characters (whitespace or \"/\")`\n );\n }\n if (libraryMismatch && versionMismatch) {\n warning.push('and');\n }\n if (versionMismatch) {\n warning.push(\n `version name \"${version}\" contains illegal characters (whitespace or \"/\")`\n );\n }\n logger.warn(warning.join(' '));\n return;\n }\n _registerComponent(\n new Component(\n `${library}-version` as Name,\n () => ({ library, version }),\n ComponentType.VERSION\n )\n );\n}\n\n/**\n * Sets log handler for all Firebase SDKs.\n * @param logCallback - An optional custom log handler that executes user code whenever\n * the Firebase SDK makes a logging call.\n *\n * @public\n */\nexport function onLog(\n logCallback: LogCallback | null,\n options?: LogOptions\n): void {\n if (logCallback !== null && typeof logCallback !== 'function') {\n throw ERROR_FACTORY.create(AppError.INVALID_LOG_ARGUMENT);\n }\n setUserLogHandler(logCallback, options);\n}\n\n/**\n * Sets log level for all Firebase SDKs.\n *\n * All of the log types above the current log level are captured (i.e. if\n * you set the log level to `info`, errors are logged, but `debug` and\n * `verbose` logs are not).\n *\n * @public\n */\nexport function setLogLevel(logLevel: LogLevelString): void {\n setLogLevelImpl(logLevel);\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\nimport { DBSchema, openDB, IDBPDatabase } from 'idb';\nimport { AppError, ERROR_FACTORY } from './errors';\nimport { FirebaseApp } from './public-types';\nimport { HeartbeatsInIndexedDB } from './types';\nimport { logger } from './logger';\n\nconst DB_NAME = 'firebase-heartbeat-database';\nconst DB_VERSION = 1;\nconst STORE_NAME = 'firebase-heartbeat-store';\n\ninterface AppDB extends DBSchema {\n 'firebase-heartbeat-store': {\n key: string;\n value: HeartbeatsInIndexedDB;\n };\n}\n\nlet dbPromise: Promise> | null = null;\nfunction getDbPromise(): Promise> {\n if (!dbPromise) {\n dbPromise = openDB(DB_NAME, DB_VERSION, {\n upgrade: (db, oldVersion) => {\n // We don't use 'break' in this switch statement, the fall-through\n // behavior is what we want, because if there are multiple versions between\n // the old version and the current version, we want ALL the migrations\n // that correspond to those versions to run, not only the last one.\n // eslint-disable-next-line default-case\n switch (oldVersion) {\n case 0:\n db.createObjectStore(STORE_NAME);\n }\n }\n }).catch(e => {\n throw ERROR_FACTORY.create(AppError.IDB_OPEN, {\n originalErrorMessage: e.message\n });\n });\n }\n return dbPromise;\n}\n\nexport async function readHeartbeatsFromIndexedDB(\n app: FirebaseApp\n): Promise {\n try {\n const db = await getDbPromise();\n const result = await db\n .transaction(STORE_NAME)\n .objectStore(STORE_NAME)\n .get(computeKey(app));\n return result;\n } catch (e) {\n if (e instanceof FirebaseError) {\n logger.warn(e.message);\n } else {\n const idbGetError = ERROR_FACTORY.create(AppError.IDB_GET, {\n originalErrorMessage: (e as Error)?.message\n });\n logger.warn(idbGetError.message);\n }\n }\n}\n\nexport async function writeHeartbeatsToIndexedDB(\n app: FirebaseApp,\n heartbeatObject: HeartbeatsInIndexedDB\n): Promise {\n try {\n const db = await getDbPromise();\n const tx = db.transaction(STORE_NAME, 'readwrite');\n const objectStore = tx.objectStore(STORE_NAME);\n await objectStore.put(heartbeatObject, computeKey(app));\n await tx.done;\n } catch (e) {\n if (e instanceof FirebaseError) {\n logger.warn(e.message);\n } else {\n const idbGetError = ERROR_FACTORY.create(AppError.IDB_WRITE, {\n originalErrorMessage: (e as Error)?.message\n });\n logger.warn(idbGetError.message);\n }\n }\n}\n\nfunction computeKey(app: FirebaseApp): string {\n return `${app.name}!${app.options.appId}`;\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentContainer } from '@firebase/component';\nimport {\n base64urlEncodeWithoutPadding,\n isIndexedDBAvailable,\n validateIndexedDBOpenable\n} from '@firebase/util';\nimport {\n readHeartbeatsFromIndexedDB,\n writeHeartbeatsToIndexedDB\n} from './indexeddb';\nimport { FirebaseApp } from './public-types';\nimport {\n HeartbeatsByUserAgent,\n HeartbeatService,\n HeartbeatsInIndexedDB,\n HeartbeatStorage,\n SingleDateHeartbeat\n} from './types';\n\nconst MAX_HEADER_BYTES = 1024;\n// 30 days\nconst STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1000;\n\nexport class HeartbeatServiceImpl implements HeartbeatService {\n /**\n * The persistence layer for heartbeats\n * Leave public for easier testing.\n */\n _storage: HeartbeatStorageImpl;\n\n /**\n * In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate\n * the header string.\n * Stores one record per date. This will be consolidated into the standard\n * format of one record per user agent string before being sent as a header.\n * Populated from indexedDB when the controller is instantiated and should\n * be kept in sync with indexedDB.\n * Leave public for easier testing.\n */\n _heartbeatsCache: HeartbeatsInIndexedDB | null = null;\n\n /**\n * the initialization promise for populating heartbeatCache.\n * If getHeartbeatsHeader() is called before the promise resolves\n * (hearbeatsCache == null), it should wait for this promise\n * Leave public for easier testing.\n */\n _heartbeatsCachePromise: Promise;\n constructor(private readonly container: ComponentContainer) {\n const app = this.container.getProvider('app').getImmediate();\n this._storage = new HeartbeatStorageImpl(app);\n this._heartbeatsCachePromise = this._storage.read().then(result => {\n this._heartbeatsCache = result;\n return result;\n });\n }\n\n /**\n * Called to report a heartbeat. The function will generate\n * a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it\n * to IndexedDB.\n * Note that we only store one heartbeat per day. So if a heartbeat for today is\n * already logged, subsequent calls to this function in the same day will be ignored.\n */\n async triggerHeartbeat(): Promise {\n const platformLogger = this.container\n .getProvider('platform-logger')\n .getImmediate();\n\n // This is the \"Firebase user agent\" string from the platform logger\n // service, not the browser user agent.\n const agent = platformLogger.getPlatformInfoString();\n const date = getUTCDateString();\n if (this._heartbeatsCache === null) {\n this._heartbeatsCache = await this._heartbeatsCachePromise;\n }\n // Do not store a heartbeat if one is already stored for this day\n // or if a header has already been sent today.\n if (\n this._heartbeatsCache.lastSentHeartbeatDate === date ||\n this._heartbeatsCache.heartbeats.some(\n singleDateHeartbeat => singleDateHeartbeat.date === date\n )\n ) {\n return;\n } else {\n // There is no entry for this date. Create one.\n this._heartbeatsCache.heartbeats.push({ date, agent });\n }\n // Remove entries older than 30 days.\n this._heartbeatsCache.heartbeats = this._heartbeatsCache.heartbeats.filter(\n singleDateHeartbeat => {\n const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf();\n const now = Date.now();\n return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS;\n }\n );\n return this._storage.overwrite(this._heartbeatsCache);\n }\n\n /**\n * Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.\n * It also clears all heartbeats from memory as well as in IndexedDB.\n *\n * NOTE: Consuming product SDKs should not send the header if this method\n * returns an empty string.\n */\n async getHeartbeatsHeader(): Promise {\n if (this._heartbeatsCache === null) {\n await this._heartbeatsCachePromise;\n }\n // If it's still null or the array is empty, there is no data to send.\n if (\n this._heartbeatsCache === null ||\n this._heartbeatsCache.heartbeats.length === 0\n ) {\n return '';\n }\n const date = getUTCDateString();\n // Extract as many heartbeats from the cache as will fit under the size limit.\n const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(\n this._heartbeatsCache.heartbeats\n );\n const headerString = base64urlEncodeWithoutPadding(\n JSON.stringify({ version: 2, heartbeats: heartbeatsToSend })\n );\n // Store last sent date to prevent another being logged/sent for the same day.\n this._heartbeatsCache.lastSentHeartbeatDate = date;\n if (unsentEntries.length > 0) {\n // Store any unsent entries if they exist.\n this._heartbeatsCache.heartbeats = unsentEntries;\n // This seems more likely than emptying the array (below) to lead to some odd state\n // since the cache isn't empty and this will be called again on the next request,\n // and is probably safest if we await it.\n await this._storage.overwrite(this._heartbeatsCache);\n } else {\n this._heartbeatsCache.heartbeats = [];\n // Do not wait for this, to reduce latency.\n void this._storage.overwrite(this._heartbeatsCache);\n }\n return headerString;\n }\n}\n\nfunction getUTCDateString(): string {\n const today = new Date();\n // Returns date format 'YYYY-MM-DD'\n return today.toISOString().substring(0, 10);\n}\n\nexport function extractHeartbeatsForHeader(\n heartbeatsCache: SingleDateHeartbeat[],\n maxSize = MAX_HEADER_BYTES\n): {\n heartbeatsToSend: HeartbeatsByUserAgent[];\n unsentEntries: SingleDateHeartbeat[];\n} {\n // Heartbeats grouped by user agent in the standard format to be sent in\n // the header.\n const heartbeatsToSend: HeartbeatsByUserAgent[] = [];\n // Single date format heartbeats that are not sent.\n let unsentEntries = heartbeatsCache.slice();\n for (const singleDateHeartbeat of heartbeatsCache) {\n // Look for an existing entry with the same user agent.\n const heartbeatEntry = heartbeatsToSend.find(\n hb => hb.agent === singleDateHeartbeat.agent\n );\n if (!heartbeatEntry) {\n // If no entry for this user agent exists, create one.\n heartbeatsToSend.push({\n agent: singleDateHeartbeat.agent,\n dates: [singleDateHeartbeat.date]\n });\n if (countBytes(heartbeatsToSend) > maxSize) {\n // If the header would exceed max size, remove the added heartbeat\n // entry and stop adding to the header.\n heartbeatsToSend.pop();\n break;\n }\n } else {\n heartbeatEntry.dates.push(singleDateHeartbeat.date);\n // If the header would exceed max size, remove the added date\n // and stop adding to the header.\n if (countBytes(heartbeatsToSend) > maxSize) {\n heartbeatEntry.dates.pop();\n break;\n }\n }\n // Pop unsent entry from queue. (Skipped if adding the entry exceeded\n // quota and the loop breaks early.)\n unsentEntries = unsentEntries.slice(1);\n }\n return {\n heartbeatsToSend,\n unsentEntries\n };\n}\n\nexport class HeartbeatStorageImpl implements HeartbeatStorage {\n private _canUseIndexedDBPromise: Promise;\n constructor(public app: FirebaseApp) {\n this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck();\n }\n async runIndexedDBEnvironmentCheck(): Promise {\n if (!isIndexedDBAvailable()) {\n return false;\n } else {\n return validateIndexedDBOpenable()\n .then(() => true)\n .catch(() => false);\n }\n }\n /**\n * Read all heartbeats.\n */\n async read(): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return { heartbeats: [] };\n } else {\n const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app);\n return idbHeartbeatObject || { heartbeats: [] };\n }\n }\n // overwrite the storage with the provided heartbeats\n async overwrite(heartbeatsObject: HeartbeatsInIndexedDB): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return;\n } else {\n const existingHeartbeatsObject = await this.read();\n return writeHeartbeatsToIndexedDB(this.app, {\n lastSentHeartbeatDate:\n heartbeatsObject.lastSentHeartbeatDate ??\n existingHeartbeatsObject.lastSentHeartbeatDate,\n heartbeats: heartbeatsObject.heartbeats\n });\n }\n }\n // add heartbeats\n async add(heartbeatsObject: HeartbeatsInIndexedDB): Promise {\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\n if (!canUseIndexedDB) {\n return;\n } else {\n const existingHeartbeatsObject = await this.read();\n return writeHeartbeatsToIndexedDB(this.app, {\n lastSentHeartbeatDate:\n heartbeatsObject.lastSentHeartbeatDate ??\n existingHeartbeatsObject.lastSentHeartbeatDate,\n heartbeats: [\n ...existingHeartbeatsObject.heartbeats,\n ...heartbeatsObject.heartbeats\n ]\n });\n }\n }\n}\n\n/**\n * Calculate bytes of a HeartbeatsByUserAgent array after being wrapped\n * in a platform logging header JSON object, stringified, and converted\n * to base 64.\n */\nexport function countBytes(heartbeatsCache: HeartbeatsByUserAgent[]): number {\n // base64 has a restricted set of characters, all of which should be 1 byte.\n return base64urlEncodeWithoutPadding(\n // heartbeatsCache wrapper properties\n JSON.stringify({ version: 2, heartbeats: heartbeatsCache })\n ).length;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, ComponentType } from '@firebase/component';\nimport { PlatformLoggerServiceImpl } from './platformLoggerService';\nimport { name, version } from '../package.json';\nimport { _registerComponent } from './internal';\nimport { registerVersion } from './api';\nimport { HeartbeatServiceImpl } from './heartbeatService';\n\nexport function registerCoreComponents(variant?: string): void {\n _registerComponent(\n new Component(\n 'platform-logger',\n container => new PlatformLoggerServiceImpl(container),\n ComponentType.PRIVATE\n )\n );\n _registerComponent(\n new Component(\n 'heartbeat',\n container => new HeartbeatServiceImpl(container),\n ComponentType.PRIVATE\n )\n );\n\n // Register `app` package.\n registerVersion(name, version, variant);\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\n registerVersion(name, version, '__BUILD_TARGET__');\n // Register platform SDK identifier (no version).\n registerVersion('fire-js', '');\n}\n","/**\n * Firebase App\n *\n * @remarks This package coordinates the communication between the different Firebase components\n * @packageDocumentation\n */\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { registerCoreComponents } from './registerCoreComponents';\n\nexport * from './api';\nexport * from './internal';\nexport * from './public-types';\n\nregisterCoreComponents('__RUNTIME_ENV__');\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar 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\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(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}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(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}\n\nexport function __generator(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 (g && (g = 0, op[0] && (_ = 0)), _) 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}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, 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}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), 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}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * An enum of factors that may be used for multifactor authentication.\n *\n * @public\n */\nexport const FactorId = {\n /** Phone as second factor */\n PHONE: 'phone',\n TOTP: 'totp'\n} as const;\n\n/**\n * Enumeration of supported providers.\n *\n * @public\n */\nexport const ProviderId = {\n /** Facebook provider ID */\n FACEBOOK: 'facebook.com',\n /** GitHub provider ID */\n GITHUB: 'github.com',\n /** Google provider ID */\n GOOGLE: 'google.com',\n /** Password provider */\n PASSWORD: 'password',\n /** Phone provider */\n PHONE: 'phone',\n /** Twitter provider ID */\n TWITTER: 'twitter.com'\n} as const;\n\n/**\n * Enumeration of supported sign-in methods.\n *\n * @public\n */\nexport const SignInMethod = {\n /** Email link sign in method */\n EMAIL_LINK: 'emailLink',\n /** Email/password sign in method */\n EMAIL_PASSWORD: 'password',\n /** Facebook sign in method */\n FACEBOOK: 'facebook.com',\n /** GitHub sign in method */\n GITHUB: 'github.com',\n /** Google sign in method */\n GOOGLE: 'google.com',\n /** Phone sign in method */\n PHONE: 'phone',\n /** Twitter sign in method */\n TWITTER: 'twitter.com'\n} as const;\n\n/**\n * Enumeration of supported operation types.\n *\n * @public\n */\nexport const OperationType = {\n /** Operation involving linking an additional provider to an already signed-in user. */\n LINK: 'link',\n /** Operation involving using a provider to reauthenticate an already signed-in user. */\n REAUTHENTICATE: 'reauthenticate',\n /** Operation involving signing in a user. */\n SIGN_IN: 'signIn'\n} as const;\n\n/**\n * An enumeration of the possible email action types.\n *\n * @public\n */\nexport const ActionCodeOperation = {\n /** The email link sign-in action. */\n EMAIL_SIGNIN: 'EMAIL_SIGNIN',\n /** The password reset action. */\n PASSWORD_RESET: 'PASSWORD_RESET',\n /** The email revocation action. */\n RECOVER_EMAIL: 'RECOVER_EMAIL',\n /** The revert second factor addition email action. */\n REVERT_SECOND_FACTOR_ADDITION: 'REVERT_SECOND_FACTOR_ADDITION',\n /** The revert second factor addition email action. */\n VERIFY_AND_CHANGE_EMAIL: 'VERIFY_AND_CHANGE_EMAIL',\n /** The email verification action. */\n VERIFY_EMAIL: 'VERIFY_EMAIL'\n} as const;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorMap, User } from '../model/public_types';\nimport { ErrorFactory, ErrorMap } from '@firebase/util';\n\nimport { IdTokenMfaResponse } from '../api/authentication/mfa';\nimport { AppName } from '../model/auth';\nimport { AuthCredential } from './credentials';\n\n/**\n * Enumeration of Firebase Auth error codes.\n *\n * @internal\n */\nexport const enum AuthErrorCode {\n ADMIN_ONLY_OPERATION = 'admin-restricted-operation',\n ARGUMENT_ERROR = 'argument-error',\n APP_NOT_AUTHORIZED = 'app-not-authorized',\n APP_NOT_INSTALLED = 'app-not-installed',\n CAPTCHA_CHECK_FAILED = 'captcha-check-failed',\n CODE_EXPIRED = 'code-expired',\n CORDOVA_NOT_READY = 'cordova-not-ready',\n CORS_UNSUPPORTED = 'cors-unsupported',\n CREDENTIAL_ALREADY_IN_USE = 'credential-already-in-use',\n CREDENTIAL_MISMATCH = 'custom-token-mismatch',\n CREDENTIAL_TOO_OLD_LOGIN_AGAIN = 'requires-recent-login',\n DEPENDENT_SDK_INIT_BEFORE_AUTH = 'dependent-sdk-initialized-before-auth',\n DYNAMIC_LINK_NOT_ACTIVATED = 'dynamic-link-not-activated',\n EMAIL_CHANGE_NEEDS_VERIFICATION = 'email-change-needs-verification',\n EMAIL_EXISTS = 'email-already-in-use',\n EMULATOR_CONFIG_FAILED = 'emulator-config-failed',\n EXPIRED_OOB_CODE = 'expired-action-code',\n EXPIRED_POPUP_REQUEST = 'cancelled-popup-request',\n INTERNAL_ERROR = 'internal-error',\n INVALID_API_KEY = 'invalid-api-key',\n INVALID_APP_CREDENTIAL = 'invalid-app-credential',\n INVALID_APP_ID = 'invalid-app-id',\n INVALID_AUTH = 'invalid-user-token',\n INVALID_AUTH_EVENT = 'invalid-auth-event',\n INVALID_CERT_HASH = 'invalid-cert-hash',\n INVALID_CODE = 'invalid-verification-code',\n INVALID_CONTINUE_URI = 'invalid-continue-uri',\n INVALID_CORDOVA_CONFIGURATION = 'invalid-cordova-configuration',\n INVALID_CUSTOM_TOKEN = 'invalid-custom-token',\n INVALID_DYNAMIC_LINK_DOMAIN = 'invalid-dynamic-link-domain',\n INVALID_EMAIL = 'invalid-email',\n INVALID_EMULATOR_SCHEME = 'invalid-emulator-scheme',\n INVALID_IDP_RESPONSE = 'invalid-credential',\n INVALID_MESSAGE_PAYLOAD = 'invalid-message-payload',\n INVALID_MFA_SESSION = 'invalid-multi-factor-session',\n INVALID_OAUTH_CLIENT_ID = 'invalid-oauth-client-id',\n INVALID_OAUTH_PROVIDER = 'invalid-oauth-provider',\n INVALID_OOB_CODE = 'invalid-action-code',\n INVALID_ORIGIN = 'unauthorized-domain',\n INVALID_PASSWORD = 'wrong-password',\n INVALID_PERSISTENCE = 'invalid-persistence-type',\n INVALID_PHONE_NUMBER = 'invalid-phone-number',\n INVALID_PROVIDER_ID = 'invalid-provider-id',\n INVALID_RECIPIENT_EMAIL = 'invalid-recipient-email',\n INVALID_SENDER = 'invalid-sender',\n INVALID_SESSION_INFO = 'invalid-verification-id',\n INVALID_TENANT_ID = 'invalid-tenant-id',\n LOGIN_BLOCKED = 'login-blocked',\n MFA_INFO_NOT_FOUND = 'multi-factor-info-not-found',\n MFA_REQUIRED = 'multi-factor-auth-required',\n MISSING_ANDROID_PACKAGE_NAME = 'missing-android-pkg-name',\n MISSING_APP_CREDENTIAL = 'missing-app-credential',\n MISSING_AUTH_DOMAIN = 'auth-domain-config-required',\n MISSING_CODE = 'missing-verification-code',\n MISSING_CONTINUE_URI = 'missing-continue-uri',\n MISSING_IFRAME_START = 'missing-iframe-start',\n MISSING_IOS_BUNDLE_ID = 'missing-ios-bundle-id',\n MISSING_OR_INVALID_NONCE = 'missing-or-invalid-nonce',\n MISSING_MFA_INFO = 'missing-multi-factor-info',\n MISSING_MFA_SESSION = 'missing-multi-factor-session',\n MISSING_PHONE_NUMBER = 'missing-phone-number',\n MISSING_PASSWORD = 'missing-password',\n MISSING_SESSION_INFO = 'missing-verification-id',\n MODULE_DESTROYED = 'app-deleted',\n NEED_CONFIRMATION = 'account-exists-with-different-credential',\n NETWORK_REQUEST_FAILED = 'network-request-failed',\n NULL_USER = 'null-user',\n NO_AUTH_EVENT = 'no-auth-event',\n NO_SUCH_PROVIDER = 'no-such-provider',\n OPERATION_NOT_ALLOWED = 'operation-not-allowed',\n OPERATION_NOT_SUPPORTED = 'operation-not-supported-in-this-environment',\n POPUP_BLOCKED = 'popup-blocked',\n POPUP_CLOSED_BY_USER = 'popup-closed-by-user',\n PROVIDER_ALREADY_LINKED = 'provider-already-linked',\n QUOTA_EXCEEDED = 'quota-exceeded',\n REDIRECT_CANCELLED_BY_USER = 'redirect-cancelled-by-user',\n REDIRECT_OPERATION_PENDING = 'redirect-operation-pending',\n REJECTED_CREDENTIAL = 'rejected-credential',\n SECOND_FACTOR_ALREADY_ENROLLED = 'second-factor-already-in-use',\n SECOND_FACTOR_LIMIT_EXCEEDED = 'maximum-second-factor-count-exceeded',\n TENANT_ID_MISMATCH = 'tenant-id-mismatch',\n TIMEOUT = 'timeout',\n TOKEN_EXPIRED = 'user-token-expired',\n TOO_MANY_ATTEMPTS_TRY_LATER = 'too-many-requests',\n UNAUTHORIZED_DOMAIN = 'unauthorized-continue-uri',\n UNSUPPORTED_FIRST_FACTOR = 'unsupported-first-factor',\n UNSUPPORTED_PERSISTENCE = 'unsupported-persistence-type',\n UNSUPPORTED_TENANT_OPERATION = 'unsupported-tenant-operation',\n UNVERIFIED_EMAIL = 'unverified-email',\n USER_CANCELLED = 'user-cancelled',\n USER_DELETED = 'user-not-found',\n USER_DISABLED = 'user-disabled',\n USER_MISMATCH = 'user-mismatch',\n USER_SIGNED_OUT = 'user-signed-out',\n WEAK_PASSWORD = 'weak-password',\n WEB_STORAGE_UNSUPPORTED = 'web-storage-unsupported',\n ALREADY_INITIALIZED = 'already-initialized',\n RECAPTCHA_NOT_ENABLED = 'recaptcha-not-enabled',\n MISSING_RECAPTCHA_TOKEN = 'missing-recaptcha-token',\n INVALID_RECAPTCHA_TOKEN = 'invalid-recaptcha-token',\n INVALID_RECAPTCHA_ACTION = 'invalid-recaptcha-action',\n MISSING_CLIENT_TYPE = 'missing-client-type',\n MISSING_RECAPTCHA_VERSION = 'missing-recaptcha-version',\n INVALID_RECAPTCHA_VERSION = 'invalid-recaptcha-version',\n INVALID_REQ_TYPE = 'invalid-req-type'\n}\n\nfunction _debugErrorMap(): ErrorMap {\n return {\n [AuthErrorCode.ADMIN_ONLY_OPERATION]:\n 'This operation is restricted to administrators only.',\n [AuthErrorCode.ARGUMENT_ERROR]: '',\n [AuthErrorCode.APP_NOT_AUTHORIZED]:\n \"This app, identified by the domain where it's hosted, is not \" +\n 'authorized to use Firebase Authentication with the provided API key. ' +\n 'Review your key configuration in the Google API console.',\n [AuthErrorCode.APP_NOT_INSTALLED]:\n 'The requested mobile application corresponding to the identifier (' +\n 'Android package name or iOS bundle ID) provided is not installed on ' +\n 'this device.',\n [AuthErrorCode.CAPTCHA_CHECK_FAILED]:\n 'The reCAPTCHA response token provided is either invalid, expired, ' +\n 'already used or the domain associated with it does not match the list ' +\n 'of whitelisted domains.',\n [AuthErrorCode.CODE_EXPIRED]:\n 'The SMS code has expired. Please re-send the verification code to try ' +\n 'again.',\n [AuthErrorCode.CORDOVA_NOT_READY]: 'Cordova framework is not ready.',\n [AuthErrorCode.CORS_UNSUPPORTED]: 'This browser is not supported.',\n [AuthErrorCode.CREDENTIAL_ALREADY_IN_USE]:\n 'This credential is already associated with a different user account.',\n [AuthErrorCode.CREDENTIAL_MISMATCH]:\n 'The custom token corresponds to a different audience.',\n [AuthErrorCode.CREDENTIAL_TOO_OLD_LOGIN_AGAIN]:\n 'This operation is sensitive and requires recent authentication. Log in ' +\n 'again before retrying this request.',\n [AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH]:\n 'Another Firebase SDK was initialized and is trying to use Auth before Auth is ' +\n 'initialized. Please be sure to call `initializeAuth` or `getAuth` before ' +\n 'starting any other Firebase SDK.',\n [AuthErrorCode.DYNAMIC_LINK_NOT_ACTIVATED]:\n 'Please activate Dynamic Links in the Firebase Console and agree to the terms and ' +\n 'conditions.',\n [AuthErrorCode.EMAIL_CHANGE_NEEDS_VERIFICATION]:\n 'Multi-factor users must always have a verified email.',\n [AuthErrorCode.EMAIL_EXISTS]:\n 'The email address is already in use by another account.',\n [AuthErrorCode.EMULATOR_CONFIG_FAILED]:\n 'Auth instance has already been used to make a network call. Auth can ' +\n 'no longer be configured to use the emulator. Try calling ' +\n '\"connectAuthEmulator()\" sooner.',\n [AuthErrorCode.EXPIRED_OOB_CODE]: 'The action code has expired.',\n [AuthErrorCode.EXPIRED_POPUP_REQUEST]:\n 'This operation has been cancelled due to another conflicting popup being opened.',\n [AuthErrorCode.INTERNAL_ERROR]: 'An internal AuthError has occurred.',\n [AuthErrorCode.INVALID_APP_CREDENTIAL]:\n 'The phone verification request contains an invalid application verifier.' +\n ' The reCAPTCHA token response is either invalid or expired.',\n [AuthErrorCode.INVALID_APP_ID]:\n 'The mobile app identifier is not registed for the current project.',\n [AuthErrorCode.INVALID_AUTH]:\n \"This user's credential isn't valid for this project. This can happen \" +\n \"if the user's token has been tampered with, or if the user isn't for \" +\n 'the project associated with this API key.',\n [AuthErrorCode.INVALID_AUTH_EVENT]: 'An internal AuthError has occurred.',\n [AuthErrorCode.INVALID_CODE]:\n 'The SMS verification code used to create the phone auth credential is ' +\n 'invalid. Please resend the verification code sms and be sure to use the ' +\n 'verification code provided by the user.',\n [AuthErrorCode.INVALID_CONTINUE_URI]:\n 'The continue URL provided in the request is invalid.',\n [AuthErrorCode.INVALID_CORDOVA_CONFIGURATION]:\n 'The following Cordova plugins must be installed to enable OAuth sign-in: ' +\n 'cordova-plugin-buildinfo, cordova-universal-links-plugin, ' +\n 'cordova-plugin-browsertab, cordova-plugin-inappbrowser and ' +\n 'cordova-plugin-customurlscheme.',\n [AuthErrorCode.INVALID_CUSTOM_TOKEN]:\n 'The custom token format is incorrect. Please check the documentation.',\n [AuthErrorCode.INVALID_DYNAMIC_LINK_DOMAIN]:\n 'The provided dynamic link domain is not configured or authorized for the current project.',\n [AuthErrorCode.INVALID_EMAIL]: 'The email address is badly formatted.',\n [AuthErrorCode.INVALID_EMULATOR_SCHEME]:\n 'Emulator URL must start with a valid scheme (http:// or https://).',\n [AuthErrorCode.INVALID_API_KEY]:\n 'Your API key is invalid, please check you have copied it correctly.',\n [AuthErrorCode.INVALID_CERT_HASH]:\n 'The SHA-1 certificate hash provided is invalid.',\n [AuthErrorCode.INVALID_IDP_RESPONSE]:\n 'The supplied auth credential is malformed or has expired.',\n [AuthErrorCode.INVALID_MESSAGE_PAYLOAD]:\n 'The email template corresponding to this action contains invalid characters in its message. ' +\n 'Please fix by going to the Auth email templates section in the Firebase Console.',\n [AuthErrorCode.INVALID_MFA_SESSION]:\n 'The request does not contain a valid proof of first factor successful sign-in.',\n [AuthErrorCode.INVALID_OAUTH_PROVIDER]:\n 'EmailAuthProvider is not supported for this operation. This operation ' +\n 'only supports OAuth providers.',\n [AuthErrorCode.INVALID_OAUTH_CLIENT_ID]:\n 'The OAuth client ID provided is either invalid or does not match the ' +\n 'specified API key.',\n [AuthErrorCode.INVALID_ORIGIN]:\n 'This domain is not authorized for OAuth operations for your Firebase ' +\n 'project. Edit the list of authorized domains from the Firebase console.',\n [AuthErrorCode.INVALID_OOB_CODE]:\n 'The action code is invalid. This can happen if the code is malformed, ' +\n 'expired, or has already been used.',\n [AuthErrorCode.INVALID_PASSWORD]:\n 'The password is invalid or the user does not have a password.',\n [AuthErrorCode.INVALID_PERSISTENCE]:\n 'The specified persistence type is invalid. It can only be local, session or none.',\n [AuthErrorCode.INVALID_PHONE_NUMBER]:\n 'The format of the phone number provided is incorrect. Please enter the ' +\n 'phone number in a format that can be parsed into E.164 format. E.164 ' +\n 'phone numbers are written in the format [+][country code][subscriber ' +\n 'number including area code].',\n [AuthErrorCode.INVALID_PROVIDER_ID]:\n 'The specified provider ID is invalid.',\n [AuthErrorCode.INVALID_RECIPIENT_EMAIL]:\n 'The email corresponding to this action failed to send as the provided ' +\n 'recipient email address is invalid.',\n [AuthErrorCode.INVALID_SENDER]:\n 'The email template corresponding to this action contains an invalid sender email or name. ' +\n 'Please fix by going to the Auth email templates section in the Firebase Console.',\n [AuthErrorCode.INVALID_SESSION_INFO]:\n 'The verification ID used to create the phone auth credential is invalid.',\n [AuthErrorCode.INVALID_TENANT_ID]:\n \"The Auth instance's tenant ID is invalid.\",\n [AuthErrorCode.LOGIN_BLOCKED]:\n 'Login blocked by user-provided method: {$originalMessage}',\n [AuthErrorCode.MISSING_ANDROID_PACKAGE_NAME]:\n 'An Android Package Name must be provided if the Android App is required to be installed.',\n [AuthErrorCode.MISSING_AUTH_DOMAIN]:\n 'Be sure to include authDomain when calling firebase.initializeApp(), ' +\n 'by following the instructions in the Firebase console.',\n [AuthErrorCode.MISSING_APP_CREDENTIAL]:\n 'The phone verification request is missing an application verifier ' +\n 'assertion. A reCAPTCHA response token needs to be provided.',\n [AuthErrorCode.MISSING_CODE]:\n 'The phone auth credential was created with an empty SMS verification code.',\n [AuthErrorCode.MISSING_CONTINUE_URI]:\n 'A continue URL must be provided in the request.',\n [AuthErrorCode.MISSING_IFRAME_START]: 'An internal AuthError has occurred.',\n [AuthErrorCode.MISSING_IOS_BUNDLE_ID]:\n 'An iOS Bundle ID must be provided if an App Store ID is provided.',\n [AuthErrorCode.MISSING_OR_INVALID_NONCE]:\n 'The request does not contain a valid nonce. This can occur if the ' +\n 'SHA-256 hash of the provided raw nonce does not match the hashed nonce ' +\n 'in the ID token payload.',\n [AuthErrorCode.MISSING_PASSWORD]: 'A non-empty password must be provided',\n [AuthErrorCode.MISSING_MFA_INFO]:\n 'No second factor identifier is provided.',\n [AuthErrorCode.MISSING_MFA_SESSION]:\n 'The request is missing proof of first factor successful sign-in.',\n [AuthErrorCode.MISSING_PHONE_NUMBER]:\n 'To send verification codes, provide a phone number for the recipient.',\n [AuthErrorCode.MISSING_SESSION_INFO]:\n 'The phone auth credential was created with an empty verification ID.',\n [AuthErrorCode.MODULE_DESTROYED]:\n 'This instance of FirebaseApp has been deleted.',\n [AuthErrorCode.MFA_INFO_NOT_FOUND]:\n 'The user does not have a second factor matching the identifier provided.',\n [AuthErrorCode.MFA_REQUIRED]:\n 'Proof of ownership of a second factor is required to complete sign-in.',\n [AuthErrorCode.NEED_CONFIRMATION]:\n 'An account already exists with the same email address but different ' +\n 'sign-in credentials. Sign in using a provider associated with this ' +\n 'email address.',\n [AuthErrorCode.NETWORK_REQUEST_FAILED]:\n 'A network AuthError (such as timeout, interrupted connection or unreachable host) has occurred.',\n [AuthErrorCode.NO_AUTH_EVENT]: 'An internal AuthError has occurred.',\n [AuthErrorCode.NO_SUCH_PROVIDER]:\n 'User was not linked to an account with the given provider.',\n [AuthErrorCode.NULL_USER]:\n 'A null user object was provided as the argument for an operation which ' +\n 'requires a non-null user object.',\n [AuthErrorCode.OPERATION_NOT_ALLOWED]:\n 'The given sign-in provider is disabled for this Firebase project. ' +\n 'Enable it in the Firebase console, under the sign-in method tab of the ' +\n 'Auth section.',\n [AuthErrorCode.OPERATION_NOT_SUPPORTED]:\n 'This operation is not supported in the environment this application is ' +\n 'running on. \"location.protocol\" must be http, https or chrome-extension' +\n ' and web storage must be enabled.',\n [AuthErrorCode.POPUP_BLOCKED]:\n 'Unable to establish a connection with the popup. It may have been blocked by the browser.',\n [AuthErrorCode.POPUP_CLOSED_BY_USER]:\n 'The popup has been closed by the user before finalizing the operation.',\n [AuthErrorCode.PROVIDER_ALREADY_LINKED]:\n 'User can only be linked to one identity for the given provider.',\n [AuthErrorCode.QUOTA_EXCEEDED]:\n \"The project's quota for this operation has been exceeded.\",\n [AuthErrorCode.REDIRECT_CANCELLED_BY_USER]:\n 'The redirect operation has been cancelled by the user before finalizing.',\n [AuthErrorCode.REDIRECT_OPERATION_PENDING]:\n 'A redirect sign-in operation is already pending.',\n [AuthErrorCode.REJECTED_CREDENTIAL]:\n 'The request contains malformed or mismatching credentials.',\n [AuthErrorCode.SECOND_FACTOR_ALREADY_ENROLLED]:\n 'The second factor is already enrolled on this account.',\n [AuthErrorCode.SECOND_FACTOR_LIMIT_EXCEEDED]:\n 'The maximum allowed number of second factors on a user has been exceeded.',\n [AuthErrorCode.TENANT_ID_MISMATCH]:\n \"The provided tenant ID does not match the Auth instance's tenant ID\",\n [AuthErrorCode.TIMEOUT]: 'The operation has timed out.',\n [AuthErrorCode.TOKEN_EXPIRED]:\n \"The user's credential is no longer valid. The user must sign in again.\",\n [AuthErrorCode.TOO_MANY_ATTEMPTS_TRY_LATER]:\n 'We have blocked all requests from this device due to unusual activity. ' +\n 'Try again later.',\n [AuthErrorCode.UNAUTHORIZED_DOMAIN]:\n 'The domain of the continue URL is not whitelisted. Please whitelist ' +\n 'the domain in the Firebase console.',\n [AuthErrorCode.UNSUPPORTED_FIRST_FACTOR]:\n 'Enrolling a second factor or signing in with a multi-factor account requires sign-in with a supported first factor.',\n [AuthErrorCode.UNSUPPORTED_PERSISTENCE]:\n 'The current environment does not support the specified persistence type.',\n [AuthErrorCode.UNSUPPORTED_TENANT_OPERATION]:\n 'This operation is not supported in a multi-tenant context.',\n [AuthErrorCode.UNVERIFIED_EMAIL]:\n 'The operation requires a verified email.',\n [AuthErrorCode.USER_CANCELLED]:\n 'The user did not grant your application the permissions it requested.',\n [AuthErrorCode.USER_DELETED]:\n 'There is no user record corresponding to this identifier. The user may ' +\n 'have been deleted.',\n [AuthErrorCode.USER_DISABLED]:\n 'The user account has been disabled by an administrator.',\n [AuthErrorCode.USER_MISMATCH]:\n 'The supplied credentials do not correspond to the previously signed in user.',\n [AuthErrorCode.USER_SIGNED_OUT]: '',\n [AuthErrorCode.WEAK_PASSWORD]:\n 'The password must be 6 characters long or more.',\n [AuthErrorCode.WEB_STORAGE_UNSUPPORTED]:\n 'This browser is not supported or 3rd party cookies and data may be disabled.',\n [AuthErrorCode.ALREADY_INITIALIZED]:\n 'initializeAuth() has already been called with ' +\n 'different options. To avoid this error, call initializeAuth() with the ' +\n 'same options as when it was originally called, or call getAuth() to return the' +\n ' already initialized instance.',\n [AuthErrorCode.MISSING_RECAPTCHA_TOKEN]:\n 'The reCAPTCHA token is missing when sending request to the backend.',\n [AuthErrorCode.INVALID_RECAPTCHA_TOKEN]:\n 'The reCAPTCHA token is invalid when sending request to the backend.',\n [AuthErrorCode.INVALID_RECAPTCHA_ACTION]:\n 'The reCAPTCHA action is invalid when sending request to the backend.',\n [AuthErrorCode.RECAPTCHA_NOT_ENABLED]:\n 'reCAPTCHA Enterprise integration is not enabled for this project.',\n [AuthErrorCode.MISSING_CLIENT_TYPE]:\n 'The reCAPTCHA client type is missing when sending request to the backend.',\n [AuthErrorCode.MISSING_RECAPTCHA_VERSION]:\n 'The reCAPTCHA version is missing when sending request to the backend.',\n [AuthErrorCode.INVALID_REQ_TYPE]: 'Invalid request parameters.',\n [AuthErrorCode.INVALID_RECAPTCHA_VERSION]:\n 'The reCAPTCHA version is invalid when sending request to the backend.'\n };\n}\n\nexport interface ErrorMapRetriever extends AuthErrorMap {\n (): ErrorMap;\n}\n\nfunction _prodErrorMap(): ErrorMap {\n // We will include this one message in the prod error map since by the very\n // nature of this error, developers will never be able to see the message\n // using the debugErrorMap (which is installed during auth initialization).\n return {\n [AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH]:\n 'Another Firebase SDK was initialized and is trying to use Auth before Auth is ' +\n 'initialized. Please be sure to call `initializeAuth` or `getAuth` before ' +\n 'starting any other Firebase SDK.'\n } as ErrorMap;\n}\n\n/**\n * A verbose error map with detailed descriptions for most error codes.\n *\n * See discussion at {@link AuthErrorMap}\n *\n * @public\n */\nexport const debugErrorMap: AuthErrorMap = _debugErrorMap;\n\n/**\n * A minimal error map with all verbose error messages stripped.\n *\n * See discussion at {@link AuthErrorMap}\n *\n * @public\n */\nexport const prodErrorMap: AuthErrorMap = _prodErrorMap;\n\nexport interface NamedErrorParams {\n appName: AppName;\n credential?: AuthCredential;\n email?: string;\n phoneNumber?: string;\n tenantId?: string;\n user?: User;\n _serverResponse?: object;\n}\n\n/**\n * @internal\n */\ntype GenericAuthErrorParams = {\n [key in Exclude<\n AuthErrorCode,\n | AuthErrorCode.ARGUMENT_ERROR\n | AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH\n | AuthErrorCode.INTERNAL_ERROR\n | AuthErrorCode.MFA_REQUIRED\n | AuthErrorCode.NO_AUTH_EVENT\n | AuthErrorCode.OPERATION_NOT_SUPPORTED\n >]: {\n appName?: AppName;\n email?: string;\n phoneNumber?: string;\n message?: string;\n };\n};\n\n/**\n * @internal\n */\nexport interface AuthErrorParams extends GenericAuthErrorParams {\n [AuthErrorCode.ARGUMENT_ERROR]: { appName?: AppName };\n [AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH]: { appName?: AppName };\n [AuthErrorCode.INTERNAL_ERROR]: { appName?: AppName };\n [AuthErrorCode.LOGIN_BLOCKED]: {\n appName?: AppName;\n originalMessage?: string;\n };\n [AuthErrorCode.OPERATION_NOT_SUPPORTED]: { appName?: AppName };\n [AuthErrorCode.NO_AUTH_EVENT]: { appName?: AppName };\n [AuthErrorCode.MFA_REQUIRED]: {\n appName: AppName;\n _serverResponse: IdTokenMfaResponse;\n };\n [AuthErrorCode.INVALID_CORDOVA_CONFIGURATION]: {\n appName: AppName;\n missingPlugin?: string;\n };\n}\n\nexport const _DEFAULT_AUTH_ERROR_FACTORY = new ErrorFactory<\n AuthErrorCode,\n AuthErrorParams\n>('auth', 'Firebase', _prodErrorMap());\n\n/**\n * A map of potential `Auth` error codes, for easier comparison with errors\n * thrown by the SDK.\n *\n * @remarks\n * Note that you can't tree-shake individual keys\n * in the map, so by using the map you might substantially increase your\n * bundle size.\n *\n * @public\n */\nexport const AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY = {\n ADMIN_ONLY_OPERATION: 'auth/admin-restricted-operation',\n ARGUMENT_ERROR: 'auth/argument-error',\n APP_NOT_AUTHORIZED: 'auth/app-not-authorized',\n APP_NOT_INSTALLED: 'auth/app-not-installed',\n CAPTCHA_CHECK_FAILED: 'auth/captcha-check-failed',\n CODE_EXPIRED: 'auth/code-expired',\n CORDOVA_NOT_READY: 'auth/cordova-not-ready',\n CORS_UNSUPPORTED: 'auth/cors-unsupported',\n CREDENTIAL_ALREADY_IN_USE: 'auth/credential-already-in-use',\n CREDENTIAL_MISMATCH: 'auth/custom-token-mismatch',\n CREDENTIAL_TOO_OLD_LOGIN_AGAIN: 'auth/requires-recent-login',\n DEPENDENT_SDK_INIT_BEFORE_AUTH: 'auth/dependent-sdk-initialized-before-auth',\n DYNAMIC_LINK_NOT_ACTIVATED: 'auth/dynamic-link-not-activated',\n EMAIL_CHANGE_NEEDS_VERIFICATION: 'auth/email-change-needs-verification',\n EMAIL_EXISTS: 'auth/email-already-in-use',\n EMULATOR_CONFIG_FAILED: 'auth/emulator-config-failed',\n EXPIRED_OOB_CODE: 'auth/expired-action-code',\n EXPIRED_POPUP_REQUEST: 'auth/cancelled-popup-request',\n INTERNAL_ERROR: 'auth/internal-error',\n INVALID_API_KEY: 'auth/invalid-api-key',\n INVALID_APP_CREDENTIAL: 'auth/invalid-app-credential',\n INVALID_APP_ID: 'auth/invalid-app-id',\n INVALID_AUTH: 'auth/invalid-user-token',\n INVALID_AUTH_EVENT: 'auth/invalid-auth-event',\n INVALID_CERT_HASH: 'auth/invalid-cert-hash',\n INVALID_CODE: 'auth/invalid-verification-code',\n INVALID_CONTINUE_URI: 'auth/invalid-continue-uri',\n INVALID_CORDOVA_CONFIGURATION: 'auth/invalid-cordova-configuration',\n INVALID_CUSTOM_TOKEN: 'auth/invalid-custom-token',\n INVALID_DYNAMIC_LINK_DOMAIN: 'auth/invalid-dynamic-link-domain',\n INVALID_EMAIL: 'auth/invalid-email',\n INVALID_EMULATOR_SCHEME: 'auth/invalid-emulator-scheme',\n INVALID_IDP_RESPONSE: 'auth/invalid-credential',\n INVALID_MESSAGE_PAYLOAD: 'auth/invalid-message-payload',\n INVALID_MFA_SESSION: 'auth/invalid-multi-factor-session',\n INVALID_OAUTH_CLIENT_ID: 'auth/invalid-oauth-client-id',\n INVALID_OAUTH_PROVIDER: 'auth/invalid-oauth-provider',\n INVALID_OOB_CODE: 'auth/invalid-action-code',\n INVALID_ORIGIN: 'auth/unauthorized-domain',\n INVALID_PASSWORD: 'auth/wrong-password',\n INVALID_PERSISTENCE: 'auth/invalid-persistence-type',\n INVALID_PHONE_NUMBER: 'auth/invalid-phone-number',\n INVALID_PROVIDER_ID: 'auth/invalid-provider-id',\n INVALID_RECIPIENT_EMAIL: 'auth/invalid-recipient-email',\n INVALID_SENDER: 'auth/invalid-sender',\n INVALID_SESSION_INFO: 'auth/invalid-verification-id',\n INVALID_TENANT_ID: 'auth/invalid-tenant-id',\n MFA_INFO_NOT_FOUND: 'auth/multi-factor-info-not-found',\n MFA_REQUIRED: 'auth/multi-factor-auth-required',\n MISSING_ANDROID_PACKAGE_NAME: 'auth/missing-android-pkg-name',\n MISSING_APP_CREDENTIAL: 'auth/missing-app-credential',\n MISSING_AUTH_DOMAIN: 'auth/auth-domain-config-required',\n MISSING_CODE: 'auth/missing-verification-code',\n MISSING_CONTINUE_URI: 'auth/missing-continue-uri',\n MISSING_IFRAME_START: 'auth/missing-iframe-start',\n MISSING_IOS_BUNDLE_ID: 'auth/missing-ios-bundle-id',\n MISSING_OR_INVALID_NONCE: 'auth/missing-or-invalid-nonce',\n MISSING_MFA_INFO: 'auth/missing-multi-factor-info',\n MISSING_MFA_SESSION: 'auth/missing-multi-factor-session',\n MISSING_PHONE_NUMBER: 'auth/missing-phone-number',\n MISSING_SESSION_INFO: 'auth/missing-verification-id',\n MODULE_DESTROYED: 'auth/app-deleted',\n NEED_CONFIRMATION: 'auth/account-exists-with-different-credential',\n NETWORK_REQUEST_FAILED: 'auth/network-request-failed',\n NULL_USER: 'auth/null-user',\n NO_AUTH_EVENT: 'auth/no-auth-event',\n NO_SUCH_PROVIDER: 'auth/no-such-provider',\n OPERATION_NOT_ALLOWED: 'auth/operation-not-allowed',\n OPERATION_NOT_SUPPORTED: 'auth/operation-not-supported-in-this-environment',\n POPUP_BLOCKED: 'auth/popup-blocked',\n POPUP_CLOSED_BY_USER: 'auth/popup-closed-by-user',\n PROVIDER_ALREADY_LINKED: 'auth/provider-already-linked',\n QUOTA_EXCEEDED: 'auth/quota-exceeded',\n REDIRECT_CANCELLED_BY_USER: 'auth/redirect-cancelled-by-user',\n REDIRECT_OPERATION_PENDING: 'auth/redirect-operation-pending',\n REJECTED_CREDENTIAL: 'auth/rejected-credential',\n SECOND_FACTOR_ALREADY_ENROLLED: 'auth/second-factor-already-in-use',\n SECOND_FACTOR_LIMIT_EXCEEDED: 'auth/maximum-second-factor-count-exceeded',\n TENANT_ID_MISMATCH: 'auth/tenant-id-mismatch',\n TIMEOUT: 'auth/timeout',\n TOKEN_EXPIRED: 'auth/user-token-expired',\n TOO_MANY_ATTEMPTS_TRY_LATER: 'auth/too-many-requests',\n UNAUTHORIZED_DOMAIN: 'auth/unauthorized-continue-uri',\n UNSUPPORTED_FIRST_FACTOR: 'auth/unsupported-first-factor',\n UNSUPPORTED_PERSISTENCE: 'auth/unsupported-persistence-type',\n UNSUPPORTED_TENANT_OPERATION: 'auth/unsupported-tenant-operation',\n UNVERIFIED_EMAIL: 'auth/unverified-email',\n USER_CANCELLED: 'auth/user-cancelled',\n USER_DELETED: 'auth/user-not-found',\n USER_DISABLED: 'auth/user-disabled',\n USER_MISMATCH: 'auth/user-mismatch',\n USER_SIGNED_OUT: 'auth/user-signed-out',\n WEAK_PASSWORD: 'auth/weak-password',\n WEB_STORAGE_UNSUPPORTED: 'auth/web-storage-unsupported',\n ALREADY_INITIALIZED: 'auth/already-initialized',\n RECAPTCHA_NOT_ENABLED: 'auth/recaptcha-not-enabled',\n MISSING_RECAPTCHA_TOKEN: 'auth/missing-recaptcha-token',\n INVALID_RECAPTCHA_TOKEN: 'auth/invalid-recaptcha-token',\n INVALID_RECAPTCHA_ACTION: 'auth/invalid-recaptcha-action',\n MISSING_CLIENT_TYPE: 'auth/missing-client-type',\n MISSING_RECAPTCHA_VERSION: 'auth/missing-recaptcha-version',\n INVALID_RECAPTCHA_VERSION: 'auth/invalid-recaptcha-version',\n INVALID_REQ_TYPE: 'auth/invalid-req-type'\n} as const;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Logger, LogLevel } from '@firebase/logger';\nimport { SDK_VERSION } from '@firebase/app';\n\nexport { LogLevel };\n\nconst logClient = new Logger('@firebase/auth');\n\n// Helper methods are needed because variables can't be exported as read/write\nexport function _getLogLevel(): LogLevel {\n return logClient.logLevel;\n}\n\nexport function _setLogLevel(newLevel: LogLevel): void {\n logClient.logLevel = newLevel;\n}\n\nexport function _logDebug(msg: string, ...args: string[]): void {\n if (logClient.logLevel <= LogLevel.DEBUG) {\n logClient.debug(`Auth (${SDK_VERSION}): ${msg}`, ...args);\n }\n}\n\nexport function _logWarn(msg: string, ...args: string[]): void {\n if (logClient.logLevel <= LogLevel.WARN) {\n logClient.warn(`Auth (${SDK_VERSION}): ${msg}`, ...args);\n }\n}\n\nexport function _logError(msg: string, ...args: string[]): void {\n if (logClient.logLevel <= LogLevel.ERROR) {\n logClient.error(`Auth (${SDK_VERSION}): ${msg}`, ...args);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Auth } from '../../model/public_types';\nimport { ErrorFactory, FirebaseError } from '@firebase/util';\nimport { AuthInternal } from '../../model/auth';\nimport {\n _DEFAULT_AUTH_ERROR_FACTORY,\n AuthErrorCode,\n AuthErrorParams,\n prodErrorMap,\n ErrorMapRetriever\n} from '../errors';\nimport { _logError } from './log';\n\ntype AuthErrorListParams = K extends keyof AuthErrorParams\n ? [AuthErrorParams[K]]\n : [];\ntype LessAppName = Omit;\n\n/**\n * Unconditionally fails, throwing a developer facing INTERNAL_ERROR\n *\n * @example\n * ```javascript\n * fail(auth, AuthErrorCode.MFA_REQUIRED); // Error: the MFA_REQUIRED error needs more params than appName\n * fail(auth, AuthErrorCode.MFA_REQUIRED, {serverResponse}); // Compiles\n * fail(AuthErrorCode.INTERNAL_ERROR); // Compiles; internal error does not need appName\n * fail(AuthErrorCode.USER_DELETED); // Error: USER_DELETED requires app name\n * fail(auth, AuthErrorCode.USER_DELETED); // Compiles; USER_DELETED _only_ needs app name\n * ```\n *\n * @param appName App name for tagging the error\n * @throws FirebaseError\n */\nexport function _fail(\n code: K,\n ...data: {} extends AuthErrorParams[K]\n ? [AuthErrorParams[K]?]\n : [AuthErrorParams[K]]\n): never;\nexport function _fail(\n auth: Auth,\n code: K,\n ...data: {} extends LessAppName ? [LessAppName?] : [LessAppName]\n): never;\nexport function _fail(\n authOrCode: Auth | K,\n ...rest: unknown[]\n): never {\n throw createErrorInternal(authOrCode, ...rest);\n}\n\nexport function _createError(\n code: K,\n ...data: {} extends AuthErrorParams[K]\n ? [AuthErrorParams[K]?]\n : [AuthErrorParams[K]]\n): FirebaseError;\nexport function _createError(\n auth: Auth,\n code: K,\n ...data: {} extends LessAppName ? [LessAppName?] : [LessAppName]\n): FirebaseError;\nexport function _createError(\n authOrCode: Auth | K,\n ...rest: unknown[]\n): FirebaseError {\n return createErrorInternal(authOrCode, ...rest);\n}\n\nexport function _errorWithCustomMessage(\n auth: Auth,\n code: AuthErrorCode,\n message: string\n): FirebaseError {\n const errorMap = {\n ...(prodErrorMap as ErrorMapRetriever)(),\n [code]: message\n };\n const factory = new ErrorFactory(\n 'auth',\n 'Firebase',\n errorMap\n );\n return factory.create(code, {\n appName: auth.name\n });\n}\n\nexport function _assertInstanceOf(\n auth: Auth,\n object: object,\n instance: unknown\n): void {\n const constructorInstance = instance as { new (...args: unknown[]): unknown };\n if (!(object instanceof constructorInstance)) {\n if (constructorInstance.name !== object.constructor.name) {\n _fail(auth, AuthErrorCode.ARGUMENT_ERROR);\n }\n\n throw _errorWithCustomMessage(\n auth,\n AuthErrorCode.ARGUMENT_ERROR,\n `Type of ${object.constructor.name} does not match expected instance.` +\n `Did you pass a reference from a different Auth SDK?`\n );\n }\n}\n\nfunction createErrorInternal(\n authOrCode: Auth | K,\n ...rest: unknown[]\n): FirebaseError {\n if (typeof authOrCode !== 'string') {\n const code = rest[0] as K;\n const fullParams = [...rest.slice(1)] as AuthErrorListParams;\n if (fullParams[0]) {\n fullParams[0].appName = authOrCode.name;\n }\n\n return (authOrCode as AuthInternal)._errorFactory.create(\n code,\n ...fullParams\n );\n }\n\n return _DEFAULT_AUTH_ERROR_FACTORY.create(\n authOrCode,\n ...(rest as AuthErrorListParams)\n );\n}\n\nexport function _assert(\n assertion: unknown,\n code: K,\n ...data: {} extends AuthErrorParams[K]\n ? [AuthErrorParams[K]?]\n : [AuthErrorParams[K]]\n): asserts assertion;\nexport function _assert(\n assertion: unknown,\n auth: Auth,\n code: K,\n ...data: {} extends LessAppName ? [LessAppName?] : [LessAppName]\n): asserts assertion;\nexport function _assert(\n assertion: unknown,\n authOrCode: Auth | K,\n ...rest: unknown[]\n): asserts assertion {\n if (!assertion) {\n throw createErrorInternal(authOrCode, ...rest);\n }\n}\n\n// We really do want to accept literally any function type here\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype TypeExpectation = Function | string | MapType;\n\ninterface MapType extends Record {}\n\nclass Optional {\n constructor(readonly type: TypeExpectation) {}\n}\n\nexport function opt(type: TypeExpectation): Optional {\n return new Optional(type);\n}\n\n/**\n * Asserts the runtime types of arguments. The 'expected' field can be one of\n * a class, a string (representing a \"typeof\" call), or a record map of name\n * to type. Furthermore, the opt() function can be used to mark a field as\n * optional. For example:\n *\n * function foo(auth: Auth, profile: {displayName?: string}, update = false) {\n * assertTypes(arguments, [AuthImpl, {displayName: opt('string')}, opt('boolean')]);\n * }\n *\n * opt() can be used for any type:\n * function foo(auth?: Auth) {\n * assertTypes(arguments, [opt(AuthImpl)]);\n * }\n *\n * The string types can be or'd together, and you can use \"null\" as well (note\n * that typeof null === 'object'; this is an edge case). For example:\n *\n * function foo(profile: {displayName?: string | null}) {\n * assertTypes(arguments, [{displayName: opt('string|null')}]);\n * }\n *\n * @param args\n * @param expected\n */\nexport function assertTypes(\n args: Omit,\n ...expected: Array\n): void {\n if (args.length > expected.length) {\n _fail(AuthErrorCode.ARGUMENT_ERROR, {});\n }\n\n for (let i = 0; i < expected.length; i++) {\n let expect = expected[i];\n const arg = args[i];\n\n if (expect instanceof Optional) {\n // If the arg is undefined, then it matches \"optional\" and we can move to\n // the next arg\n if (typeof arg === 'undefined') {\n continue;\n }\n expect = expect.type;\n }\n\n if (typeof expect === 'string') {\n // Handle the edge case for null because typeof null === 'object'\n if (expect.includes('null') && arg === null) {\n continue;\n }\n\n const required = expect.split('|');\n _assert(required.includes(typeof arg), AuthErrorCode.ARGUMENT_ERROR, {});\n } else if (typeof expect === 'object') {\n // Recursively check record arguments\n const record = arg as Record;\n const map = expect as MapType;\n const keys = Object.keys(expect);\n\n assertTypes(\n keys.map(k => record[k]),\n ...keys.map(k => map[k])\n );\n } else {\n _assert(arg instanceof expect, AuthErrorCode.ARGUMENT_ERROR, {});\n }\n }\n}\n\n/**\n * Unconditionally fails, throwing an internal error with the given message.\n *\n * @param failure type of failure encountered\n * @throws Error\n */\nexport function debugFail(failure: string): never {\n // Log the failure in addition to throw an exception, just in case the\n // exception is swallowed.\n const message = `INTERNAL ASSERTION FAILED: ` + failure;\n _logError(message);\n\n // NOTE: We don't use FirebaseError here because these are internal failures\n // that cannot be handled by the user. (Also it would create a circular\n // dependency between the error and assert modules which doesn't work.)\n throw new Error(message);\n}\n\n/**\n * Fails if the given assertion condition is false, throwing an Error with the\n * given message if it did.\n *\n * @param assertion\n * @param message\n */\nexport function debugAssert(\n assertion: unknown,\n message: string\n): asserts assertion {\n if (!assertion) {\n debugFail(message);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function _getCurrentUrl(): string {\n return (typeof self !== 'undefined' && self.location?.href) || '';\n}\n\nexport function _isHttpOrHttps(): boolean {\n return _getCurrentScheme() === 'http:' || _getCurrentScheme() === 'https:';\n}\n\nexport function _getCurrentScheme(): string | null {\n return (typeof self !== 'undefined' && self.location?.protocol) || null;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isMobileCordova, isReactNative } from '@firebase/util';\nimport { _isOnline } from './navigator';\nimport { debugAssert } from './assert';\n\nexport const enum DelayMin {\n OFFLINE = 5000\n}\n\n/**\n * A structure to help pick between a range of long and short delay durations\n * depending on the current environment. In general, the long delay is used for\n * mobile environments whereas short delays are used for desktop environments.\n */\nexport class Delay {\n // The default value for the offline delay timeout in ms.\n\n private readonly isMobile: boolean;\n constructor(\n private readonly shortDelay: number,\n private readonly longDelay: number\n ) {\n // Internal error when improperly initialized.\n debugAssert(\n longDelay > shortDelay,\n 'Short delay should be less than long delay!'\n );\n this.isMobile = isMobileCordova() || isReactNative();\n }\n\n get(): number {\n if (!_isOnline()) {\n // Pick the shorter timeout.\n return Math.min(DelayMin.OFFLINE, this.shortDelay);\n }\n // If running in a mobile environment, return the long delay, otherwise\n // return the short delay.\n // This could be improved in the future to dynamically change based on other\n // variables instead of just reading the current environment.\n return this.isMobile ? this.longDelay : this.shortDelay;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isBrowserExtension } from '@firebase/util';\nimport { _isHttpOrHttps } from './location';\n\n/**\n * Determine whether the browser is working online\n */\nexport function _isOnline(): boolean {\n if (\n typeof navigator !== 'undefined' &&\n navigator &&\n 'onLine' in navigator &&\n typeof navigator.onLine === 'boolean' &&\n // Apply only for traditional web apps and Chrome extensions.\n // This is especially true for Cordova apps which have unreliable\n // navigator.onLine behavior unless cordova-plugin-network-information is\n // installed which overwrites the native navigator.onLine value and\n // defines navigator.connection.\n (_isHttpOrHttps() || isBrowserExtension() || 'connection' in navigator)\n ) {\n return navigator.onLine;\n }\n // If we can't determine the state, assume it is online.\n return true;\n}\n\nexport function _getUserLanguage(): string | null {\n if (typeof navigator === 'undefined') {\n return null;\n }\n const navigatorLanguage: NavigatorLanguage = navigator;\n return (\n // Most reliable, but only supported in Chrome/Firefox.\n (navigatorLanguage.languages && navigatorLanguage.languages[0]) ||\n // Supported in most browsers, but returns the language of the browser\n // UI, not the language set in browser settings.\n navigatorLanguage.language ||\n // Couldn't determine language.\n null\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ConfigInternal } from '../../model/auth';\nimport { debugAssert } from './assert';\n\nexport function _emulatorUrl(config: ConfigInternal, path?: string): string {\n debugAssert(config.emulator, 'Emulator should always be set here');\n const { url } = config.emulator;\n\n if (!path) {\n return url;\n }\n\n return `${url}${path.startsWith('/') ? path.slice(1) : path}`;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { debugFail } from './assert';\n\nexport class FetchProvider {\n private static fetchImpl: typeof fetch | null;\n private static headersImpl: typeof Headers | null;\n private static responseImpl: typeof Response | null;\n\n static initialize(\n fetchImpl: typeof fetch,\n headersImpl?: typeof Headers,\n responseImpl?: typeof Response\n ): void {\n this.fetchImpl = fetchImpl;\n if (headersImpl) {\n this.headersImpl = headersImpl;\n }\n if (responseImpl) {\n this.responseImpl = responseImpl;\n }\n }\n\n static fetch(): typeof fetch {\n if (this.fetchImpl) {\n return this.fetchImpl;\n }\n if (typeof self !== 'undefined' && 'fetch' in self) {\n return self.fetch;\n }\n debugFail(\n 'Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill'\n );\n }\n\n static headers(): typeof Headers {\n if (this.headersImpl) {\n return this.headersImpl;\n }\n if (typeof self !== 'undefined' && 'Headers' in self) {\n return self.Headers;\n }\n debugFail(\n 'Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill'\n );\n }\n\n static response(): typeof Response {\n if (this.responseImpl) {\n return this.responseImpl;\n }\n if (typeof self !== 'undefined' && 'Response' in self) {\n return self.Response;\n }\n debugFail(\n 'Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill'\n );\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorCode } from '../core/errors';\n\n/**\n * Errors that can be returned by the backend\n */\nexport const enum ServerError {\n ADMIN_ONLY_OPERATION = 'ADMIN_ONLY_OPERATION',\n BLOCKING_FUNCTION_ERROR_RESPONSE = 'BLOCKING_FUNCTION_ERROR_RESPONSE',\n CAPTCHA_CHECK_FAILED = 'CAPTCHA_CHECK_FAILED',\n CORS_UNSUPPORTED = 'CORS_UNSUPPORTED',\n CREDENTIAL_MISMATCH = 'CREDENTIAL_MISMATCH',\n CREDENTIAL_TOO_OLD_LOGIN_AGAIN = 'CREDENTIAL_TOO_OLD_LOGIN_AGAIN',\n DYNAMIC_LINK_NOT_ACTIVATED = 'DYNAMIC_LINK_NOT_ACTIVATED',\n EMAIL_CHANGE_NEEDS_VERIFICATION = 'EMAIL_CHANGE_NEEDS_VERIFICATION',\n EMAIL_EXISTS = 'EMAIL_EXISTS',\n EMAIL_NOT_FOUND = 'EMAIL_NOT_FOUND',\n EXPIRED_OOB_CODE = 'EXPIRED_OOB_CODE',\n FEDERATED_USER_ID_ALREADY_LINKED = 'FEDERATED_USER_ID_ALREADY_LINKED',\n INVALID_APP_CREDENTIAL = 'INVALID_APP_CREDENTIAL',\n INVALID_APP_ID = 'INVALID_APP_ID',\n INVALID_CERT_HASH = 'INVALID_CERT_HASH',\n INVALID_CODE = 'INVALID_CODE',\n INVALID_CONTINUE_URI = 'INVALID_CONTINUE_URI',\n INVALID_CUSTOM_TOKEN = 'INVALID_CUSTOM_TOKEN',\n INVALID_DYNAMIC_LINK_DOMAIN = 'INVALID_DYNAMIC_LINK_DOMAIN',\n INVALID_EMAIL = 'INVALID_EMAIL',\n INVALID_ID_TOKEN = 'INVALID_ID_TOKEN',\n INVALID_IDP_RESPONSE = 'INVALID_IDP_RESPONSE',\n INVALID_IDENTIFIER = 'INVALID_IDENTIFIER',\n INVALID_MESSAGE_PAYLOAD = 'INVALID_MESSAGE_PAYLOAD',\n INVALID_MFA_PENDING_CREDENTIAL = 'INVALID_MFA_PENDING_CREDENTIAL',\n INVALID_OAUTH_CLIENT_ID = 'INVALID_OAUTH_CLIENT_ID',\n INVALID_OOB_CODE = 'INVALID_OOB_CODE',\n INVALID_PASSWORD = 'INVALID_PASSWORD',\n INVALID_PENDING_TOKEN = 'INVALID_PENDING_TOKEN',\n INVALID_PHONE_NUMBER = 'INVALID_PHONE_NUMBER',\n INVALID_PROVIDER_ID = 'INVALID_PROVIDER_ID',\n INVALID_RECIPIENT_EMAIL = 'INVALID_RECIPIENT_EMAIL',\n INVALID_SENDER = 'INVALID_SENDER',\n INVALID_SESSION_INFO = 'INVALID_SESSION_INFO',\n INVALID_TEMPORARY_PROOF = 'INVALID_TEMPORARY_PROOF',\n INVALID_TENANT_ID = 'INVALID_TENANT_ID',\n MFA_ENROLLMENT_NOT_FOUND = 'MFA_ENROLLMENT_NOT_FOUND',\n MISSING_ANDROID_PACKAGE_NAME = 'MISSING_ANDROID_PACKAGE_NAME',\n MISSING_APP_CREDENTIAL = 'MISSING_APP_CREDENTIAL',\n MISSING_CODE = 'MISSING_CODE',\n MISSING_CONTINUE_URI = 'MISSING_CONTINUE_URI',\n MISSING_CUSTOM_TOKEN = 'MISSING_CUSTOM_TOKEN',\n MISSING_IOS_BUNDLE_ID = 'MISSING_IOS_BUNDLE_ID',\n MISSING_MFA_ENROLLMENT_ID = 'MISSING_MFA_ENROLLMENT_ID',\n MISSING_MFA_PENDING_CREDENTIAL = 'MISSING_MFA_PENDING_CREDENTIAL',\n MISSING_OOB_CODE = 'MISSING_OOB_CODE',\n MISSING_OR_INVALID_NONCE = 'MISSING_OR_INVALID_NONCE',\n MISSING_PASSWORD = 'MISSING_PASSWORD',\n MISSING_REQ_TYPE = 'MISSING_REQ_TYPE',\n MISSING_PHONE_NUMBER = 'MISSING_PHONE_NUMBER',\n MISSING_SESSION_INFO = 'MISSING_SESSION_INFO',\n OPERATION_NOT_ALLOWED = 'OPERATION_NOT_ALLOWED',\n PASSWORD_LOGIN_DISABLED = 'PASSWORD_LOGIN_DISABLED',\n QUOTA_EXCEEDED = 'QUOTA_EXCEEDED',\n RESET_PASSWORD_EXCEED_LIMIT = 'RESET_PASSWORD_EXCEED_LIMIT',\n REJECTED_CREDENTIAL = 'REJECTED_CREDENTIAL',\n SECOND_FACTOR_EXISTS = 'SECOND_FACTOR_EXISTS',\n SECOND_FACTOR_LIMIT_EXCEEDED = 'SECOND_FACTOR_LIMIT_EXCEEDED',\n SESSION_EXPIRED = 'SESSION_EXPIRED',\n TENANT_ID_MISMATCH = 'TENANT_ID_MISMATCH',\n TOKEN_EXPIRED = 'TOKEN_EXPIRED',\n TOO_MANY_ATTEMPTS_TRY_LATER = 'TOO_MANY_ATTEMPTS_TRY_LATER',\n UNSUPPORTED_FIRST_FACTOR = 'UNSUPPORTED_FIRST_FACTOR',\n UNSUPPORTED_TENANT_OPERATION = 'UNSUPPORTED_TENANT_OPERATION',\n UNAUTHORIZED_DOMAIN = 'UNAUTHORIZED_DOMAIN',\n UNVERIFIED_EMAIL = 'UNVERIFIED_EMAIL',\n USER_CANCELLED = 'USER_CANCELLED',\n USER_DISABLED = 'USER_DISABLED',\n USER_NOT_FOUND = 'USER_NOT_FOUND',\n WEAK_PASSWORD = 'WEAK_PASSWORD',\n RECAPTCHA_NOT_ENABLED = 'RECAPTCHA_NOT_ENABLED',\n MISSING_RECAPTCHA_TOKEN = 'MISSING_RECAPTCHA_TOKEN',\n INVALID_RECAPTCHA_TOKEN = 'INVALID_RECAPTCHA_TOKEN',\n INVALID_RECAPTCHA_ACTION = 'INVALID_RECAPTCHA_ACTION',\n MISSING_CLIENT_TYPE = 'MISSING_CLIENT_TYPE',\n MISSING_RECAPTCHA_VERSION = 'MISSING_RECAPTCHA_VERSION',\n INVALID_RECAPTCHA_VERSION = 'INVALID_RECAPTCHA_VERSION',\n INVALID_REQ_TYPE = 'INVALID_REQ_TYPE'\n}\n\n/**\n * API Response in the event of an error\n */\nexport interface JsonError {\n error: {\n code: number;\n message: string;\n errors?: [\n {\n message: ServerError;\n domain: string;\n reason: string;\n }\n ];\n };\n}\n\n/**\n * Type definition for a map from server errors to developer visible errors\n */\nexport declare type ServerErrorMap = {\n readonly [K in ApiError]: AuthErrorCode;\n};\n\n/**\n * Map from errors returned by the server to errors to developer visible errors\n */\nexport const SERVER_ERROR_MAP: Partial> = {\n // Custom token errors.\n [ServerError.CREDENTIAL_MISMATCH]: AuthErrorCode.CREDENTIAL_MISMATCH,\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_CUSTOM_TOKEN]: AuthErrorCode.INTERNAL_ERROR,\n\n // Create Auth URI errors.\n [ServerError.INVALID_IDENTIFIER]: AuthErrorCode.INVALID_EMAIL,\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_CONTINUE_URI]: AuthErrorCode.INTERNAL_ERROR,\n\n // Sign in with email and password errors (some apply to sign up too).\n [ServerError.INVALID_PASSWORD]: AuthErrorCode.INVALID_PASSWORD,\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_PASSWORD]: AuthErrorCode.MISSING_PASSWORD,\n\n // Sign up with email and password errors.\n [ServerError.EMAIL_EXISTS]: AuthErrorCode.EMAIL_EXISTS,\n [ServerError.PASSWORD_LOGIN_DISABLED]: AuthErrorCode.OPERATION_NOT_ALLOWED,\n\n // Verify assertion for sign in with credential errors:\n [ServerError.INVALID_IDP_RESPONSE]: AuthErrorCode.INVALID_IDP_RESPONSE,\n [ServerError.INVALID_PENDING_TOKEN]: AuthErrorCode.INVALID_IDP_RESPONSE,\n [ServerError.FEDERATED_USER_ID_ALREADY_LINKED]:\n AuthErrorCode.CREDENTIAL_ALREADY_IN_USE,\n\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_REQ_TYPE]: AuthErrorCode.INTERNAL_ERROR,\n\n // Send Password reset email errors:\n [ServerError.EMAIL_NOT_FOUND]: AuthErrorCode.USER_DELETED,\n [ServerError.RESET_PASSWORD_EXCEED_LIMIT]:\n AuthErrorCode.TOO_MANY_ATTEMPTS_TRY_LATER,\n\n [ServerError.EXPIRED_OOB_CODE]: AuthErrorCode.EXPIRED_OOB_CODE,\n [ServerError.INVALID_OOB_CODE]: AuthErrorCode.INVALID_OOB_CODE,\n // This can only happen if the SDK sends a bad request.\n [ServerError.MISSING_OOB_CODE]: AuthErrorCode.INTERNAL_ERROR,\n\n // Operations that require ID token in request:\n [ServerError.CREDENTIAL_TOO_OLD_LOGIN_AGAIN]:\n AuthErrorCode.CREDENTIAL_TOO_OLD_LOGIN_AGAIN,\n [ServerError.INVALID_ID_TOKEN]: AuthErrorCode.INVALID_AUTH,\n [ServerError.TOKEN_EXPIRED]: AuthErrorCode.TOKEN_EXPIRED,\n [ServerError.USER_NOT_FOUND]: AuthErrorCode.TOKEN_EXPIRED,\n\n // Other errors.\n [ServerError.TOO_MANY_ATTEMPTS_TRY_LATER]:\n AuthErrorCode.TOO_MANY_ATTEMPTS_TRY_LATER,\n\n // Phone Auth related errors.\n [ServerError.INVALID_CODE]: AuthErrorCode.INVALID_CODE,\n [ServerError.INVALID_SESSION_INFO]: AuthErrorCode.INVALID_SESSION_INFO,\n [ServerError.INVALID_TEMPORARY_PROOF]: AuthErrorCode.INVALID_IDP_RESPONSE,\n [ServerError.MISSING_SESSION_INFO]: AuthErrorCode.MISSING_SESSION_INFO,\n [ServerError.SESSION_EXPIRED]: AuthErrorCode.CODE_EXPIRED,\n\n // Other action code errors when additional settings passed.\n // MISSING_CONTINUE_URI is getting mapped to INTERNAL_ERROR above.\n // This is OK as this error will be caught by client side validation.\n [ServerError.MISSING_ANDROID_PACKAGE_NAME]:\n AuthErrorCode.MISSING_ANDROID_PACKAGE_NAME,\n [ServerError.UNAUTHORIZED_DOMAIN]: AuthErrorCode.UNAUTHORIZED_DOMAIN,\n\n // getProjectConfig errors when clientId is passed.\n [ServerError.INVALID_OAUTH_CLIENT_ID]: AuthErrorCode.INVALID_OAUTH_CLIENT_ID,\n\n // User actions (sign-up or deletion) disabled errors.\n [ServerError.ADMIN_ONLY_OPERATION]: AuthErrorCode.ADMIN_ONLY_OPERATION,\n\n // Multi factor related errors.\n [ServerError.INVALID_MFA_PENDING_CREDENTIAL]:\n AuthErrorCode.INVALID_MFA_SESSION,\n [ServerError.MFA_ENROLLMENT_NOT_FOUND]: AuthErrorCode.MFA_INFO_NOT_FOUND,\n [ServerError.MISSING_MFA_ENROLLMENT_ID]: AuthErrorCode.MISSING_MFA_INFO,\n [ServerError.MISSING_MFA_PENDING_CREDENTIAL]:\n AuthErrorCode.MISSING_MFA_SESSION,\n [ServerError.SECOND_FACTOR_EXISTS]:\n AuthErrorCode.SECOND_FACTOR_ALREADY_ENROLLED,\n [ServerError.SECOND_FACTOR_LIMIT_EXCEEDED]:\n AuthErrorCode.SECOND_FACTOR_LIMIT_EXCEEDED,\n\n // Blocking functions related errors.\n [ServerError.BLOCKING_FUNCTION_ERROR_RESPONSE]: AuthErrorCode.INTERNAL_ERROR,\n\n // Recaptcha related errors.\n [ServerError.RECAPTCHA_NOT_ENABLED]: AuthErrorCode.RECAPTCHA_NOT_ENABLED,\n [ServerError.MISSING_RECAPTCHA_TOKEN]: AuthErrorCode.MISSING_RECAPTCHA_TOKEN,\n [ServerError.INVALID_RECAPTCHA_TOKEN]: AuthErrorCode.INVALID_RECAPTCHA_TOKEN,\n [ServerError.INVALID_RECAPTCHA_ACTION]:\n AuthErrorCode.INVALID_RECAPTCHA_ACTION,\n [ServerError.MISSING_CLIENT_TYPE]: AuthErrorCode.MISSING_CLIENT_TYPE,\n [ServerError.MISSING_RECAPTCHA_VERSION]:\n AuthErrorCode.MISSING_RECAPTCHA_VERSION,\n [ServerError.INVALID_RECAPTCHA_VERSION]:\n AuthErrorCode.INVALID_RECAPTCHA_VERSION,\n [ServerError.INVALID_REQ_TYPE]: AuthErrorCode.INVALID_REQ_TYPE\n};\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError, querystring } from '@firebase/util';\n\nimport { AuthErrorCode, NamedErrorParams } from '../core/errors';\nimport {\n _createError,\n _errorWithCustomMessage,\n _fail\n} from '../core/util/assert';\nimport { Delay } from '../core/util/delay';\nimport { _emulatorUrl } from '../core/util/emulator';\nimport { FetchProvider } from '../core/util/fetch_provider';\nimport { Auth } from '../model/public_types';\nimport { AuthInternal, ConfigInternal } from '../model/auth';\nimport { IdTokenResponse, TaggedWithTokenResponse } from '../model/id_token';\nimport { IdTokenMfaResponse } from './authentication/mfa';\nimport { SERVER_ERROR_MAP, ServerError, ServerErrorMap } from './errors';\n\nexport const enum HttpMethod {\n POST = 'POST',\n GET = 'GET'\n}\n\nexport const enum HttpHeader {\n CONTENT_TYPE = 'Content-Type',\n X_FIREBASE_LOCALE = 'X-Firebase-Locale',\n X_CLIENT_VERSION = 'X-Client-Version',\n X_FIREBASE_GMPID = 'X-Firebase-gmpid',\n X_FIREBASE_CLIENT = 'X-Firebase-Client',\n X_FIREBASE_APP_CHECK = 'X-Firebase-AppCheck'\n}\n\nexport const enum Endpoint {\n CREATE_AUTH_URI = '/v1/accounts:createAuthUri',\n DELETE_ACCOUNT = '/v1/accounts:delete',\n RESET_PASSWORD = '/v1/accounts:resetPassword',\n SIGN_UP = '/v1/accounts:signUp',\n SIGN_IN_WITH_CUSTOM_TOKEN = '/v1/accounts:signInWithCustomToken',\n SIGN_IN_WITH_EMAIL_LINK = '/v1/accounts:signInWithEmailLink',\n SIGN_IN_WITH_IDP = '/v1/accounts:signInWithIdp',\n SIGN_IN_WITH_PASSWORD = '/v1/accounts:signInWithPassword',\n SIGN_IN_WITH_PHONE_NUMBER = '/v1/accounts:signInWithPhoneNumber',\n SEND_VERIFICATION_CODE = '/v1/accounts:sendVerificationCode',\n SEND_OOB_CODE = '/v1/accounts:sendOobCode',\n SET_ACCOUNT_INFO = '/v1/accounts:update',\n GET_ACCOUNT_INFO = '/v1/accounts:lookup',\n GET_RECAPTCHA_PARAM = '/v1/recaptchaParams',\n START_MFA_ENROLLMENT = '/v2/accounts/mfaEnrollment:start',\n FINALIZE_MFA_ENROLLMENT = '/v2/accounts/mfaEnrollment:finalize',\n START_MFA_SIGN_IN = '/v2/accounts/mfaSignIn:start',\n FINALIZE_MFA_SIGN_IN = '/v2/accounts/mfaSignIn:finalize',\n WITHDRAW_MFA = '/v2/accounts/mfaEnrollment:withdraw',\n GET_PROJECT_CONFIG = '/v1/projects',\n GET_RECAPTCHA_CONFIG = '/v2/recaptchaConfig'\n}\n\nexport const enum RecaptchaClientType {\n WEB = 'CLIENT_TYPE_WEB',\n ANDROID = 'CLIENT_TYPE_ANDROID',\n IOS = 'CLIENT_TYPE_IOS'\n}\n\nexport const enum RecaptchaVersion {\n ENTERPRISE = 'RECAPTCHA_ENTERPRISE'\n}\n\nexport const enum RecaptchaActionName {\n SIGN_IN_WITH_PASSWORD = 'signInWithPassword',\n GET_OOB_CODE = 'getOobCode',\n SIGN_UP_PASSWORD = 'signUpPassword'\n}\n\nexport const DEFAULT_API_TIMEOUT_MS = new Delay(30_000, 60_000);\n\nexport function _addTidIfNecessary(\n auth: Auth,\n request: T\n): T {\n if (auth.tenantId && !request.tenantId) {\n return {\n ...request,\n tenantId: auth.tenantId\n };\n }\n return request;\n}\n\nexport async function _performApiRequest(\n auth: Auth,\n method: HttpMethod,\n path: Endpoint,\n request?: T,\n customErrorMap: Partial> = {}\n): Promise {\n return _performFetchWithErrorHandling(auth, customErrorMap, async () => {\n let body = {};\n let params = {};\n if (request) {\n if (method === HttpMethod.GET) {\n params = request;\n } else {\n body = {\n body: JSON.stringify(request)\n };\n }\n }\n\n const query = querystring({\n key: auth.config.apiKey,\n ...params\n }).slice(1);\n\n const headers = await (auth as AuthInternal)._getAdditionalHeaders();\n headers[HttpHeader.CONTENT_TYPE] = 'application/json';\n\n if (auth.languageCode) {\n headers[HttpHeader.X_FIREBASE_LOCALE] = auth.languageCode;\n }\n\n return FetchProvider.fetch()(\n _getFinalTarget(auth, auth.config.apiHost, path, query),\n {\n method,\n headers,\n referrerPolicy: 'no-referrer',\n ...body\n }\n );\n });\n}\n\nexport async function _performFetchWithErrorHandling(\n auth: Auth,\n customErrorMap: Partial>,\n fetchFn: () => Promise\n): Promise {\n (auth as AuthInternal)._canInitEmulator = false;\n const errorMap = { ...SERVER_ERROR_MAP, ...customErrorMap };\n try {\n const networkTimeout = new NetworkTimeout(auth);\n const response: Response = await Promise.race>([\n fetchFn(),\n networkTimeout.promise\n ]);\n\n // If we've reached this point, the fetch succeeded and the networkTimeout\n // didn't throw; clear the network timeout delay so that Node won't hang\n networkTimeout.clearNetworkTimeout();\n\n const json = await response.json();\n if ('needConfirmation' in json) {\n throw _makeTaggedError(auth, AuthErrorCode.NEED_CONFIRMATION, json);\n }\n\n if (response.ok && !('errorMessage' in json)) {\n return json;\n } else {\n const errorMessage = response.ok ? json.errorMessage : json.error.message;\n const [serverErrorCode, serverErrorMessage] = errorMessage.split(' : ');\n if (serverErrorCode === ServerError.FEDERATED_USER_ID_ALREADY_LINKED) {\n throw _makeTaggedError(\n auth,\n AuthErrorCode.CREDENTIAL_ALREADY_IN_USE,\n json\n );\n } else if (serverErrorCode === ServerError.EMAIL_EXISTS) {\n throw _makeTaggedError(auth, AuthErrorCode.EMAIL_EXISTS, json);\n } else if (serverErrorCode === ServerError.USER_DISABLED) {\n throw _makeTaggedError(auth, AuthErrorCode.USER_DISABLED, json);\n }\n const authError =\n errorMap[serverErrorCode as ServerError] ||\n (serverErrorCode\n .toLowerCase()\n .replace(/[_\\s]+/g, '-') as unknown as AuthErrorCode);\n if (serverErrorMessage) {\n throw _errorWithCustomMessage(auth, authError, serverErrorMessage);\n } else {\n _fail(auth, authError);\n }\n }\n } catch (e) {\n if (e instanceof FirebaseError) {\n throw e;\n }\n // Changing this to a different error code will log user out when there is a network error\n // because we treat any error other than NETWORK_REQUEST_FAILED as token is invalid.\n // https://github.com/firebase/firebase-js-sdk/blob/4fbc73610d70be4e0852e7de63a39cb7897e8546/packages/auth/src/core/auth/auth_impl.ts#L309-L316\n _fail(auth, AuthErrorCode.NETWORK_REQUEST_FAILED, { 'message': String(e) });\n }\n}\n\nexport async function _performSignInRequest(\n auth: Auth,\n method: HttpMethod,\n path: Endpoint,\n request?: T,\n customErrorMap: Partial> = {}\n): Promise {\n const serverResponse = (await _performApiRequest(\n auth,\n method,\n path,\n request,\n customErrorMap\n )) as V;\n if ('mfaPendingCredential' in serverResponse) {\n _fail(auth, AuthErrorCode.MFA_REQUIRED, {\n _serverResponse: serverResponse\n });\n }\n\n return serverResponse;\n}\n\nexport function _getFinalTarget(\n auth: Auth,\n host: string,\n path: string,\n query: string\n): string {\n const base = `${host}${path}?${query}`;\n\n if (!(auth as AuthInternal).config.emulator) {\n return `${auth.config.apiScheme}://${base}`;\n }\n\n return _emulatorUrl(auth.config as ConfigInternal, base);\n}\n\nclass NetworkTimeout {\n // Node timers and browser timers are fundamentally incompatible, but we\n // don't care about the value here\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private timer: any | null = null;\n readonly promise = new Promise((_, reject) => {\n this.timer = setTimeout(() => {\n return reject(\n _createError(this.auth, AuthErrorCode.NETWORK_REQUEST_FAILED)\n );\n }, DEFAULT_API_TIMEOUT_MS.get());\n });\n\n clearNetworkTimeout(): void {\n clearTimeout(this.timer);\n }\n\n constructor(private readonly auth: Auth) {}\n}\n\ninterface PotentialResponse extends IdTokenResponse {\n email?: string;\n phoneNumber?: string;\n}\n\nexport function _makeTaggedError(\n auth: Auth,\n code: AuthErrorCode,\n response: PotentialResponse\n): FirebaseError {\n const errorParams: NamedErrorParams = {\n appName: auth.name\n };\n\n if (response.email) {\n errorParams.email = response.email;\n }\n if (response.phoneNumber) {\n errorParams.phoneNumber = response.phoneNumber;\n }\n\n const error = _createError(auth, code, errorParams);\n\n // We know customData is defined on error because errorParams is defined\n (error.customData! as TaggedWithTokenResponse)._tokenResponse = response;\n return error;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function utcTimestampToDateString(\n utcTimestamp?: string | number\n): string | undefined {\n if (!utcTimestamp) {\n return undefined;\n }\n try {\n // Convert to date object.\n const date = new Date(Number(utcTimestamp));\n // Test date is valid.\n if (!isNaN(date.getTime())) {\n // Convert to UTC date string.\n return date.toUTCString();\n }\n } catch (e) {\n // Do nothing. undefined will be returned.\n }\n return undefined;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IdTokenResult, ParsedToken, User } from '../../model/public_types';\nimport { base64Decode, getModularInstance } from '@firebase/util';\n\nimport { UserInternal } from '../../model/user';\nimport { _assert } from '../util/assert';\nimport { _logError } from '../util/log';\nimport { utcTimestampToDateString } from '../util/time';\nimport { AuthErrorCode } from '../errors';\n\n/**\n * Returns a JSON Web Token (JWT) used to identify the user to a Firebase service.\n *\n * @remarks\n * Returns the current token if it has not expired or if it will not expire in the next five\n * minutes. Otherwise, this will refresh the token and return a new one.\n *\n * @param user - The user.\n * @param forceRefresh - Force refresh regardless of token expiration.\n *\n * @public\n */\nexport function getIdToken(user: User, forceRefresh = false): Promise {\n return getModularInstance(user).getIdToken(forceRefresh);\n}\n\n/**\n * Returns a deserialized JSON Web Token (JWT) used to identify the user to a Firebase service.\n *\n * @remarks\n * Returns the current token if it has not expired or if it will not expire in the next five\n * minutes. Otherwise, this will refresh the token and return a new one.\n *\n * @param user - The user.\n * @param forceRefresh - Force refresh regardless of token expiration.\n *\n * @public\n */\nexport async function getIdTokenResult(\n user: User,\n forceRefresh = false\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n const token = await userInternal.getIdToken(forceRefresh);\n const claims = _parseToken(token);\n\n _assert(\n claims && claims.exp && claims.auth_time && claims.iat,\n userInternal.auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n const firebase =\n typeof claims.firebase === 'object' ? claims.firebase : undefined;\n\n const signInProvider: string | undefined = firebase?.['sign_in_provider'];\n\n return {\n claims,\n token,\n authTime: utcTimestampToDateString(\n secondsStringToMilliseconds(claims.auth_time)\n )!,\n issuedAtTime: utcTimestampToDateString(\n secondsStringToMilliseconds(claims.iat)\n )!,\n expirationTime: utcTimestampToDateString(\n secondsStringToMilliseconds(claims.exp)\n )!,\n signInProvider: signInProvider || null,\n signInSecondFactor: firebase?.['sign_in_second_factor'] || null\n };\n}\n\nfunction secondsStringToMilliseconds(seconds: string): number {\n return Number(seconds) * 1000;\n}\n\nexport function _parseToken(token: string): ParsedToken | null {\n const [algorithm, payload, signature] = token.split('.');\n if (\n algorithm === undefined ||\n payload === undefined ||\n signature === undefined\n ) {\n _logError('JWT malformed, contained fewer than 3 sections');\n return null;\n }\n\n try {\n const decoded = base64Decode(payload);\n if (!decoded) {\n _logError('Failed to decode base64 JWT payload');\n return null;\n }\n return JSON.parse(decoded);\n } catch (e) {\n _logError(\n 'Caught error parsing JWT payload as JSON',\n (e as Error)?.toString()\n );\n return null;\n }\n}\n\n/**\n * Extract expiresIn TTL from a token by subtracting the expiration from the issuance.\n */\nexport function _tokenExpiresIn(token: string): number {\n const parsedToken = _parseToken(token);\n _assert(parsedToken, AuthErrorCode.INTERNAL_ERROR);\n _assert(typeof parsedToken.exp !== 'undefined', AuthErrorCode.INTERNAL_ERROR);\n _assert(typeof parsedToken.iat !== 'undefined', AuthErrorCode.INTERNAL_ERROR);\n return Number(parsedToken.exp) - Number(parsedToken.iat);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\n\nimport { UserInternal } from '../../model/user';\nimport { AuthErrorCode } from '../errors';\n\nexport async function _logoutIfInvalidated(\n user: UserInternal,\n promise: Promise,\n bypassAuthState = false\n): Promise {\n if (bypassAuthState) {\n return promise;\n }\n try {\n return await promise;\n } catch (e) {\n if (e instanceof FirebaseError && isUserInvalidated(e)) {\n if (user.auth.currentUser === user) {\n await user.auth.signOut();\n }\n }\n\n throw e;\n }\n}\n\nfunction isUserInvalidated({ code }: FirebaseError): boolean {\n return (\n code === `auth/${AuthErrorCode.USER_DISABLED}` ||\n code === `auth/${AuthErrorCode.TOKEN_EXPIRED}`\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\nimport { UserInternal } from '../../model/user';\nimport { AuthErrorCode } from '../errors';\n\n// Refresh the token five minutes before expiration\nexport const enum Duration {\n OFFSET = 5 * 1000 * 60,\n RETRY_BACKOFF_MIN = 30 * 1000,\n RETRY_BACKOFF_MAX = 16 * 60 * 1000\n}\n\nexport class ProactiveRefresh {\n private isRunning = false;\n\n // Node timers and browser timers return fundamentally different types.\n // We don't actually care what the value is but TS won't accept unknown and\n // we can't cast properly in both environments.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private timerId: any | null = null;\n private errorBackoff = Duration.RETRY_BACKOFF_MIN;\n\n constructor(private readonly user: UserInternal) {}\n\n _start(): void {\n if (this.isRunning) {\n return;\n }\n\n this.isRunning = true;\n this.schedule();\n }\n\n _stop(): void {\n if (!this.isRunning) {\n return;\n }\n\n this.isRunning = false;\n if (this.timerId !== null) {\n clearTimeout(this.timerId);\n }\n }\n\n private getInterval(wasError: boolean): number {\n if (wasError) {\n const interval = this.errorBackoff;\n this.errorBackoff = Math.min(\n this.errorBackoff * 2,\n Duration.RETRY_BACKOFF_MAX\n );\n return interval;\n } else {\n // Reset the error backoff\n this.errorBackoff = Duration.RETRY_BACKOFF_MIN;\n const expTime = this.user.stsTokenManager.expirationTime ?? 0;\n const interval = expTime - Date.now() - Duration.OFFSET;\n\n return Math.max(0, interval);\n }\n }\n\n private schedule(wasError = false): void {\n if (!this.isRunning) {\n // Just in case...\n return;\n }\n\n const interval = this.getInterval(wasError);\n this.timerId = setTimeout(async () => {\n await this.iteration();\n }, interval);\n }\n\n private async iteration(): Promise {\n try {\n await this.user.getIdToken(true);\n } catch (e) {\n // Only retry on network errors\n if (\n (e as FirebaseError)?.code ===\n `auth/${AuthErrorCode.NETWORK_REQUEST_FAILED}`\n ) {\n this.schedule(/* wasError */ true);\n }\n\n return;\n }\n this.schedule();\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserMetadata as UserMetadataType } from '../../model/public_types';\n\nimport { utcTimestampToDateString } from '../util/time';\n\nexport class UserMetadata implements UserMetadataType {\n creationTime?: string;\n lastSignInTime?: string;\n\n constructor(\n private createdAt?: string | number,\n private lastLoginAt?: string | number\n ) {\n this._initializeTime();\n }\n\n private _initializeTime(): void {\n this.lastSignInTime = utcTimestampToDateString(this.lastLoginAt);\n this.creationTime = utcTimestampToDateString(this.createdAt);\n }\n\n _copy(metadata: UserMetadata): void {\n this.createdAt = metadata.createdAt;\n this.lastLoginAt = metadata.lastLoginAt;\n this._initializeTime();\n }\n\n toJSON(): object {\n return {\n createdAt: this.createdAt,\n lastLoginAt: this.lastLoginAt\n };\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { User, UserInfo } from '../../model/public_types';\n\nimport {\n getAccountInfo,\n ProviderUserInfo\n} from '../../api/account_management/account';\nimport { UserInternal } from '../../model/user';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { UserMetadata } from './user_metadata';\nimport { getModularInstance } from '@firebase/util';\n\nexport async function _reloadWithoutSaving(user: UserInternal): Promise {\n const auth = user.auth;\n const idToken = await user.getIdToken();\n const response = await _logoutIfInvalidated(\n user,\n getAccountInfo(auth, { idToken })\n );\n\n _assert(response?.users.length, auth, AuthErrorCode.INTERNAL_ERROR);\n\n const coreAccount = response.users[0];\n\n user._notifyReloadListener(coreAccount);\n\n const newProviderData = coreAccount.providerUserInfo?.length\n ? extractProviderData(coreAccount.providerUserInfo)\n : [];\n\n const providerData = mergeProviderData(user.providerData, newProviderData);\n\n // Preserves the non-nonymous status of the stored user, even if no more\n // credentials (federated or email/password) are linked to the user. If\n // the user was previously anonymous, then use provider data to update.\n // On the other hand, if it was not anonymous before, it should never be\n // considered anonymous now.\n const oldIsAnonymous = user.isAnonymous;\n const newIsAnonymous =\n !(user.email && coreAccount.passwordHash) && !providerData?.length;\n const isAnonymous = !oldIsAnonymous ? false : newIsAnonymous;\n\n const updates: Partial = {\n uid: coreAccount.localId,\n displayName: coreAccount.displayName || null,\n photoURL: coreAccount.photoUrl || null,\n email: coreAccount.email || null,\n emailVerified: coreAccount.emailVerified || false,\n phoneNumber: coreAccount.phoneNumber || null,\n tenantId: coreAccount.tenantId || null,\n providerData,\n metadata: new UserMetadata(coreAccount.createdAt, coreAccount.lastLoginAt),\n isAnonymous\n };\n\n Object.assign(user, updates);\n}\n\n/**\n * Reloads user account data, if signed in.\n *\n * @param user - The user.\n *\n * @public\n */\nexport async function reload(user: User): Promise {\n const userInternal: UserInternal = getModularInstance(user) as UserInternal;\n await _reloadWithoutSaving(userInternal);\n\n // Even though the current user hasn't changed, update\n // current user will trigger a persistence update w/ the\n // new info.\n await userInternal.auth._persistUserIfCurrent(userInternal);\n userInternal.auth._notifyListenersIfCurrent(userInternal);\n}\n\nfunction mergeProviderData(\n original: UserInfo[],\n newData: UserInfo[]\n): UserInfo[] {\n const deduped = original.filter(\n o => !newData.some(n => n.providerId === o.providerId)\n );\n return [...deduped, ...newData];\n}\n\nfunction extractProviderData(providers: ProviderUserInfo[]): UserInfo[] {\n return providers.map(({ providerId, ...provider }) => {\n return {\n providerId,\n uid: provider.rawId || '',\n displayName: provider.displayName || null,\n email: provider.email || null,\n phoneNumber: provider.phoneNumber || null,\n photoURL: provider.photoUrl || null\n };\n });\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Endpoint, HttpMethod, _performApiRequest } from '../index';\nimport { MfaEnrollment } from './mfa';\nimport { Auth } from '../../model/public_types';\n\nexport interface DeleteAccountRequest {\n idToken: string;\n}\n\nexport async function deleteAccount(\n auth: Auth,\n request: DeleteAccountRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.DELETE_ACCOUNT,\n request\n );\n}\n\nexport interface ProviderUserInfo {\n providerId: string;\n rawId?: string;\n email?: string;\n displayName?: string;\n photoUrl?: string;\n phoneNumber?: string;\n}\n\nexport interface DeleteLinkedAccountsRequest {\n idToken: string;\n deleteProvider: string[];\n}\n\nexport interface DeleteLinkedAccountsResponse {\n providerUserInfo: ProviderUserInfo[];\n}\n\nexport async function deleteLinkedAccounts(\n auth: Auth,\n request: DeleteLinkedAccountsRequest\n): Promise {\n return _performApiRequest<\n DeleteLinkedAccountsRequest,\n DeleteLinkedAccountsResponse\n >(auth, HttpMethod.POST, Endpoint.SET_ACCOUNT_INFO, request);\n}\n\nexport interface APIUserInfo {\n localId?: string;\n displayName?: string;\n photoUrl?: string;\n email?: string;\n emailVerified?: boolean;\n phoneNumber?: string;\n lastLoginAt?: number;\n createdAt?: number;\n tenantId?: string;\n passwordHash?: string;\n providerUserInfo?: ProviderUserInfo[];\n mfaInfo?: MfaEnrollment[];\n}\n\nexport interface GetAccountInfoRequest {\n idToken: string;\n}\n\nexport interface GetAccountInfoResponse {\n users: APIUserInfo[];\n}\n\nexport async function getAccountInfo(\n auth: Auth,\n request: GetAccountInfoRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.GET_ACCOUNT_INFO,\n request\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FinalizeMfaResponse } from '../../api/authentication/mfa';\nimport { requestStsToken } from '../../api/authentication/token';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthErrorCode } from '../errors';\nimport { PersistedBlob } from '../persistence';\nimport { _assert, debugFail } from '../util/assert';\nimport { _tokenExpiresIn } from './id_token_result';\n\n/**\n * The number of milliseconds before the official expiration time of a token\n * to refresh that token, to provide a buffer for RPCs to complete.\n */\nexport const enum Buffer {\n TOKEN_REFRESH = 30_000\n}\n\n/**\n * We need to mark this class as internal explicitly to exclude it in the public typings, because\n * it references AuthInternal which has a circular dependency with UserInternal.\n *\n * @internal\n */\nexport class StsTokenManager {\n refreshToken: string | null = null;\n accessToken: string | null = null;\n expirationTime: number | null = null;\n\n get isExpired(): boolean {\n return (\n !this.expirationTime ||\n Date.now() > this.expirationTime - Buffer.TOKEN_REFRESH\n );\n }\n\n updateFromServerResponse(\n response: IdTokenResponse | FinalizeMfaResponse\n ): void {\n _assert(response.idToken, AuthErrorCode.INTERNAL_ERROR);\n _assert(\n typeof response.idToken !== 'undefined',\n AuthErrorCode.INTERNAL_ERROR\n );\n _assert(\n typeof response.refreshToken !== 'undefined',\n AuthErrorCode.INTERNAL_ERROR\n );\n const expiresIn =\n 'expiresIn' in response && typeof response.expiresIn !== 'undefined'\n ? Number(response.expiresIn)\n : _tokenExpiresIn(response.idToken);\n this.updateTokensAndExpiration(\n response.idToken,\n response.refreshToken,\n expiresIn\n );\n }\n\n async getToken(\n auth: AuthInternal,\n forceRefresh = false\n ): Promise {\n _assert(\n !this.accessToken || this.refreshToken,\n auth,\n AuthErrorCode.TOKEN_EXPIRED\n );\n\n if (!forceRefresh && this.accessToken && !this.isExpired) {\n return this.accessToken;\n }\n\n if (this.refreshToken) {\n await this.refresh(auth, this.refreshToken!);\n return this.accessToken;\n }\n\n return null;\n }\n\n clearRefreshToken(): void {\n this.refreshToken = null;\n }\n\n private async refresh(auth: AuthInternal, oldToken: string): Promise {\n const { accessToken, refreshToken, expiresIn } = await requestStsToken(\n auth,\n oldToken\n );\n this.updateTokensAndExpiration(\n accessToken,\n refreshToken,\n Number(expiresIn)\n );\n }\n\n private updateTokensAndExpiration(\n accessToken: string,\n refreshToken: string,\n expiresInSec: number\n ): void {\n this.refreshToken = refreshToken || null;\n this.accessToken = accessToken || null;\n this.expirationTime = Date.now() + expiresInSec * 1000;\n }\n\n static fromJSON(appName: string, object: PersistedBlob): StsTokenManager {\n const { refreshToken, accessToken, expirationTime } = object;\n\n const manager = new StsTokenManager();\n if (refreshToken) {\n _assert(typeof refreshToken === 'string', AuthErrorCode.INTERNAL_ERROR, {\n appName\n });\n manager.refreshToken = refreshToken;\n }\n if (accessToken) {\n _assert(typeof accessToken === 'string', AuthErrorCode.INTERNAL_ERROR, {\n appName\n });\n manager.accessToken = accessToken;\n }\n if (expirationTime) {\n _assert(\n typeof expirationTime === 'number',\n AuthErrorCode.INTERNAL_ERROR,\n {\n appName\n }\n );\n manager.expirationTime = expirationTime;\n }\n return manager;\n }\n\n toJSON(): object {\n return {\n refreshToken: this.refreshToken,\n accessToken: this.accessToken,\n expirationTime: this.expirationTime\n };\n }\n\n _assign(stsTokenManager: StsTokenManager): void {\n this.accessToken = stsTokenManager.accessToken;\n this.refreshToken = stsTokenManager.refreshToken;\n this.expirationTime = stsTokenManager.expirationTime;\n }\n\n _clone(): StsTokenManager {\n return Object.assign(new StsTokenManager(), this.toJSON());\n }\n\n _performRefresh(): never {\n return debugFail('not implemented');\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable camelcase */\n\nimport { querystring } from '@firebase/util';\n\nimport {\n _getFinalTarget,\n _performFetchWithErrorHandling,\n HttpMethod,\n HttpHeader\n} from '../index';\nimport { FetchProvider } from '../../core/util/fetch_provider';\nimport { Auth } from '../../model/public_types';\nimport { AuthInternal } from '../../model/auth';\n\nexport const enum Endpoint {\n TOKEN = '/v1/token'\n}\n\n/** The server responses with snake_case; we convert to camelCase */\ninterface RequestStsTokenServerResponse {\n access_token: string;\n expires_in: string;\n refresh_token: string;\n}\n\nexport interface RequestStsTokenResponse {\n accessToken: string;\n expiresIn: string;\n refreshToken: string;\n}\n\nexport async function requestStsToken(\n auth: Auth,\n refreshToken: string\n): Promise {\n const response =\n await _performFetchWithErrorHandling(\n auth,\n {},\n async () => {\n const body = querystring({\n 'grant_type': 'refresh_token',\n 'refresh_token': refreshToken\n }).slice(1);\n const { tokenApiHost, apiKey } = auth.config;\n const url = _getFinalTarget(\n auth,\n tokenApiHost,\n Endpoint.TOKEN,\n `key=${apiKey}`\n );\n\n const headers = await (auth as AuthInternal)._getAdditionalHeaders();\n headers[HttpHeader.CONTENT_TYPE] = 'application/x-www-form-urlencoded';\n\n return FetchProvider.fetch()(url, {\n method: HttpMethod.POST,\n headers,\n body\n });\n }\n );\n\n // The response comes back in snake_case. Convert to camel:\n return {\n accessToken: response.access_token,\n expiresIn: response.expires_in,\n refreshToken: response.refresh_token\n };\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { IdTokenResult } from '../../model/public_types';\nimport { NextFn } from '@firebase/util';\n\nimport {\n APIUserInfo,\n deleteAccount\n} from '../../api/account_management/account';\nimport { FinalizeMfaResponse } from '../../api/authentication/mfa';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport {\n MutableUserInfo,\n UserInternal,\n UserParameters\n} from '../../model/user';\nimport { AuthErrorCode } from '../errors';\nimport { PersistedBlob } from '../persistence';\nimport { _assert } from '../util/assert';\nimport { getIdTokenResult } from './id_token_result';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { ProactiveRefresh } from './proactive_refresh';\nimport { _reloadWithoutSaving, reload } from './reload';\nimport { StsTokenManager } from './token_manager';\nimport { UserMetadata } from './user_metadata';\nimport { ProviderId } from '../../model/enums';\n\nfunction assertStringOrUndefined(\n assertion: unknown,\n appName: string\n): asserts assertion is string | undefined {\n _assert(\n typeof assertion === 'string' || typeof assertion === 'undefined',\n AuthErrorCode.INTERNAL_ERROR,\n { appName }\n );\n}\n\nexport class UserImpl implements UserInternal {\n // For the user object, provider is always Firebase.\n readonly providerId = ProviderId.FIREBASE;\n stsTokenManager: StsTokenManager;\n // Last known accessToken so we know when it changes\n private accessToken: string | null;\n\n uid: string;\n auth: AuthInternal;\n emailVerified: boolean;\n isAnonymous: boolean;\n tenantId: string | null;\n readonly metadata: UserMetadata;\n providerData: MutableUserInfo[];\n\n // Optional fields from UserInfo\n displayName: string | null;\n email: string | null;\n phoneNumber: string | null;\n photoURL: string | null;\n\n _redirectEventId?: string;\n private readonly proactiveRefresh = new ProactiveRefresh(this);\n\n constructor({ uid, auth, stsTokenManager, ...opt }: UserParameters) {\n this.uid = uid;\n this.auth = auth;\n this.stsTokenManager = stsTokenManager;\n this.accessToken = stsTokenManager.accessToken;\n this.displayName = opt.displayName || null;\n this.email = opt.email || null;\n this.emailVerified = opt.emailVerified || false;\n this.phoneNumber = opt.phoneNumber || null;\n this.photoURL = opt.photoURL || null;\n this.isAnonymous = opt.isAnonymous || false;\n this.tenantId = opt.tenantId || null;\n this.providerData = opt.providerData ? [...opt.providerData] : [];\n this.metadata = new UserMetadata(\n opt.createdAt || undefined,\n opt.lastLoginAt || undefined\n );\n }\n\n async getIdToken(forceRefresh?: boolean): Promise {\n const accessToken = await _logoutIfInvalidated(\n this,\n this.stsTokenManager.getToken(this.auth, forceRefresh)\n );\n _assert(accessToken, this.auth, AuthErrorCode.INTERNAL_ERROR);\n\n if (this.accessToken !== accessToken) {\n this.accessToken = accessToken;\n await this.auth._persistUserIfCurrent(this);\n this.auth._notifyListenersIfCurrent(this);\n }\n\n return accessToken;\n }\n\n getIdTokenResult(forceRefresh?: boolean): Promise {\n return getIdTokenResult(this, forceRefresh);\n }\n\n reload(): Promise {\n return reload(this);\n }\n\n private reloadUserInfo: APIUserInfo | null = null;\n private reloadListener: NextFn | null = null;\n\n _assign(user: UserInternal): void {\n if (this === user) {\n return;\n }\n _assert(this.uid === user.uid, this.auth, AuthErrorCode.INTERNAL_ERROR);\n this.displayName = user.displayName;\n this.photoURL = user.photoURL;\n this.email = user.email;\n this.emailVerified = user.emailVerified;\n this.phoneNumber = user.phoneNumber;\n this.isAnonymous = user.isAnonymous;\n this.tenantId = user.tenantId;\n this.providerData = user.providerData.map(userInfo => ({ ...userInfo }));\n this.metadata._copy(user.metadata);\n this.stsTokenManager._assign(user.stsTokenManager);\n }\n\n _clone(auth: AuthInternal): UserInternal {\n const newUser = new UserImpl({\n ...this,\n auth,\n stsTokenManager: this.stsTokenManager._clone()\n });\n newUser.metadata._copy(this.metadata);\n return newUser;\n }\n\n _onReload(callback: NextFn): void {\n // There should only ever be one listener, and that is a single instance of MultiFactorUser\n _assert(!this.reloadListener, this.auth, AuthErrorCode.INTERNAL_ERROR);\n this.reloadListener = callback;\n if (this.reloadUserInfo) {\n this._notifyReloadListener(this.reloadUserInfo);\n this.reloadUserInfo = null;\n }\n }\n\n _notifyReloadListener(userInfo: APIUserInfo): void {\n if (this.reloadListener) {\n this.reloadListener(userInfo);\n } else {\n // If no listener is subscribed yet, save the result so it's available when they do subscribe\n this.reloadUserInfo = userInfo;\n }\n }\n\n _startProactiveRefresh(): void {\n this.proactiveRefresh._start();\n }\n\n _stopProactiveRefresh(): void {\n this.proactiveRefresh._stop();\n }\n\n async _updateTokensIfNecessary(\n response: IdTokenResponse | FinalizeMfaResponse,\n reload = false\n ): Promise {\n let tokensRefreshed = false;\n if (\n response.idToken &&\n response.idToken !== this.stsTokenManager.accessToken\n ) {\n this.stsTokenManager.updateFromServerResponse(response);\n tokensRefreshed = true;\n }\n\n if (reload) {\n await _reloadWithoutSaving(this);\n }\n\n await this.auth._persistUserIfCurrent(this);\n if (tokensRefreshed) {\n this.auth._notifyListenersIfCurrent(this);\n }\n }\n\n async delete(): Promise {\n const idToken = await this.getIdToken();\n await _logoutIfInvalidated(this, deleteAccount(this.auth, { idToken }));\n this.stsTokenManager.clearRefreshToken();\n\n // TODO: Determine if cancellable-promises are necessary to use in this class so that delete()\n // cancels pending actions...\n\n return this.auth.signOut();\n }\n\n toJSON(): PersistedBlob {\n return {\n uid: this.uid,\n email: this.email || undefined,\n emailVerified: this.emailVerified,\n displayName: this.displayName || undefined,\n isAnonymous: this.isAnonymous,\n photoURL: this.photoURL || undefined,\n phoneNumber: this.phoneNumber || undefined,\n tenantId: this.tenantId || undefined,\n providerData: this.providerData.map(userInfo => ({ ...userInfo })),\n stsTokenManager: this.stsTokenManager.toJSON(),\n // Redirect event ID must be maintained in case there is a pending\n // redirect event.\n _redirectEventId: this._redirectEventId,\n ...this.metadata.toJSON(),\n\n // Required for compatibility with the legacy SDK (go/firebase-auth-sdk-persistence-parsing):\n apiKey: this.auth.config.apiKey,\n appName: this.auth.name\n // Missing authDomain will be tolerated by the legacy SDK.\n // stsTokenManager.apiKey isn't actually required (despite the legacy SDK persisting it).\n };\n }\n\n get refreshToken(): string {\n return this.stsTokenManager.refreshToken || '';\n }\n\n static _fromJSON(auth: AuthInternal, object: PersistedBlob): UserInternal {\n const displayName = object.displayName ?? undefined;\n const email = object.email ?? undefined;\n const phoneNumber = object.phoneNumber ?? undefined;\n const photoURL = object.photoURL ?? undefined;\n const tenantId = object.tenantId ?? undefined;\n const _redirectEventId = object._redirectEventId ?? undefined;\n const createdAt = object.createdAt ?? undefined;\n const lastLoginAt = object.lastLoginAt ?? undefined;\n const {\n uid,\n emailVerified,\n isAnonymous,\n providerData,\n stsTokenManager: plainObjectTokenManager\n } = object;\n\n _assert(uid && plainObjectTokenManager, auth, AuthErrorCode.INTERNAL_ERROR);\n\n const stsTokenManager = StsTokenManager.fromJSON(\n this.name,\n plainObjectTokenManager as PersistedBlob\n );\n\n _assert(typeof uid === 'string', auth, AuthErrorCode.INTERNAL_ERROR);\n assertStringOrUndefined(displayName, auth.name);\n assertStringOrUndefined(email, auth.name);\n _assert(\n typeof emailVerified === 'boolean',\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n _assert(\n typeof isAnonymous === 'boolean',\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n assertStringOrUndefined(phoneNumber, auth.name);\n assertStringOrUndefined(photoURL, auth.name);\n assertStringOrUndefined(tenantId, auth.name);\n assertStringOrUndefined(_redirectEventId, auth.name);\n assertStringOrUndefined(createdAt, auth.name);\n assertStringOrUndefined(lastLoginAt, auth.name);\n const user = new UserImpl({\n uid,\n auth,\n email,\n emailVerified,\n displayName,\n isAnonymous,\n photoURL,\n phoneNumber,\n tenantId,\n stsTokenManager,\n createdAt,\n lastLoginAt\n });\n\n if (providerData && Array.isArray(providerData)) {\n user.providerData = providerData.map(userInfo => ({ ...userInfo }));\n }\n\n if (_redirectEventId) {\n user._redirectEventId = _redirectEventId;\n }\n\n return user;\n }\n\n /**\n * Initialize a User from an idToken server response\n * @param auth\n * @param idTokenResponse\n */\n static async _fromIdTokenResponse(\n auth: AuthInternal,\n idTokenResponse: IdTokenResponse,\n isAnonymous: boolean = false\n ): Promise {\n const stsTokenManager = new StsTokenManager();\n stsTokenManager.updateFromServerResponse(idTokenResponse);\n\n // Initialize the Firebase Auth user.\n const user = new UserImpl({\n uid: idTokenResponse.localId,\n auth,\n stsTokenManager,\n isAnonymous\n });\n\n // Updates the user info and data and resolves with a user instance.\n await _reloadWithoutSaving(user);\n return user;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { debugAssert } from './assert';\n\n/**\n * Our API has a lot of one-off constants that are used to do things.\n * Unfortunately we can't export these as classes instantiated directly since\n * the constructor may side effect and therefore can't be proven to be safely\n * culled. Instead, we export these classes themselves as a lowerCamelCase\n * constant, and instantiate them under the hood.\n */\nexport interface SingletonInstantiator {\n new (): T;\n}\n\nconst instanceCache: Map = new Map();\n\nexport function _getInstance(cls: unknown): T {\n debugAssert(cls instanceof Function, 'Expected a class definition');\n let instance = instanceCache.get(cls) as T | undefined;\n\n if (instance) {\n debugAssert(\n instance instanceof cls,\n 'Instance stored in cache mismatched with class'\n );\n return instance;\n }\n\n instance = new (cls as SingletonInstantiator)();\n instanceCache.set(cls, instance);\n return instance;\n}\n\nexport function _clearInstanceMap(): void {\n instanceCache.clear();\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Persistence } from '../../model/public_types';\n\nimport {\n PersistenceInternal,\n PersistenceType,\n PersistenceValue,\n StorageEventListener\n} from '../persistence';\n\nexport class InMemoryPersistence implements PersistenceInternal {\n static type: 'NONE' = 'NONE';\n readonly type = PersistenceType.NONE;\n storage: Record = {};\n\n async _isAvailable(): Promise {\n return true;\n }\n\n async _set(key: string, value: PersistenceValue): Promise {\n this.storage[key] = value;\n }\n\n async _get(key: string): Promise {\n const value = this.storage[key];\n return value === undefined ? null : (value as T);\n }\n\n async _remove(key: string): Promise {\n delete this.storage[key];\n }\n\n _addListener(_key: string, _listener: StorageEventListener): void {\n // Listeners are not supported for in-memory storage since it cannot be shared across windows/workers\n return;\n }\n\n _removeListener(_key: string, _listener: StorageEventListener): void {\n // Listeners are not supported for in-memory storage since it cannot be shared across windows/workers\n return;\n }\n}\n\n/**\n * An implementation of {@link Persistence} of type 'NONE'.\n *\n * @public\n */\nexport const inMemoryPersistence: Persistence = InMemoryPersistence;\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ApiKey, AppName, AuthInternal } from '../../model/auth';\nimport { UserInternal } from '../../model/user';\nimport { PersistedBlob, PersistenceInternal } from '../persistence';\nimport { UserImpl } from '../user/user_impl';\nimport { _getInstance } from '../util/instantiator';\nimport { inMemoryPersistence } from './in_memory';\n\nexport const enum KeyName {\n AUTH_USER = 'authUser',\n AUTH_EVENT = 'authEvent',\n REDIRECT_USER = 'redirectUser',\n PERSISTENCE_USER = 'persistence'\n}\nexport const enum Namespace {\n PERSISTENCE = 'firebase'\n}\n\nexport function _persistenceKeyName(\n key: string,\n apiKey: ApiKey,\n appName: AppName\n): string {\n return `${Namespace.PERSISTENCE}:${key}:${apiKey}:${appName}`;\n}\n\nexport class PersistenceUserManager {\n private readonly fullUserKey: string;\n private readonly fullPersistenceKey: string;\n private readonly boundEventHandler: () => void;\n\n private constructor(\n public persistence: PersistenceInternal,\n private readonly auth: AuthInternal,\n private readonly userKey: string\n ) {\n const { config, name } = this.auth;\n this.fullUserKey = _persistenceKeyName(this.userKey, config.apiKey, name);\n this.fullPersistenceKey = _persistenceKeyName(\n KeyName.PERSISTENCE_USER,\n config.apiKey,\n name\n );\n this.boundEventHandler = auth._onStorageEvent.bind(auth);\n this.persistence._addListener(this.fullUserKey, this.boundEventHandler);\n }\n\n setCurrentUser(user: UserInternal): Promise {\n return this.persistence._set(this.fullUserKey, user.toJSON());\n }\n\n async getCurrentUser(): Promise {\n const blob = await this.persistence._get(this.fullUserKey);\n return blob ? UserImpl._fromJSON(this.auth, blob) : null;\n }\n\n removeCurrentUser(): Promise {\n return this.persistence._remove(this.fullUserKey);\n }\n\n savePersistenceForRedirect(): Promise {\n return this.persistence._set(\n this.fullPersistenceKey,\n this.persistence.type\n );\n }\n\n async setPersistence(newPersistence: PersistenceInternal): Promise {\n if (this.persistence === newPersistence) {\n return;\n }\n\n const currentUser = await this.getCurrentUser();\n await this.removeCurrentUser();\n\n this.persistence = newPersistence;\n\n if (currentUser) {\n return this.setCurrentUser(currentUser);\n }\n }\n\n delete(): void {\n this.persistence._removeListener(this.fullUserKey, this.boundEventHandler);\n }\n\n static async create(\n auth: AuthInternal,\n persistenceHierarchy: PersistenceInternal[],\n userKey = KeyName.AUTH_USER\n ): Promise {\n if (!persistenceHierarchy.length) {\n return new PersistenceUserManager(\n _getInstance(inMemoryPersistence),\n auth,\n userKey\n );\n }\n\n // Eliminate any persistences that are not available\n const availablePersistences = (\n await Promise.all(\n persistenceHierarchy.map(async persistence => {\n if (await persistence._isAvailable()) {\n return persistence;\n }\n return undefined;\n })\n )\n ).filter(persistence => persistence) as PersistenceInternal[];\n\n // Fall back to the first persistence listed, or in memory if none available\n let selectedPersistence =\n availablePersistences[0] ||\n _getInstance(inMemoryPersistence);\n\n const key = _persistenceKeyName(userKey, auth.config.apiKey, auth.name);\n\n // Pull out the existing user, setting the chosen persistence to that\n // persistence if the user exists.\n let userToMigrate: UserInternal | null = null;\n // Note, here we check for a user in _all_ persistences, not just the\n // ones deemed available. If we can migrate a user out of a broken\n // persistence, we will (but only if that persistence supports migration).\n for (const persistence of persistenceHierarchy) {\n try {\n const blob = await persistence._get(key);\n if (blob) {\n const user = UserImpl._fromJSON(auth, blob); // throws for unparsable blob (wrong format)\n if (persistence !== selectedPersistence) {\n userToMigrate = user;\n }\n selectedPersistence = persistence;\n break;\n }\n } catch {}\n }\n\n // If we find the user in a persistence that does support migration, use\n // that migration path (of only persistences that support migration)\n const migrationHierarchy = availablePersistences.filter(\n p => p._shouldAllowMigration\n );\n\n // If the persistence does _not_ allow migration, just finish off here\n if (\n !selectedPersistence._shouldAllowMigration ||\n !migrationHierarchy.length\n ) {\n return new PersistenceUserManager(selectedPersistence, auth, userKey);\n }\n\n selectedPersistence = migrationHierarchy[0];\n if (userToMigrate) {\n // This normally shouldn't throw since chosenPersistence.isAvailable() is true, but if it does\n // we'll just let it bubble to surface the error.\n await selectedPersistence._set(key, userToMigrate.toJSON());\n }\n\n // Attempt to clear the key in other persistences but ignore errors. This helps prevent issues\n // such as users getting stuck with a previous account after signing out and refreshing the tab.\n await Promise.all(\n persistenceHierarchy.map(async persistence => {\n if (persistence !== selectedPersistence) {\n try {\n await persistence._remove(key);\n } catch {}\n }\n })\n );\n return new PersistenceUserManager(selectedPersistence, auth, userKey);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isIE, getUA } from '@firebase/util';\n\ninterface NavigatorStandalone extends Navigator {\n standalone?: unknown;\n}\n\ninterface Document {\n documentMode?: number;\n}\n\n/**\n * Enums for Browser name.\n */\nexport const enum BrowserName {\n ANDROID = 'Android',\n BLACKBERRY = 'Blackberry',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n IE = 'IE',\n IEMOBILE = 'IEMobile',\n OPERA = 'Opera',\n OTHER = 'Other',\n CHROME = 'Chrome',\n SAFARI = 'Safari',\n SILK = 'Silk',\n WEBOS = 'Webos'\n}\n\n/**\n * Determine the browser for the purposes of reporting usage to the API\n */\nexport function _getBrowserName(userAgent: string): BrowserName | string {\n const ua = userAgent.toLowerCase();\n if (ua.includes('opera/') || ua.includes('opr/') || ua.includes('opios/')) {\n return BrowserName.OPERA;\n } else if (_isIEMobile(ua)) {\n // Windows phone IEMobile browser.\n return BrowserName.IEMOBILE;\n } else if (ua.includes('msie') || ua.includes('trident/')) {\n return BrowserName.IE;\n } else if (ua.includes('edge/')) {\n return BrowserName.EDGE;\n } else if (_isFirefox(ua)) {\n return BrowserName.FIREFOX;\n } else if (ua.includes('silk/')) {\n return BrowserName.SILK;\n } else if (_isBlackBerry(ua)) {\n // Blackberry browser.\n return BrowserName.BLACKBERRY;\n } else if (_isWebOS(ua)) {\n // WebOS default browser.\n return BrowserName.WEBOS;\n } else if (_isSafari(ua)) {\n return BrowserName.SAFARI;\n } else if (\n (ua.includes('chrome/') || _isChromeIOS(ua)) &&\n !ua.includes('edge/')\n ) {\n return BrowserName.CHROME;\n } else if (_isAndroid(ua)) {\n // Android stock browser.\n return BrowserName.ANDROID;\n } else {\n // Most modern browsers have name/version at end of user agent string.\n const re = /([a-zA-Z\\d\\.]+)\\/[a-zA-Z\\d\\.]*$/;\n const matches = userAgent.match(re);\n if (matches?.length === 2) {\n return matches[1];\n }\n }\n return BrowserName.OTHER;\n}\n\nexport function _isFirefox(ua = getUA()): boolean {\n return /firefox\\//i.test(ua);\n}\n\nexport function _isSafari(userAgent = getUA()): boolean {\n const ua = userAgent.toLowerCase();\n return (\n ua.includes('safari/') &&\n !ua.includes('chrome/') &&\n !ua.includes('crios/') &&\n !ua.includes('android')\n );\n}\n\nexport function _isChromeIOS(ua = getUA()): boolean {\n return /crios\\//i.test(ua);\n}\n\nexport function _isIEMobile(ua = getUA()): boolean {\n return /iemobile/i.test(ua);\n}\n\nexport function _isAndroid(ua = getUA()): boolean {\n return /android/i.test(ua);\n}\n\nexport function _isBlackBerry(ua = getUA()): boolean {\n return /blackberry/i.test(ua);\n}\n\nexport function _isWebOS(ua = getUA()): boolean {\n return /webos/i.test(ua);\n}\n\nexport function _isIOS(ua = getUA()): boolean {\n return (\n /iphone|ipad|ipod/i.test(ua) ||\n (/macintosh/i.test(ua) && /mobile/i.test(ua))\n );\n}\n\nexport function _isIOS7Or8(ua = getUA()): boolean {\n return (\n /(iPad|iPhone|iPod).*OS 7_\\d/i.test(ua) ||\n /(iPad|iPhone|iPod).*OS 8_\\d/i.test(ua)\n );\n}\n\nexport function _isIOSStandalone(ua = getUA()): boolean {\n return _isIOS(ua) && !!(window.navigator as NavigatorStandalone)?.standalone;\n}\n\nexport function _isIE10(): boolean {\n return isIE() && (document as Document).documentMode === 10;\n}\n\nexport function _isMobileBrowser(ua: string = getUA()): boolean {\n // TODO: implement getBrowserName equivalent for OS.\n return (\n _isIOS(ua) ||\n _isAndroid(ua) ||\n _isWebOS(ua) ||\n _isBlackBerry(ua) ||\n /windows phone/i.test(ua) ||\n _isIEMobile(ua)\n );\n}\n\nexport function _isIframe(): boolean {\n try {\n // Check that the current window is not the top window.\n // If so, return true.\n return !!(window && window !== window.top);\n } catch (e) {\n return false;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SDK_VERSION } from '@firebase/app';\nimport { _getBrowserName } from './browser';\nimport { getUA } from '@firebase/util';\n\nexport const enum ClientImplementation {\n CORE = 'JsCore'\n}\n\n/**\n * @internal\n */\nexport const enum ClientPlatform {\n BROWSER = 'Browser',\n NODE = 'Node',\n REACT_NATIVE = 'ReactNative',\n CORDOVA = 'Cordova',\n WORKER = 'Worker'\n}\n\n/*\n * Determine the SDK version string\n */\nexport function _getClientVersion(\n clientPlatform: ClientPlatform,\n frameworks: readonly string[] = []\n): string {\n let reportedPlatform: string;\n switch (clientPlatform) {\n case ClientPlatform.BROWSER:\n // In a browser environment, report the browser name.\n reportedPlatform = _getBrowserName(getUA());\n break;\n case ClientPlatform.WORKER:\n // Technically a worker runs from a browser but we need to differentiate a\n // worker from a browser.\n // For example: Chrome-Worker/JsCore/4.9.1/FirebaseCore-web.\n reportedPlatform = `${_getBrowserName(getUA())}-${clientPlatform}`;\n break;\n default:\n reportedPlatform = clientPlatform;\n }\n const reportedFrameworks = frameworks.length\n ? frameworks.join(',')\n : 'FirebaseCore-web'; /* default value if no other framework is used */\n return `${reportedPlatform}/${ClientImplementation.CORE}/${SDK_VERSION}/${reportedFrameworks}`;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n RecaptchaClientType,\n RecaptchaVersion,\n _performApiRequest,\n _addTidIfNecessary\n} from '../index';\nimport { Auth } from '../../model/public_types';\n\ninterface GetRecaptchaParamResponse {\n recaptchaSiteKey?: string;\n}\n\nexport async function getRecaptchaParams(auth: Auth): Promise {\n return (\n (\n await _performApiRequest(\n auth,\n HttpMethod.GET,\n Endpoint.GET_RECAPTCHA_PARAM\n )\n ).recaptchaSiteKey || ''\n );\n}\n\n// The following functions are for reCAPTCHA enterprise integration.\ninterface GetRecaptchaConfigRequest {\n tenantId?: string;\n clientType?: RecaptchaClientType;\n version?: RecaptchaVersion;\n}\n\ninterface RecaptchaEnforcementState {\n provider: string;\n enforcementState: string;\n}\n\nexport interface GetRecaptchaConfigResponse {\n recaptchaKey: string;\n recaptchaEnforcementState: RecaptchaEnforcementState[];\n}\n\nexport async function getRecaptchaConfig(\n auth: Auth,\n request: GetRecaptchaConfigRequest\n): Promise {\n return _performApiRequest<\n GetRecaptchaConfigRequest,\n GetRecaptchaConfigResponse\n >(\n auth,\n HttpMethod.GET,\n Endpoint.GET_RECAPTCHA_CONFIG,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RecaptchaParameters } from '../../model/public_types';\nimport { GetRecaptchaConfigResponse } from '../../api/authentication/recaptcha';\n\n// reCAPTCHA v2 interface\nexport interface Recaptcha {\n render: (container: HTMLElement, parameters: RecaptchaParameters) => number;\n getResponse: (id: number) => string;\n execute: (id: number) => unknown;\n reset: (id: number) => unknown;\n}\n\nexport function isV2(\n grecaptcha: Recaptcha | GreCAPTCHA | undefined\n): grecaptcha is Recaptcha {\n return (\n grecaptcha !== undefined &&\n (grecaptcha as Recaptcha).getResponse !== undefined\n );\n}\n\n// reCAPTCHA Enterprise & v3 shared interface\nexport interface GreCAPTCHATopLevel extends GreCAPTCHA {\n enterprise: GreCAPTCHA;\n}\n\n// reCAPTCHA Enterprise interface\nexport interface GreCAPTCHA {\n ready: (callback: () => void) => void;\n execute: (siteKey: string, options: { action: string }) => Promise;\n render: (\n container: string | HTMLElement,\n parameters: GreCAPTCHARenderOption\n ) => string;\n}\n\nexport interface GreCAPTCHARenderOption {\n sitekey: string;\n size: 'invisible';\n}\n\nexport function isEnterprise(\n grecaptcha: Recaptcha | GreCAPTCHA | undefined\n): grecaptcha is GreCAPTCHATopLevel {\n return (\n grecaptcha !== undefined &&\n (grecaptcha as GreCAPTCHATopLevel).enterprise !== undefined\n );\n}\n\n// TODO(chuanr): Replace this with the AuthWindow after resolving the dependency issue in Node.js env.\ndeclare global {\n interface Window {\n grecaptcha?: Recaptcha | GreCAPTCHATopLevel;\n }\n}\n\nexport class RecaptchaConfig {\n /**\n * The reCAPTCHA site key.\n */\n siteKey: string = '';\n\n /**\n * The reCAPTCHA enablement status of the {@link EmailAuthProvider} for the current tenant.\n */\n emailPasswordEnabled: boolean = false;\n\n constructor(response: GetRecaptchaConfigResponse) {\n if (response.recaptchaKey === undefined) {\n throw new Error('recaptchaKey undefined');\n }\n // Example response.recaptchaKey: \"projects/proj123/keys/sitekey123\"\n this.siteKey = response.recaptchaKey.split('/')[3];\n this.emailPasswordEnabled = response.recaptchaEnforcementState.some(\n enforcementState =>\n enforcementState.provider === 'EMAIL_PASSWORD_PROVIDER' &&\n enforcementState.enforcementState !== 'OFF'\n );\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorCode } from '../core/errors';\nimport { _createError } from '../core/util/assert';\n\nfunction getScriptParentElement(): HTMLDocument | HTMLHeadElement {\n return document.getElementsByTagName('head')?.[0] ?? document;\n}\n\nexport function _loadJS(url: string): Promise {\n // TODO: consider adding timeout support & cancellation\n return new Promise((resolve, reject) => {\n const el = document.createElement('script');\n el.setAttribute('src', url);\n el.onload = resolve;\n el.onerror = e => {\n const error = _createError(AuthErrorCode.INTERNAL_ERROR);\n error.customData = e as unknown as Record;\n reject(error);\n };\n el.type = 'text/javascript';\n el.charset = 'UTF-8';\n getScriptParentElement().appendChild(el);\n });\n}\n\nexport function _generateCallbackName(prefix: string): string {\n return `__${prefix}${Math.floor(Math.random() * 1000000)}`;\n}\n","/* eslint-disable @typescript-eslint/no-require-imports */\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { isEnterprise, RecaptchaConfig } from './recaptcha';\nimport { getRecaptchaConfig } from '../../api/authentication/recaptcha';\nimport {\n RecaptchaClientType,\n RecaptchaVersion,\n RecaptchaActionName\n} from '../../api';\n\nimport { Auth } from '../../model/public_types';\nimport { AuthInternal } from '../../model/auth';\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport * as jsHelpers from '../load_js';\n\nconst RECAPTCHA_ENTERPRISE_URL =\n 'https://www.google.com/recaptcha/enterprise.js?render=';\n\nexport const RECAPTCHA_ENTERPRISE_VERIFIER_TYPE = 'recaptcha-enterprise';\nexport const FAKE_TOKEN = 'NO_RECAPTCHA';\n\nexport class RecaptchaEnterpriseVerifier {\n /**\n * Identifies the type of application verifier (e.g. \"recaptcha-enterprise\").\n */\n readonly type = RECAPTCHA_ENTERPRISE_VERIFIER_TYPE;\n\n private readonly auth: AuthInternal;\n\n /**\n *\n * @param authExtern - The corresponding Firebase {@link Auth} instance.\n *\n */\n constructor(authExtern: Auth) {\n this.auth = _castAuth(authExtern);\n }\n\n /**\n * Executes the verification process.\n *\n * @returns A Promise for a token that can be used to assert the validity of a request.\n */\n async verify(\n action: string = 'verify',\n forceRefresh = false\n ): Promise {\n async function retrieveSiteKey(auth: AuthInternal): Promise {\n if (!forceRefresh) {\n if (auth.tenantId == null && auth._agentRecaptchaConfig != null) {\n return auth._agentRecaptchaConfig.siteKey;\n }\n if (\n auth.tenantId != null &&\n auth._tenantRecaptchaConfigs[auth.tenantId] !== undefined\n ) {\n return auth._tenantRecaptchaConfigs[auth.tenantId].siteKey;\n }\n }\n\n return new Promise(async (resolve, reject) => {\n getRecaptchaConfig(auth, {\n clientType: RecaptchaClientType.WEB,\n version: RecaptchaVersion.ENTERPRISE\n })\n .then(response => {\n if (response.recaptchaKey === undefined) {\n reject(new Error('recaptcha Enterprise site key undefined'));\n } else {\n const config = new RecaptchaConfig(response);\n if (auth.tenantId == null) {\n auth._agentRecaptchaConfig = config;\n } else {\n auth._tenantRecaptchaConfigs[auth.tenantId] = config;\n }\n return resolve(config.siteKey);\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n }\n\n function retrieveRecaptchaToken(\n siteKey: string,\n resolve: (value: string | PromiseLike) => void,\n reject: (reason?: unknown) => void\n ): void {\n const grecaptcha = window.grecaptcha;\n if (isEnterprise(grecaptcha)) {\n grecaptcha.enterprise.ready(() => {\n grecaptcha.enterprise\n .execute(siteKey, { action })\n .then(token => {\n resolve(token);\n })\n .catch(() => {\n resolve(FAKE_TOKEN);\n });\n });\n } else {\n reject(Error('No reCAPTCHA enterprise script loaded.'));\n }\n }\n\n return new Promise((resolve, reject) => {\n retrieveSiteKey(this.auth)\n .then(siteKey => {\n if (!forceRefresh && isEnterprise(window.grecaptcha)) {\n retrieveRecaptchaToken(siteKey, resolve, reject);\n } else {\n if (typeof window === 'undefined') {\n reject(\n new Error('RecaptchaVerifier is only supported in browser')\n );\n return;\n }\n jsHelpers\n ._loadJS(RECAPTCHA_ENTERPRISE_URL + siteKey)\n .then(() => {\n retrieveRecaptchaToken(siteKey, resolve, reject);\n })\n .catch(error => {\n reject(error);\n });\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n }\n}\n\nexport async function injectRecaptchaFields(\n auth: AuthInternal,\n request: T,\n action: RecaptchaActionName,\n captchaResp = false\n): Promise {\n const verifier = new RecaptchaEnterpriseVerifier(auth);\n let captchaResponse;\n try {\n captchaResponse = await verifier.verify(action);\n } catch (error) {\n captchaResponse = await verifier.verify(action, true);\n }\n const newRequest = { ...request };\n if (!captchaResp) {\n Object.assign(newRequest, { captchaResponse });\n } else {\n Object.assign(newRequest, { 'captchaResp': captchaResponse });\n }\n Object.assign(newRequest, { 'clientType': RecaptchaClientType.WEB });\n Object.assign(newRequest, {\n 'recaptchaVersion': RecaptchaVersion.ENTERPRISE\n });\n return newRequest;\n}\n","/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthInternal } from '../../model/auth';\nimport { Unsubscribe, User } from '../../model/public_types';\nimport { AuthErrorCode } from '../errors';\n\ninterface MiddlewareEntry {\n (user: User | null): Promise;\n onAbort?: () => void;\n}\n\nexport class AuthMiddlewareQueue {\n private readonly queue: MiddlewareEntry[] = [];\n\n constructor(private readonly auth: AuthInternal) {}\n\n pushCallback(\n callback: (user: User | null) => void | Promise,\n onAbort?: () => void\n ): Unsubscribe {\n // The callback could be sync or async. Wrap it into a\n // function that is always async.\n const wrappedCallback: MiddlewareEntry = (\n user: User | null\n ): Promise =>\n new Promise((resolve, reject) => {\n try {\n const result = callback(user);\n // Either resolve with existing promise or wrap a non-promise\n // return value into a promise.\n resolve(result);\n } catch (e) {\n // Sync callback throws.\n reject(e);\n }\n });\n // Attach the onAbort if present\n wrappedCallback.onAbort = onAbort;\n this.queue.push(wrappedCallback);\n\n const index = this.queue.length - 1;\n return () => {\n // Unsubscribe. Replace with no-op. Do not remove from array, or it will disturb\n // indexing of other elements.\n this.queue[index] = () => Promise.resolve();\n };\n }\n\n async runMiddleware(nextUser: User | null): Promise {\n if (this.auth.currentUser === nextUser) {\n return;\n }\n\n // While running the middleware, build a temporary stack of onAbort\n // callbacks to call if one middleware callback rejects.\n\n const onAbortStack: Array<() => void> = [];\n try {\n for (const beforeStateCallback of this.queue) {\n await beforeStateCallback(nextUser);\n\n // Only push the onAbort if the callback succeeds\n if (beforeStateCallback.onAbort) {\n onAbortStack.push(beforeStateCallback.onAbort);\n }\n }\n } catch (e) {\n // Run all onAbort, with separate try/catch to ignore any errors and\n // continue\n onAbortStack.reverse();\n for (const onAbort of onAbortStack) {\n try {\n onAbort();\n } catch (_) {\n /* swallow error */\n }\n }\n\n throw this.auth._errorFactory.create(AuthErrorCode.LOGIN_BLOCKED, {\n originalMessage: (e as Error)?.message\n });\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _FirebaseService, FirebaseApp } from '@firebase/app';\nimport { Provider } from '@firebase/component';\nimport { AppCheckInternalComponentName } from '@firebase/app-check-interop-types';\nimport {\n Auth,\n AuthErrorMap,\n AuthSettings,\n EmulatorConfig,\n NextOrObserver,\n Persistence,\n PopupRedirectResolver,\n User,\n UserCredential,\n CompleteFn,\n ErrorFn,\n NextFn,\n Unsubscribe\n} from '../../model/public_types';\nimport {\n createSubscribe,\n ErrorFactory,\n FirebaseError,\n getModularInstance,\n Observer,\n Subscribe\n} from '@firebase/util';\n\nimport { AuthInternal, ConfigInternal } from '../../model/auth';\nimport { PopupRedirectResolverInternal } from '../../model/popup_redirect';\nimport { UserInternal } from '../../model/user';\nimport {\n AuthErrorCode,\n AuthErrorParams,\n ErrorMapRetriever,\n _DEFAULT_AUTH_ERROR_FACTORY\n} from '../errors';\nimport { PersistenceInternal } from '../persistence';\nimport {\n KeyName,\n PersistenceUserManager\n} from '../persistence/persistence_user_manager';\nimport { _reloadWithoutSaving } from '../user/reload';\nimport { _assert } from '../util/assert';\nimport { _getInstance } from '../util/instantiator';\nimport { _getUserLanguage } from '../util/navigator';\nimport { _getClientVersion } from '../util/version';\nimport { HttpHeader, RecaptchaClientType, RecaptchaVersion } from '../../api';\nimport { getRecaptchaConfig } from '../../api/authentication/recaptcha';\nimport { RecaptchaEnterpriseVerifier } from '../../platform_browser/recaptcha/recaptcha_enterprise_verifier';\nimport { AuthMiddlewareQueue } from './middleware';\nimport { RecaptchaConfig } from '../../platform_browser/recaptcha/recaptcha';\nimport { _logWarn } from '../util/log';\n\ninterface AsyncAction {\n (): Promise;\n}\n\nexport const enum DefaultConfig {\n TOKEN_API_HOST = 'securetoken.googleapis.com',\n API_HOST = 'identitytoolkit.googleapis.com',\n API_SCHEME = 'https'\n}\n\nexport class AuthImpl implements AuthInternal, _FirebaseService {\n currentUser: User | null = null;\n emulatorConfig: EmulatorConfig | null = null;\n private operations = Promise.resolve();\n private persistenceManager?: PersistenceUserManager;\n private redirectPersistenceManager?: PersistenceUserManager;\n private authStateSubscription = new Subscription(this);\n private idTokenSubscription = new Subscription(this);\n private readonly beforeStateQueue = new AuthMiddlewareQueue(this);\n private redirectUser: UserInternal | null = null;\n private isProactiveRefreshEnabled = false;\n\n // Any network calls will set this to true and prevent subsequent emulator\n // initialization\n _canInitEmulator = true;\n _isInitialized = false;\n _deleted = false;\n _initializationPromise: Promise | null = null;\n _popupRedirectResolver: PopupRedirectResolverInternal | null = null;\n _errorFactory: ErrorFactory =\n _DEFAULT_AUTH_ERROR_FACTORY;\n _agentRecaptchaConfig: RecaptchaConfig | null = null;\n _tenantRecaptchaConfigs: Record = {};\n readonly name: string;\n\n // Tracks the last notified UID for state change listeners to prevent\n // repeated calls to the callbacks. Undefined means it's never been\n // called, whereas null means it's been called with a signed out user\n private lastNotifiedUid: string | null | undefined = undefined;\n\n languageCode: string | null = null;\n tenantId: string | null = null;\n settings: AuthSettings = { appVerificationDisabledForTesting: false };\n\n constructor(\n public readonly app: FirebaseApp,\n private readonly heartbeatServiceProvider: Provider<'heartbeat'>,\n private readonly appCheckServiceProvider: Provider,\n public readonly config: ConfigInternal\n ) {\n this.name = app.name;\n this.clientVersion = config.sdkClientVersion;\n }\n\n _initializeWithPersistence(\n persistenceHierarchy: PersistenceInternal[],\n popupRedirectResolver?: PopupRedirectResolver\n ): Promise {\n if (popupRedirectResolver) {\n this._popupRedirectResolver = _getInstance(popupRedirectResolver);\n }\n\n // Have to check for app deletion throughout initialization (after each\n // promise resolution)\n this._initializationPromise = this.queue(async () => {\n if (this._deleted) {\n return;\n }\n\n this.persistenceManager = await PersistenceUserManager.create(\n this,\n persistenceHierarchy\n );\n\n if (this._deleted) {\n return;\n }\n\n // Initialize the resolver early if necessary (only applicable to web:\n // this will cause the iframe to load immediately in certain cases)\n if (this._popupRedirectResolver?._shouldInitProactively) {\n // If this fails, don't halt auth loading\n try {\n await this._popupRedirectResolver._initialize(this);\n } catch (e) {\n /* Ignore the error */\n }\n }\n\n await this.initializeCurrentUser(popupRedirectResolver);\n this.lastNotifiedUid = this.currentUser?.uid || null;\n\n if (this._deleted) {\n return;\n }\n\n this._isInitialized = true;\n });\n\n return this._initializationPromise;\n }\n\n /**\n * If the persistence is changed in another window, the user manager will let us know\n */\n async _onStorageEvent(): Promise {\n if (this._deleted) {\n return;\n }\n\n const user = await this.assertedPersistence.getCurrentUser();\n\n if (!this.currentUser && !user) {\n // No change, do nothing (was signed out and remained signed out).\n return;\n }\n\n // If the same user is to be synchronized.\n if (this.currentUser && user && this.currentUser.uid === user.uid) {\n // Data update, simply copy data changes.\n this._currentUser._assign(user);\n // If tokens changed from previous user tokens, this will trigger\n // notifyAuthListeners_.\n await this.currentUser.getIdToken();\n return;\n }\n\n // Update current Auth state. Either a new login or logout.\n // Skip blocking callbacks, they should not apply to a change in another tab.\n await this._updateCurrentUser(user, /* skipBeforeStateCallbacks */ true);\n }\n\n private async initializeCurrentUser(\n popupRedirectResolver?: PopupRedirectResolver\n ): Promise {\n // First check to see if we have a pending redirect event.\n const previouslyStoredUser =\n (await this.assertedPersistence.getCurrentUser()) as UserInternal | null;\n let futureCurrentUser = previouslyStoredUser;\n let needsTocheckMiddleware = false;\n if (popupRedirectResolver && this.config.authDomain) {\n await this.getOrInitRedirectPersistenceManager();\n const redirectUserEventId = this.redirectUser?._redirectEventId;\n const storedUserEventId = futureCurrentUser?._redirectEventId;\n const result = await this.tryRedirectSignIn(popupRedirectResolver);\n\n // If the stored user (i.e. the old \"currentUser\") has a redirectId that\n // matches the redirect user, then we want to initially sign in with the\n // new user object from result.\n // TODO(samgho): More thoroughly test all of this\n if (\n (!redirectUserEventId || redirectUserEventId === storedUserEventId) &&\n result?.user\n ) {\n futureCurrentUser = result.user as UserInternal;\n needsTocheckMiddleware = true;\n }\n }\n\n // If no user in persistence, there is no current user. Set to null.\n if (!futureCurrentUser) {\n return this.directlySetCurrentUser(null);\n }\n\n if (!futureCurrentUser._redirectEventId) {\n // This isn't a redirect link operation, we can reload and bail.\n // First though, ensure that we check the middleware is happy.\n if (needsTocheckMiddleware) {\n try {\n await this.beforeStateQueue.runMiddleware(futureCurrentUser);\n } catch (e) {\n futureCurrentUser = previouslyStoredUser;\n // We know this is available since the bit is only set when the\n // resolver is available\n this._popupRedirectResolver!._overrideRedirectResult(this, () =>\n Promise.reject(e)\n );\n }\n }\n\n if (futureCurrentUser) {\n return this.reloadAndSetCurrentUserOrClear(futureCurrentUser);\n } else {\n return this.directlySetCurrentUser(null);\n }\n }\n\n _assert(this._popupRedirectResolver, this, AuthErrorCode.ARGUMENT_ERROR);\n await this.getOrInitRedirectPersistenceManager();\n\n // If the redirect user's event ID matches the current user's event ID,\n // DO NOT reload the current user, otherwise they'll be cleared from storage.\n // This is important for the reauthenticateWithRedirect() flow.\n if (\n this.redirectUser &&\n this.redirectUser._redirectEventId === futureCurrentUser._redirectEventId\n ) {\n return this.directlySetCurrentUser(futureCurrentUser);\n }\n\n return this.reloadAndSetCurrentUserOrClear(futureCurrentUser);\n }\n\n private async tryRedirectSignIn(\n redirectResolver: PopupRedirectResolver\n ): Promise {\n // The redirect user needs to be checked (and signed in if available)\n // during auth initialization. All of the normal sign in and link/reauth\n // flows call back into auth and push things onto the promise queue. We\n // need to await the result of the redirect sign in *inside the promise\n // queue*. This presents a problem: we run into deadlock. See:\n // ┌> [Initialization] ─────┐\n // ┌> [] │\n // └─ [getRedirectResult] <─┘\n // where [] are tasks on the queue and arrows denote awaits\n // Initialization will never complete because it's waiting on something\n // that's waiting for initialization to complete!\n //\n // Instead, this method calls getRedirectResult() (stored in\n // _completeRedirectFn) with an optional parameter that instructs all of\n // the underlying auth operations to skip anything that mutates auth state.\n\n let result: UserCredential | null = null;\n try {\n // We know this._popupRedirectResolver is set since redirectResolver\n // is passed in. The _completeRedirectFn expects the unwrapped extern.\n result = await this._popupRedirectResolver!._completeRedirectFn(\n this,\n redirectResolver,\n true\n );\n } catch (e) {\n // Swallow any errors here; the code can retrieve them in\n // getRedirectResult().\n await this._setRedirectUser(null);\n }\n\n return result;\n }\n\n private async reloadAndSetCurrentUserOrClear(\n user: UserInternal\n ): Promise {\n try {\n await _reloadWithoutSaving(user);\n } catch (e) {\n if (\n (e as FirebaseError)?.code !==\n `auth/${AuthErrorCode.NETWORK_REQUEST_FAILED}`\n ) {\n // Something's wrong with the user's token. Log them out and remove\n // them from storage\n return this.directlySetCurrentUser(null);\n }\n }\n\n return this.directlySetCurrentUser(user);\n }\n\n useDeviceLanguage(): void {\n this.languageCode = _getUserLanguage();\n }\n\n async _delete(): Promise {\n this._deleted = true;\n }\n\n async updateCurrentUser(userExtern: User | null): Promise {\n // The public updateCurrentUser method needs to make a copy of the user,\n // and also check that the project matches\n const user = userExtern\n ? (getModularInstance(userExtern) as UserInternal)\n : null;\n if (user) {\n _assert(\n user.auth.config.apiKey === this.config.apiKey,\n this,\n AuthErrorCode.INVALID_AUTH\n );\n }\n return this._updateCurrentUser(user && user._clone(this));\n }\n\n async _updateCurrentUser(\n user: User | null,\n skipBeforeStateCallbacks: boolean = false\n ): Promise {\n if (this._deleted) {\n return;\n }\n if (user) {\n _assert(\n this.tenantId === user.tenantId,\n this,\n AuthErrorCode.TENANT_ID_MISMATCH\n );\n }\n\n if (!skipBeforeStateCallbacks) {\n await this.beforeStateQueue.runMiddleware(user);\n }\n\n return this.queue(async () => {\n await this.directlySetCurrentUser(user as UserInternal | null);\n this.notifyAuthListeners();\n });\n }\n\n async signOut(): Promise {\n // Run first, to block _setRedirectUser() if any callbacks fail.\n await this.beforeStateQueue.runMiddleware(null);\n // Clear the redirect user when signOut is called\n if (this.redirectPersistenceManager || this._popupRedirectResolver) {\n await this._setRedirectUser(null);\n }\n\n // Prevent callbacks from being called again in _updateCurrentUser, as\n // they were already called in the first line.\n return this._updateCurrentUser(null, /* skipBeforeStateCallbacks */ true);\n }\n\n setPersistence(persistence: Persistence): Promise {\n return this.queue(async () => {\n await this.assertedPersistence.setPersistence(_getInstance(persistence));\n });\n }\n\n async initializeRecaptchaConfig(): Promise {\n const response = await getRecaptchaConfig(this, {\n clientType: RecaptchaClientType.WEB,\n version: RecaptchaVersion.ENTERPRISE\n });\n\n const config = new RecaptchaConfig(response);\n if (this.tenantId == null) {\n this._agentRecaptchaConfig = config;\n } else {\n this._tenantRecaptchaConfigs[this.tenantId] = config;\n }\n\n if (config.emailPasswordEnabled) {\n const verifier = new RecaptchaEnterpriseVerifier(this);\n void verifier.verify();\n }\n }\n\n _getRecaptchaConfig(): RecaptchaConfig | null {\n if (this.tenantId == null) {\n return this._agentRecaptchaConfig;\n } else {\n return this._tenantRecaptchaConfigs[this.tenantId];\n }\n }\n\n _getPersistence(): string {\n return this.assertedPersistence.persistence.type;\n }\n\n _updateErrorMap(errorMap: AuthErrorMap): void {\n this._errorFactory = new ErrorFactory(\n 'auth',\n 'Firebase',\n (errorMap as ErrorMapRetriever)()\n );\n }\n\n onAuthStateChanged(\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n ): Unsubscribe {\n return this.registerStateListener(\n this.authStateSubscription,\n nextOrObserver,\n error,\n completed\n );\n }\n\n beforeAuthStateChanged(\n callback: (user: User | null) => void | Promise,\n onAbort?: () => void\n ): Unsubscribe {\n return this.beforeStateQueue.pushCallback(callback, onAbort);\n }\n\n onIdTokenChanged(\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n ): Unsubscribe {\n return this.registerStateListener(\n this.idTokenSubscription,\n nextOrObserver,\n error,\n completed\n );\n }\n\n toJSON(): object {\n return {\n apiKey: this.config.apiKey,\n authDomain: this.config.authDomain,\n appName: this.name,\n currentUser: this._currentUser?.toJSON()\n };\n }\n\n async _setRedirectUser(\n user: UserInternal | null,\n popupRedirectResolver?: PopupRedirectResolver\n ): Promise {\n const redirectManager = await this.getOrInitRedirectPersistenceManager(\n popupRedirectResolver\n );\n return user === null\n ? redirectManager.removeCurrentUser()\n : redirectManager.setCurrentUser(user);\n }\n\n private async getOrInitRedirectPersistenceManager(\n popupRedirectResolver?: PopupRedirectResolver\n ): Promise {\n if (!this.redirectPersistenceManager) {\n const resolver: PopupRedirectResolverInternal | null =\n (popupRedirectResolver && _getInstance(popupRedirectResolver)) ||\n this._popupRedirectResolver;\n _assert(resolver, this, AuthErrorCode.ARGUMENT_ERROR);\n this.redirectPersistenceManager = await PersistenceUserManager.create(\n this,\n [_getInstance(resolver._redirectPersistence)],\n KeyName.REDIRECT_USER\n );\n this.redirectUser =\n await this.redirectPersistenceManager.getCurrentUser();\n }\n\n return this.redirectPersistenceManager;\n }\n\n async _redirectUserForId(id: string): Promise {\n // Make sure we've cleared any pending persistence actions if we're not in\n // the initializer\n if (this._isInitialized) {\n await this.queue(async () => {});\n }\n\n if (this._currentUser?._redirectEventId === id) {\n return this._currentUser;\n }\n\n if (this.redirectUser?._redirectEventId === id) {\n return this.redirectUser;\n }\n\n return null;\n }\n\n async _persistUserIfCurrent(user: UserInternal): Promise {\n if (user === this.currentUser) {\n return this.queue(async () => this.directlySetCurrentUser(user));\n }\n }\n\n /** Notifies listeners only if the user is current */\n _notifyListenersIfCurrent(user: UserInternal): void {\n if (user === this.currentUser) {\n this.notifyAuthListeners();\n }\n }\n\n _key(): string {\n return `${this.config.authDomain}:${this.config.apiKey}:${this.name}`;\n }\n\n _startProactiveRefresh(): void {\n this.isProactiveRefreshEnabled = true;\n if (this.currentUser) {\n this._currentUser._startProactiveRefresh();\n }\n }\n\n _stopProactiveRefresh(): void {\n this.isProactiveRefreshEnabled = false;\n if (this.currentUser) {\n this._currentUser._stopProactiveRefresh();\n }\n }\n\n /** Returns the current user cast as the internal type */\n get _currentUser(): UserInternal {\n return this.currentUser as UserInternal;\n }\n\n private notifyAuthListeners(): void {\n if (!this._isInitialized) {\n return;\n }\n\n this.idTokenSubscription.next(this.currentUser);\n\n const currentUid = this.currentUser?.uid ?? null;\n if (this.lastNotifiedUid !== currentUid) {\n this.lastNotifiedUid = currentUid;\n this.authStateSubscription.next(this.currentUser);\n }\n }\n\n private registerStateListener(\n subscription: Subscription,\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n ): Unsubscribe {\n if (this._deleted) {\n return () => {};\n }\n\n const cb =\n typeof nextOrObserver === 'function'\n ? nextOrObserver\n : nextOrObserver.next.bind(nextOrObserver);\n\n const promise = this._isInitialized\n ? Promise.resolve()\n : this._initializationPromise;\n _assert(promise, this, AuthErrorCode.INTERNAL_ERROR);\n // The callback needs to be called asynchronously per the spec.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n promise.then(() => cb(this.currentUser));\n\n if (typeof nextOrObserver === 'function') {\n return subscription.addObserver(nextOrObserver, error, completed);\n } else {\n return subscription.addObserver(nextOrObserver);\n }\n }\n\n /**\n * Unprotected (from race conditions) method to set the current user. This\n * should only be called from within a queued callback. This is necessary\n * because the queue shouldn't rely on another queued callback.\n */\n private async directlySetCurrentUser(\n user: UserInternal | null\n ): Promise {\n if (this.currentUser && this.currentUser !== user) {\n this._currentUser._stopProactiveRefresh();\n }\n if (user && this.isProactiveRefreshEnabled) {\n user._startProactiveRefresh();\n }\n\n this.currentUser = user;\n\n if (user) {\n await this.assertedPersistence.setCurrentUser(user);\n } else {\n await this.assertedPersistence.removeCurrentUser();\n }\n }\n\n private queue(action: AsyncAction): Promise {\n // In case something errors, the callback still should be called in order\n // to keep the promise chain alive\n this.operations = this.operations.then(action, action);\n return this.operations;\n }\n\n private get assertedPersistence(): PersistenceUserManager {\n _assert(this.persistenceManager, this, AuthErrorCode.INTERNAL_ERROR);\n return this.persistenceManager;\n }\n\n private frameworks: string[] = [];\n private clientVersion: string;\n _logFramework(framework: string): void {\n if (!framework || this.frameworks.includes(framework)) {\n return;\n }\n this.frameworks.push(framework);\n\n // Sort alphabetically so that \"FirebaseCore-web,FirebaseUI-web\" and\n // \"FirebaseUI-web,FirebaseCore-web\" aren't viewed as different.\n this.frameworks.sort();\n this.clientVersion = _getClientVersion(\n this.config.clientPlatform,\n this._getFrameworks()\n );\n }\n _getFrameworks(): readonly string[] {\n return this.frameworks;\n }\n async _getAdditionalHeaders(): Promise> {\n // Additional headers on every request\n const headers: Record = {\n [HttpHeader.X_CLIENT_VERSION]: this.clientVersion\n };\n\n if (this.app.options.appId) {\n headers[HttpHeader.X_FIREBASE_GMPID] = this.app.options.appId;\n }\n\n // If the heartbeat service exists, add the heartbeat string\n const heartbeatsHeader = await this.heartbeatServiceProvider\n .getImmediate({\n optional: true\n })\n ?.getHeartbeatsHeader();\n if (heartbeatsHeader) {\n headers[HttpHeader.X_FIREBASE_CLIENT] = heartbeatsHeader;\n }\n\n // If the App Check service exists, add the App Check token in the headers\n const appCheckToken = await this._getAppCheckToken();\n if (appCheckToken) {\n headers[HttpHeader.X_FIREBASE_APP_CHECK] = appCheckToken;\n }\n\n return headers;\n }\n\n async _getAppCheckToken(): Promise {\n const appCheckTokenResult = await this.appCheckServiceProvider\n .getImmediate({ optional: true })\n ?.getToken();\n if (appCheckTokenResult?.error) {\n // Context: appCheck.getToken() will never throw even if an error happened.\n // In the error case, a dummy token will be returned along with an error field describing\n // the error. In general, we shouldn't care about the error condition and just use\n // the token (actual or dummy) to send requests.\n _logWarn(\n `Error while retrieving App Check token: ${appCheckTokenResult.error}`\n );\n }\n return appCheckTokenResult?.token;\n }\n}\n\n/**\n * Method to be used to cast down to our private implmentation of Auth.\n * It will also handle unwrapping from the compat type if necessary\n *\n * @param auth Auth object passed in from developer\n */\nexport function _castAuth(auth: Auth): AuthInternal {\n return getModularInstance(auth) as AuthInternal;\n}\n\n/** Helper class to wrap subscriber logic */\nclass Subscription {\n private observer: Observer | null = null;\n readonly addObserver: Subscribe = createSubscribe(\n observer => (this.observer = observer)\n );\n\n constructor(readonly auth: AuthInternal) {}\n\n get next(): NextFn {\n _assert(this.observer, this.auth, AuthErrorCode.INTERNAL_ERROR);\n return this.observer.next.bind(this.observer);\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Auth } from '../../model/public_types';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { _castAuth } from './auth_impl';\n\n/**\n * Changes the {@link Auth} instance to communicate with the Firebase Auth Emulator, instead of production\n * Firebase Auth services.\n *\n * @remarks\n * This must be called synchronously immediately following the first call to\n * {@link initializeAuth}. Do not use with production credentials as emulator\n * traffic is not encrypted.\n *\n *\n * @example\n * ```javascript\n * connectAuthEmulator(auth, 'http://127.0.0.1:9099', { disableWarnings: true });\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param url - The URL at which the emulator is running (eg, 'http://localhost:9099').\n * @param options - Optional. `options.disableWarnings` defaults to `false`. Set it to\n * `true` to disable the warning banner attached to the DOM.\n *\n * @public\n */\nexport function connectAuthEmulator(\n auth: Auth,\n url: string,\n options?: { disableWarnings: boolean }\n): void {\n const authInternal = _castAuth(auth);\n _assert(\n authInternal._canInitEmulator,\n authInternal,\n AuthErrorCode.EMULATOR_CONFIG_FAILED\n );\n\n _assert(\n /^https?:\\/\\//.test(url),\n authInternal,\n AuthErrorCode.INVALID_EMULATOR_SCHEME\n );\n\n const disableWarnings = !!options?.disableWarnings;\n\n const protocol = extractProtocol(url);\n const { host, port } = extractHostAndPort(url);\n const portStr = port === null ? '' : `:${port}`;\n\n // Always replace path with \"/\" (even if input url had no path at all, or had a different one).\n authInternal.config.emulator = { url: `${protocol}//${host}${portStr}/` };\n authInternal.settings.appVerificationDisabledForTesting = true;\n authInternal.emulatorConfig = Object.freeze({\n host,\n port,\n protocol: protocol.replace(':', ''),\n options: Object.freeze({ disableWarnings })\n });\n\n if (!disableWarnings) {\n emitEmulatorWarning();\n }\n}\n\nfunction extractProtocol(url: string): string {\n const protocolEnd = url.indexOf(':');\n return protocolEnd < 0 ? '' : url.substr(0, protocolEnd + 1);\n}\n\nfunction extractHostAndPort(url: string): {\n host: string;\n port: number | null;\n} {\n const protocol = extractProtocol(url);\n const authority = /(\\/\\/)?([^?#/]+)/.exec(url.substr(protocol.length)); // Between // and /, ? or #.\n if (!authority) {\n return { host: '', port: null };\n }\n const hostAndPort = authority[2].split('@').pop() || ''; // Strip out \"username:password@\".\n const bracketedIPv6 = /^(\\[[^\\]]+\\])(:|$)/.exec(hostAndPort);\n if (bracketedIPv6) {\n const host = bracketedIPv6[1];\n return { host, port: parsePort(hostAndPort.substr(host.length + 1)) };\n } else {\n const [host, port] = hostAndPort.split(':');\n return { host, port: parsePort(port) };\n }\n}\n\nfunction parsePort(portStr: string): number | null {\n if (!portStr) {\n return null;\n }\n const port = Number(portStr);\n if (isNaN(port)) {\n return null;\n }\n return port;\n}\n\nfunction emitEmulatorWarning(): void {\n function attachBanner(): void {\n const el = document.createElement('p');\n const sty = el.style;\n el.innerText =\n 'Running in emulator mode. Do not use with production credentials.';\n sty.position = 'fixed';\n sty.width = '100%';\n sty.backgroundColor = '#ffffff';\n sty.border = '.1em solid #000000';\n sty.color = '#b50000';\n sty.bottom = '0px';\n sty.left = '0px';\n sty.margin = '0px';\n sty.zIndex = '10000';\n sty.textAlign = 'center';\n el.classList.add('firebase-emulator-warning');\n document.body.appendChild(el);\n }\n\n if (typeof console !== 'undefined' && typeof console.info === 'function') {\n console.info(\n 'WARNING: You are using the Auth Emulator,' +\n ' which is intended for local testing only. Do not use with' +\n ' production credentials.'\n );\n }\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n if (document.readyState === 'loading') {\n window.addEventListener('DOMContentLoaded', attachBanner);\n } else {\n attachBanner();\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PhoneOrOauthTokenResponse } from '../../api/authentication/mfa';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { debugFail } from '../util/assert';\n\n/**\n * Interface that represents the credentials returned by an {@link AuthProvider}.\n *\n * @remarks\n * Implementations specify the details about each auth provider's credential requirements.\n *\n * @public\n */\nexport class AuthCredential {\n /** @internal */\n protected constructor(\n /**\n * The authentication provider ID for the credential.\n *\n * @remarks\n * For example, 'facebook.com', or 'google.com'.\n */\n readonly providerId: string,\n /**\n * The authentication sign in method for the credential.\n *\n * @remarks\n * For example, {@link SignInMethod}.EMAIL_PASSWORD, or\n * {@link SignInMethod}.EMAIL_LINK. This corresponds to the sign-in method\n * identifier as returned in {@link fetchSignInMethodsForEmail}.\n */\n readonly signInMethod: string\n ) {}\n\n /**\n * Returns a JSON-serializable representation of this object.\n *\n * @returns a JSON-serializable representation of this object.\n */\n toJSON(): object {\n return debugFail('not implemented');\n }\n\n /** @internal */\n _getIdTokenResponse(_auth: AuthInternal): Promise {\n return debugFail('not implemented');\n }\n /** @internal */\n _linkToIdToken(\n _auth: AuthInternal,\n _idToken: string\n ): Promise {\n return debugFail('not implemented');\n }\n /** @internal */\n _getReauthenticationResolver(_auth: AuthInternal): Promise {\n return debugFail('not implemented');\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ActionCodeOperation, Auth } from '../../model/public_types';\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performApiRequest\n} from '../index';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { MfaEnrollment } from './mfa';\n\nexport interface ResetPasswordRequest {\n oobCode: string;\n newPassword?: string;\n tenantId?: string;\n}\n\nexport interface ResetPasswordResponse {\n email: string;\n newEmail?: string;\n requestType?: ActionCodeOperation;\n mfaInfo?: MfaEnrollment;\n}\n\nexport async function resetPassword(\n auth: Auth,\n request: ResetPasswordRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.RESET_PASSWORD,\n _addTidIfNecessary(auth, request)\n );\n}\nexport interface UpdateEmailPasswordRequest {\n idToken: string;\n returnSecureToken?: boolean;\n email?: string;\n password?: string;\n}\n\nexport interface UpdateEmailPasswordResponse extends IdTokenResponse {}\n\nexport async function updateEmailPassword(\n auth: Auth,\n request: UpdateEmailPasswordRequest\n): Promise {\n return _performApiRequest<\n UpdateEmailPasswordRequest,\n UpdateEmailPasswordResponse\n >(auth, HttpMethod.POST, Endpoint.SET_ACCOUNT_INFO, request);\n}\n\nexport interface ApplyActionCodeRequest {\n oobCode: string;\n tenantId?: string;\n}\n\nexport interface ApplyActionCodeResponse {}\n\nexport async function applyActionCode(\n auth: Auth,\n request: ApplyActionCodeRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SET_ACCOUNT_INFO,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ActionCodeOperation, Auth } from '../../model/public_types';\n\nimport {\n Endpoint,\n HttpMethod,\n RecaptchaClientType,\n RecaptchaVersion,\n _addTidIfNecessary,\n _performApiRequest,\n _performSignInRequest\n} from '../index';\nimport { IdToken, IdTokenResponse } from '../../model/id_token';\n\nexport interface SignInWithPasswordRequest {\n returnSecureToken?: boolean;\n email: string;\n password: string;\n tenantId?: string;\n captchaResponse?: string;\n clientType?: RecaptchaClientType;\n recaptchaVersion?: RecaptchaVersion;\n}\n\nexport interface SignInWithPasswordResponse extends IdTokenResponse {\n email: string;\n displayName: string;\n}\n\nexport async function signInWithPassword(\n auth: Auth,\n request: SignInWithPasswordRequest\n): Promise {\n return _performSignInRequest<\n SignInWithPasswordRequest,\n SignInWithPasswordResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_PASSWORD,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface GetOobCodeRequest {\n email?: string; // Everything except VERIFY_AND_CHANGE_EMAIL\n continueUrl?: string;\n iOSBundleId?: string;\n iosAppStoreId?: string;\n androidPackageName?: string;\n androidInstallApp?: boolean;\n androidMinimumVersionCode?: string;\n canHandleCodeInApp?: boolean;\n dynamicLinkDomain?: string;\n tenantId?: string;\n targetProjectid?: string;\n}\n\nexport interface VerifyEmailRequest extends GetOobCodeRequest {\n requestType: ActionCodeOperation.VERIFY_EMAIL;\n idToken: IdToken;\n}\n\nexport interface PasswordResetRequest extends GetOobCodeRequest {\n requestType: ActionCodeOperation.PASSWORD_RESET;\n email: string;\n captchaResp?: string;\n clientType?: RecaptchaClientType;\n recaptchaVersion?: RecaptchaVersion;\n}\n\nexport interface EmailSignInRequest extends GetOobCodeRequest {\n requestType: ActionCodeOperation.EMAIL_SIGNIN;\n email: string;\n captchaResp?: string;\n clientType?: RecaptchaClientType;\n recaptchaVersion?: RecaptchaVersion;\n}\n\nexport interface VerifyAndChangeEmailRequest extends GetOobCodeRequest {\n requestType: ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL;\n idToken: IdToken;\n newEmail: string;\n}\n\ninterface GetOobCodeResponse {\n email: string;\n}\n\nexport interface VerifyEmailResponse extends GetOobCodeResponse {}\nexport interface PasswordResetResponse extends GetOobCodeResponse {}\nexport interface EmailSignInResponse extends GetOobCodeResponse {}\nexport interface VerifyAndChangeEmailResponse extends GetOobCodeRequest {}\n\nasync function sendOobCode(\n auth: Auth,\n request: GetOobCodeRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SEND_OOB_CODE,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport async function sendEmailVerification(\n auth: Auth,\n request: VerifyEmailRequest\n): Promise {\n return sendOobCode(auth, request);\n}\n\nexport async function sendPasswordResetEmail(\n auth: Auth,\n request: PasswordResetRequest\n): Promise {\n return sendOobCode(auth, request);\n}\n\nexport async function sendSignInLinkToEmail(\n auth: Auth,\n request: EmailSignInRequest\n): Promise {\n return sendOobCode(auth, request);\n}\n\nexport async function verifyAndChangeEmail(\n auth: Auth,\n request: VerifyAndChangeEmailRequest\n): Promise {\n return sendOobCode(auth, request);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\nimport { updateEmailPassword } from '../../api/account_management/email_and_password';\nimport {\n signInWithPassword,\n SignInWithPasswordRequest\n} from '../../api/authentication/email_and_password';\nimport {\n signInWithEmailLink,\n signInWithEmailLinkForLinking\n} from '../../api/authentication/email_link';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthErrorCode } from '../errors';\nimport { _fail } from '../util/assert';\nimport { AuthCredential } from './auth_credential';\nimport { injectRecaptchaFields } from '../../platform_browser/recaptcha/recaptcha_enterprise_verifier';\nimport { RecaptchaActionName, RecaptchaClientType } from '../../api';\n/**\n * Interface that represents the credentials returned by {@link EmailAuthProvider} for\n * {@link ProviderId}.PASSWORD\n *\n * @remarks\n * Covers both {@link SignInMethod}.EMAIL_PASSWORD and\n * {@link SignInMethod}.EMAIL_LINK.\n *\n * @public\n */\nexport class EmailAuthCredential extends AuthCredential {\n /** @internal */\n private constructor(\n /** @internal */\n readonly _email: string,\n /** @internal */\n readonly _password: string,\n signInMethod: SignInMethod,\n /** @internal */\n readonly _tenantId: string | null = null\n ) {\n super(ProviderId.PASSWORD, signInMethod);\n }\n\n /** @internal */\n static _fromEmailAndPassword(\n email: string,\n password: string\n ): EmailAuthCredential {\n return new EmailAuthCredential(\n email,\n password,\n SignInMethod.EMAIL_PASSWORD\n );\n }\n\n /** @internal */\n static _fromEmailAndCode(\n email: string,\n oobCode: string,\n tenantId: string | null = null\n ): EmailAuthCredential {\n return new EmailAuthCredential(\n email,\n oobCode,\n SignInMethod.EMAIL_LINK,\n tenantId\n );\n }\n\n /** {@inheritdoc AuthCredential.toJSON} */\n toJSON(): object {\n return {\n email: this._email,\n password: this._password,\n signInMethod: this.signInMethod,\n tenantId: this._tenantId\n };\n }\n\n /**\n * Static method to deserialize a JSON representation of an object into an {@link AuthCredential}.\n *\n * @param json - Either `object` or the stringified representation of the object. When string is\n * provided, `JSON.parse` would be called first.\n *\n * @returns If the JSON input does not represent an {@link AuthCredential}, null is returned.\n */\n static fromJSON(json: object | string): EmailAuthCredential | null {\n const obj = typeof json === 'string' ? JSON.parse(json) : json;\n if (obj?.email && obj?.password) {\n if (obj.signInMethod === SignInMethod.EMAIL_PASSWORD) {\n return this._fromEmailAndPassword(obj.email, obj.password);\n } else if (obj.signInMethod === SignInMethod.EMAIL_LINK) {\n return this._fromEmailAndCode(obj.email, obj.password, obj.tenantId);\n }\n }\n return null;\n }\n\n /** @internal */\n async _getIdTokenResponse(auth: AuthInternal): Promise {\n switch (this.signInMethod) {\n case SignInMethod.EMAIL_PASSWORD:\n const request: SignInWithPasswordRequest = {\n returnSecureToken: true,\n email: this._email,\n password: this._password,\n clientType: RecaptchaClientType.WEB\n };\n if (auth._getRecaptchaConfig()?.emailPasswordEnabled) {\n const requestWithRecaptcha = await injectRecaptchaFields(\n auth,\n request,\n RecaptchaActionName.SIGN_IN_WITH_PASSWORD\n );\n return signInWithPassword(auth, requestWithRecaptcha);\n } else {\n return signInWithPassword(auth, request).catch(async error => {\n if (\n error.code === `auth/${AuthErrorCode.MISSING_RECAPTCHA_TOKEN}`\n ) {\n console.log(\n 'Sign-in with email address and password is protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the sign-in flow.'\n );\n const requestWithRecaptcha = await injectRecaptchaFields(\n auth,\n request,\n RecaptchaActionName.SIGN_IN_WITH_PASSWORD\n );\n return signInWithPassword(auth, requestWithRecaptcha);\n } else {\n return Promise.reject(error);\n }\n });\n }\n case SignInMethod.EMAIL_LINK:\n return signInWithEmailLink(auth, {\n email: this._email,\n oobCode: this._password\n });\n default:\n _fail(auth, AuthErrorCode.INTERNAL_ERROR);\n }\n }\n\n /** @internal */\n async _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n switch (this.signInMethod) {\n case SignInMethod.EMAIL_PASSWORD:\n return updateEmailPassword(auth, {\n idToken,\n returnSecureToken: true,\n email: this._email,\n password: this._password\n });\n case SignInMethod.EMAIL_LINK:\n return signInWithEmailLinkForLinking(auth, {\n idToken,\n email: this._email,\n oobCode: this._password\n });\n default:\n _fail(auth, AuthErrorCode.INTERNAL_ERROR);\n }\n }\n\n /** @internal */\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n return this._getIdTokenResponse(auth);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n _performSignInRequest,\n Endpoint,\n HttpMethod,\n _addTidIfNecessary\n} from '../index';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { Auth } from '../../model/public_types';\n\nexport interface SignInWithEmailLinkRequest {\n email: string;\n oobCode: string;\n tenantId?: string;\n}\n\nexport interface SignInWithEmailLinkResponse extends IdTokenResponse {\n email: string;\n isNewUser: boolean;\n}\n\nexport async function signInWithEmailLink(\n auth: Auth,\n request: SignInWithEmailLinkRequest\n): Promise {\n return _performSignInRequest<\n SignInWithEmailLinkRequest,\n SignInWithEmailLinkResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_EMAIL_LINK,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface SignInWithEmailLinkForLinkingRequest\n extends SignInWithEmailLinkRequest {\n idToken: string;\n}\n\nexport async function signInWithEmailLinkForLinking(\n auth: Auth,\n request: SignInWithEmailLinkForLinkingRequest\n): Promise {\n return _performSignInRequest<\n SignInWithEmailLinkForLinkingRequest,\n SignInWithEmailLinkResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_EMAIL_LINK,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performSignInRequest\n} from '../index';\nimport { IdToken, IdTokenResponse } from '../../model/id_token';\nimport { Auth } from '../../model/public_types';\n\nexport interface SignInWithIdpRequest {\n requestUri: string;\n postBody?: string;\n sessionId?: string;\n tenantId?: string;\n returnSecureToken: boolean;\n returnIdpCredential?: boolean;\n idToken?: IdToken;\n autoCreate?: boolean;\n pendingToken?: string;\n}\n\n/**\n * @internal\n */\nexport interface SignInWithIdpResponse extends IdTokenResponse {\n oauthAccessToken?: string;\n oauthTokenSecret?: string;\n nonce?: string;\n oauthIdToken?: string;\n pendingToken?: string;\n}\n\nexport async function signInWithIdp(\n auth: Auth,\n request: SignInWithIdpRequest\n): Promise {\n return _performSignInRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_IDP,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { querystring } from '@firebase/util';\n\nimport {\n signInWithIdp,\n SignInWithIdpRequest\n} from '../../api/authentication/idp';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthErrorCode } from '../errors';\nimport { _fail } from '../util/assert';\nimport { AuthCredential } from './auth_credential';\n\nconst IDP_REQUEST_URI = 'http://localhost';\n\nexport interface OAuthCredentialParams {\n // OAuth 2 uses either id token or access token\n idToken?: string | null;\n accessToken?: string | null;\n\n // These fields are used with OAuth 1\n oauthToken?: string;\n secret?: string;\n oauthTokenSecret?: string;\n\n // Nonce is only set if pendingToken is not present\n nonce?: string;\n pendingToken?: string;\n\n // Utilities\n providerId: string;\n signInMethod: string;\n}\n\n/**\n * Represents the OAuth credentials returned by an {@link OAuthProvider}.\n *\n * @remarks\n * Implementations specify the details about each auth provider's credential requirements.\n *\n * @public\n */\nexport class OAuthCredential extends AuthCredential {\n /**\n * The OAuth ID token associated with the credential if it belongs to an OIDC provider,\n * such as `google.com`.\n * @readonly\n */\n idToken?: string;\n /**\n * The OAuth access token associated with the credential if it belongs to an\n * {@link OAuthProvider}, such as `facebook.com`, `twitter.com`, etc.\n * @readonly\n */\n accessToken?: string;\n /**\n * The OAuth access token secret associated with the credential if it belongs to an OAuth 1.0\n * provider, such as `twitter.com`.\n * @readonly\n */\n secret?: string;\n\n private nonce?: string;\n private pendingToken: string | null = null;\n\n /** @internal */\n static _fromParams(params: OAuthCredentialParams): OAuthCredential {\n const cred = new OAuthCredential(params.providerId, params.signInMethod);\n\n if (params.idToken || params.accessToken) {\n // OAuth 2 and either ID token or access token.\n if (params.idToken) {\n cred.idToken = params.idToken;\n }\n\n if (params.accessToken) {\n cred.accessToken = params.accessToken;\n }\n\n // Add nonce if available and no pendingToken is present.\n if (params.nonce && !params.pendingToken) {\n cred.nonce = params.nonce;\n }\n\n if (params.pendingToken) {\n cred.pendingToken = params.pendingToken;\n }\n } else if (params.oauthToken && params.oauthTokenSecret) {\n // OAuth 1 and OAuth token with token secret\n cred.accessToken = params.oauthToken;\n cred.secret = params.oauthTokenSecret;\n } else {\n _fail(AuthErrorCode.ARGUMENT_ERROR);\n }\n\n return cred;\n }\n\n /** {@inheritdoc AuthCredential.toJSON} */\n toJSON(): object {\n return {\n idToken: this.idToken,\n accessToken: this.accessToken,\n secret: this.secret,\n nonce: this.nonce,\n pendingToken: this.pendingToken,\n providerId: this.providerId,\n signInMethod: this.signInMethod\n };\n }\n\n /**\n * Static method to deserialize a JSON representation of an object into an\n * {@link AuthCredential}.\n *\n * @param json - Input can be either Object or the stringified representation of the object.\n * When string is provided, JSON.parse would be called first.\n *\n * @returns If the JSON input does not represent an {@link AuthCredential}, null is returned.\n */\n static fromJSON(json: string | object): OAuthCredential | null {\n const obj = typeof json === 'string' ? JSON.parse(json) : json;\n const { providerId, signInMethod, ...rest }: OAuthCredentialParams = obj;\n if (!providerId || !signInMethod) {\n return null;\n }\n\n const cred = new OAuthCredential(providerId, signInMethod);\n cred.idToken = rest.idToken || undefined;\n cred.accessToken = rest.accessToken || undefined;\n cred.secret = rest.secret;\n cred.nonce = rest.nonce;\n cred.pendingToken = rest.pendingToken || null;\n return cred;\n }\n\n /** @internal */\n _getIdTokenResponse(auth: AuthInternal): Promise {\n const request = this.buildRequest();\n return signInWithIdp(auth, request);\n }\n\n /** @internal */\n _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n const request = this.buildRequest();\n request.idToken = idToken;\n return signInWithIdp(auth, request);\n }\n\n /** @internal */\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n const request = this.buildRequest();\n request.autoCreate = false;\n return signInWithIdp(auth, request);\n }\n\n private buildRequest(): SignInWithIdpRequest {\n const request: SignInWithIdpRequest = {\n requestUri: IDP_REQUEST_URI,\n returnSecureToken: true\n };\n\n if (this.pendingToken) {\n request.pendingToken = this.pendingToken;\n } else {\n const postBody: Record = {};\n if (this.idToken) {\n postBody['id_token'] = this.idToken;\n }\n if (this.accessToken) {\n postBody['access_token'] = this.accessToken;\n }\n if (this.secret) {\n postBody['oauth_token_secret'] = this.secret;\n }\n\n postBody['providerId'] = this.providerId;\n if (this.nonce && !this.pendingToken) {\n postBody['nonce'] = this.nonce;\n }\n\n request.postBody = querystring(postBody);\n }\n\n return request;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _makeTaggedError,\n _performApiRequest,\n _performSignInRequest\n} from '../index';\nimport { AuthErrorCode } from '../../core/errors';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { ServerError, ServerErrorMap } from '../errors';\nimport { Auth } from '../../model/public_types';\n\nexport interface SendPhoneVerificationCodeRequest {\n phoneNumber: string;\n recaptchaToken: string;\n tenantId?: string;\n}\n\nexport interface SendPhoneVerificationCodeResponse {\n sessionInfo: string;\n}\n\nexport async function sendPhoneVerificationCode(\n auth: Auth,\n request: SendPhoneVerificationCodeRequest\n): Promise {\n return _performApiRequest<\n SendPhoneVerificationCodeRequest,\n SendPhoneVerificationCodeResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SEND_VERIFICATION_CODE,\n _addTidIfNecessary(auth, request)\n );\n}\n\n/**\n * @internal\n */\nexport interface SignInWithPhoneNumberRequest {\n temporaryProof?: string;\n phoneNumber?: string;\n sessionInfo?: string;\n code?: string;\n tenantId?: string;\n}\n\nexport interface LinkWithPhoneNumberRequest\n extends SignInWithPhoneNumberRequest {\n idToken: string;\n}\n\n/**\n * @internal\n */\nexport interface SignInWithPhoneNumberResponse extends IdTokenResponse {\n temporaryProof?: string;\n phoneNumber?: string;\n}\n\nexport async function signInWithPhoneNumber(\n auth: Auth,\n request: SignInWithPhoneNumberRequest\n): Promise {\n return _performSignInRequest<\n SignInWithPhoneNumberRequest,\n SignInWithPhoneNumberResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_PHONE_NUMBER,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport async function linkWithPhoneNumber(\n auth: Auth,\n request: LinkWithPhoneNumberRequest\n): Promise {\n const response = await _performSignInRequest<\n LinkWithPhoneNumberRequest,\n SignInWithPhoneNumberResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_PHONE_NUMBER,\n _addTidIfNecessary(auth, request)\n );\n if (response.temporaryProof) {\n throw _makeTaggedError(auth, AuthErrorCode.NEED_CONFIRMATION, response);\n }\n return response;\n}\n\ninterface VerifyPhoneNumberForExistingRequest\n extends SignInWithPhoneNumberRequest {\n operation: 'REAUTH';\n}\n\nconst VERIFY_PHONE_NUMBER_FOR_EXISTING_ERROR_MAP_: Partial<\n ServerErrorMap\n> = {\n [ServerError.USER_NOT_FOUND]: AuthErrorCode.USER_DELETED\n};\n\nexport async function verifyPhoneNumberForExisting(\n auth: Auth,\n request: SignInWithPhoneNumberRequest\n): Promise {\n const apiRequest: VerifyPhoneNumberForExistingRequest = {\n ...request,\n operation: 'REAUTH'\n };\n return _performSignInRequest<\n VerifyPhoneNumberForExistingRequest,\n SignInWithPhoneNumberResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_PHONE_NUMBER,\n _addTidIfNecessary(auth, apiRequest),\n VERIFY_PHONE_NUMBER_FOR_EXISTING_ERROR_MAP_\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\nimport { PhoneOrOauthTokenResponse } from '../../api/authentication/mfa';\nimport {\n linkWithPhoneNumber,\n signInWithPhoneNumber,\n SignInWithPhoneNumberRequest,\n verifyPhoneNumberForExisting\n} from '../../api/authentication/sms';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthCredential } from './auth_credential';\n\nexport interface PhoneAuthCredentialParameters {\n verificationId?: string;\n verificationCode?: string;\n phoneNumber?: string;\n temporaryProof?: string;\n}\n\n/**\n * Represents the credentials returned by {@link PhoneAuthProvider}.\n *\n * @public\n */\nexport class PhoneAuthCredential extends AuthCredential {\n private constructor(private readonly params: PhoneAuthCredentialParameters) {\n super(ProviderId.PHONE, SignInMethod.PHONE);\n }\n\n /** @internal */\n static _fromVerification(\n verificationId: string,\n verificationCode: string\n ): PhoneAuthCredential {\n return new PhoneAuthCredential({ verificationId, verificationCode });\n }\n\n /** @internal */\n static _fromTokenResponse(\n phoneNumber: string,\n temporaryProof: string\n ): PhoneAuthCredential {\n return new PhoneAuthCredential({ phoneNumber, temporaryProof });\n }\n\n /** @internal */\n _getIdTokenResponse(auth: AuthInternal): Promise {\n return signInWithPhoneNumber(auth, this._makeVerificationRequest());\n }\n\n /** @internal */\n _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n return linkWithPhoneNumber(auth, {\n idToken,\n ...this._makeVerificationRequest()\n });\n }\n\n /** @internal */\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n return verifyPhoneNumberForExisting(auth, this._makeVerificationRequest());\n }\n\n /** @internal */\n _makeVerificationRequest(): SignInWithPhoneNumberRequest {\n const { temporaryProof, phoneNumber, verificationId, verificationCode } =\n this.params;\n if (temporaryProof && phoneNumber) {\n return { temporaryProof, phoneNumber };\n }\n\n return {\n sessionInfo: verificationId,\n code: verificationCode\n };\n }\n\n /** {@inheritdoc AuthCredential.toJSON} */\n toJSON(): object {\n const obj: Record = {\n providerId: this.providerId\n };\n if (this.params.phoneNumber) {\n obj.phoneNumber = this.params.phoneNumber;\n }\n if (this.params.temporaryProof) {\n obj.temporaryProof = this.params.temporaryProof;\n }\n if (this.params.verificationCode) {\n obj.verificationCode = this.params.verificationCode;\n }\n if (this.params.verificationId) {\n obj.verificationId = this.params.verificationId;\n }\n\n return obj;\n }\n\n /** Generates a phone credential based on a plain object or a JSON string. */\n static fromJSON(json: object | string): PhoneAuthCredential | null {\n if (typeof json === 'string') {\n json = JSON.parse(json);\n }\n\n const { verificationId, verificationCode, phoneNumber, temporaryProof } =\n json as { [key: string]: string };\n if (\n !verificationCode &&\n !verificationId &&\n !phoneNumber &&\n !temporaryProof\n ) {\n return null;\n }\n\n return new PhoneAuthCredential({\n verificationId,\n verificationCode,\n phoneNumber,\n temporaryProof\n });\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { extractQuerystring, querystringDecode } from '@firebase/util';\nimport { ActionCodeOperation } from '../model/public_types';\nimport { AuthErrorCode } from './errors';\nimport { _assert } from './util/assert';\n\n/**\n * Enums for fields in URL query string.\n *\n * @enum {string}\n */\nconst enum QueryField {\n API_KEY = 'apiKey',\n CODE = 'oobCode',\n CONTINUE_URL = 'continueUrl',\n LANGUAGE_CODE = 'languageCode',\n MODE = 'mode',\n TENANT_ID = 'tenantId'\n}\n\n/**\n * Maps the mode string in action code URL to Action Code Info operation.\n *\n * @param mode\n */\nfunction parseMode(mode: string | null): ActionCodeOperation | null {\n switch (mode) {\n case 'recoverEmail':\n return ActionCodeOperation.RECOVER_EMAIL;\n case 'resetPassword':\n return ActionCodeOperation.PASSWORD_RESET;\n case 'signIn':\n return ActionCodeOperation.EMAIL_SIGNIN;\n case 'verifyEmail':\n return ActionCodeOperation.VERIFY_EMAIL;\n case 'verifyAndChangeEmail':\n return ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL;\n case 'revertSecondFactorAddition':\n return ActionCodeOperation.REVERT_SECOND_FACTOR_ADDITION;\n default:\n return null;\n }\n}\n\n/**\n * Helper to parse FDL links\n *\n * @param url\n */\nfunction parseDeepLink(url: string): string {\n const link = querystringDecode(extractQuerystring(url))['link'];\n\n // Double link case (automatic redirect).\n const doubleDeepLink = link\n ? querystringDecode(extractQuerystring(link))['deep_link_id']\n : null;\n // iOS custom scheme links.\n const iOSDeepLink = querystringDecode(extractQuerystring(url))[\n 'deep_link_id'\n ];\n const iOSDoubleDeepLink = iOSDeepLink\n ? querystringDecode(extractQuerystring(iOSDeepLink))['link']\n : null;\n return iOSDoubleDeepLink || iOSDeepLink || doubleDeepLink || link || url;\n}\n\n/**\n * A utility class to parse email action URLs such as password reset, email verification,\n * email link sign in, etc.\n *\n * @public\n */\nexport class ActionCodeURL {\n /**\n * The API key of the email action link.\n */\n readonly apiKey: string;\n /**\n * The action code of the email action link.\n */\n readonly code: string;\n /**\n * The continue URL of the email action link. Null if not provided.\n */\n readonly continueUrl: string | null;\n /**\n * The language code of the email action link. Null if not provided.\n */\n readonly languageCode: string | null;\n /**\n * The action performed by the email action link. It returns from one of the types from\n * {@link ActionCodeInfo}\n */\n readonly operation: string;\n /**\n * The tenant ID of the email action link. Null if the email action is from the parent project.\n */\n readonly tenantId: string | null;\n\n /**\n * @param actionLink - The link from which to extract the URL.\n * @returns The {@link ActionCodeURL} object, or null if the link is invalid.\n *\n * @internal\n */\n constructor(actionLink: string) {\n const searchParams = querystringDecode(extractQuerystring(actionLink));\n const apiKey = searchParams[QueryField.API_KEY] ?? null;\n const code = searchParams[QueryField.CODE] ?? null;\n const operation = parseMode(searchParams[QueryField.MODE] ?? null);\n // Validate API key, code and mode.\n _assert(apiKey && code && operation, AuthErrorCode.ARGUMENT_ERROR);\n this.apiKey = apiKey;\n this.operation = operation;\n this.code = code;\n this.continueUrl = searchParams[QueryField.CONTINUE_URL] ?? null;\n this.languageCode = searchParams[QueryField.LANGUAGE_CODE] ?? null;\n this.tenantId = searchParams[QueryField.TENANT_ID] ?? null;\n }\n\n /**\n * Parses the email action link string and returns an {@link ActionCodeURL} if the link is valid,\n * otherwise returns null.\n *\n * @param link - The email action link string.\n * @returns The {@link ActionCodeURL} object, or null if the link is invalid.\n *\n * @public\n */\n static parseLink(link: string): ActionCodeURL | null {\n const actionLink = parseDeepLink(link);\n try {\n return new ActionCodeURL(actionLink);\n } catch {\n return null;\n }\n }\n}\n\n/**\n * Parses the email action link string and returns an {@link ActionCodeURL} if\n * the link is valid, otherwise returns null.\n *\n * @public\n */\nexport function parseActionCodeURL(link: string): ActionCodeURL | null {\n return ActionCodeURL.parseLink(link);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ProviderId, SignInMethod } from '../../model/enums';\nimport { AuthProvider } from '../../model/public_types';\n\nimport { ActionCodeURL } from '../action_code_url';\nimport { EmailAuthCredential } from '../credentials/email';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\n\n/**\n * Provider for generating {@link EmailAuthCredential}.\n *\n * @public\n */\nexport class EmailAuthProvider implements AuthProvider {\n /**\n * Always set to {@link ProviderId}.PASSWORD, even for email link.\n */\n static readonly PROVIDER_ID: 'password' = ProviderId.PASSWORD;\n /**\n * Always set to {@link SignInMethod}.EMAIL_PASSWORD.\n */\n static readonly EMAIL_PASSWORD_SIGN_IN_METHOD: 'password' =\n SignInMethod.EMAIL_PASSWORD;\n /**\n * Always set to {@link SignInMethod}.EMAIL_LINK.\n */\n static readonly EMAIL_LINK_SIGN_IN_METHOD: 'emailLink' =\n SignInMethod.EMAIL_LINK;\n /**\n * Always set to {@link ProviderId}.PASSWORD, even for email link.\n */\n readonly providerId = EmailAuthProvider.PROVIDER_ID;\n\n /**\n * Initialize an {@link AuthCredential} using an email and password.\n *\n * @example\n * ```javascript\n * const authCredential = EmailAuthProvider.credential(email, password);\n * const userCredential = await signInWithCredential(auth, authCredential);\n * ```\n *\n * @example\n * ```javascript\n * const userCredential = await signInWithEmailAndPassword(auth, email, password);\n * ```\n *\n * @param email - Email address.\n * @param password - User account password.\n * @returns The auth provider credential.\n */\n static credential(email: string, password: string): EmailAuthCredential {\n return EmailAuthCredential._fromEmailAndPassword(email, password);\n }\n\n /**\n * Initialize an {@link AuthCredential} using an email and an email link after a sign in with\n * email link operation.\n *\n * @example\n * ```javascript\n * const authCredential = EmailAuthProvider.credentialWithLink(auth, email, emailLink);\n * const userCredential = await signInWithCredential(auth, authCredential);\n * ```\n *\n * @example\n * ```javascript\n * await sendSignInLinkToEmail(auth, email);\n * // Obtain emailLink from user.\n * const userCredential = await signInWithEmailLink(auth, email, emailLink);\n * ```\n *\n * @param auth - The {@link Auth} instance used to verify the link.\n * @param email - Email address.\n * @param emailLink - Sign-in email link.\n * @returns - The auth provider credential.\n */\n static credentialWithLink(\n email: string,\n emailLink: string\n ): EmailAuthCredential {\n const actionCodeUrl = ActionCodeURL.parseLink(emailLink);\n _assert(actionCodeUrl, AuthErrorCode.ARGUMENT_ERROR);\n\n return EmailAuthCredential._fromEmailAndCode(\n email,\n actionCodeUrl.code,\n actionCodeUrl.tenantId\n );\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthProvider } from '../../model/public_types';\n\n/**\n * Map of OAuth Custom Parameters.\n *\n * @public\n */\nexport type CustomParameters = Record;\n\n/**\n * The base class for all Federated providers (OAuth (including OIDC), SAML).\n *\n * This class is not meant to be instantiated directly.\n *\n * @public\n */\nexport abstract class FederatedAuthProvider implements AuthProvider {\n /** @internal */\n defaultLanguageCode: string | null = null;\n /** @internal */\n private customParameters: CustomParameters = {};\n\n /**\n * Constructor for generic OAuth providers.\n *\n * @param providerId - Provider for which credentials should be generated.\n */\n constructor(readonly providerId: string) {}\n\n /**\n * Set the language gode.\n *\n * @param languageCode - language code\n */\n setDefaultLanguage(languageCode: string | null): void {\n this.defaultLanguageCode = languageCode;\n }\n\n /**\n * Sets the OAuth custom parameters to pass in an OAuth request for popup and redirect sign-in\n * operations.\n *\n * @remarks\n * For a detailed list, check the reserved required OAuth 2.0 parameters such as `client_id`,\n * `redirect_uri`, `scope`, `response_type`, and `state` are not allowed and will be ignored.\n *\n * @param customOAuthParameters - The custom OAuth parameters to pass in the OAuth request.\n */\n setCustomParameters(customOAuthParameters: CustomParameters): AuthProvider {\n this.customParameters = customOAuthParameters;\n return this;\n }\n\n /**\n * Retrieve the current list of {@link CustomParameters}.\n */\n getCustomParameters(): CustomParameters {\n return this.customParameters;\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthProvider, UserCredential } from '../../model/public_types';\n\nimport { _assert } from '../util/assert';\nimport { AuthErrorCode } from '../errors';\n\nimport { OAuthCredential, OAuthCredentialParams } from '../credentials/oauth';\nimport { UserCredentialInternal } from '../../model/user';\nimport { FirebaseError } from '@firebase/util';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { SignInWithIdpResponse } from '../../../internal';\nimport { FederatedAuthProvider } from './federated';\n\n/**\n * Defines the options for initializing an {@link OAuthCredential}.\n *\n * @remarks\n * For ID tokens with nonce claim, the raw nonce has to also be provided.\n *\n * @public\n */\nexport interface OAuthCredentialOptions {\n /**\n * The OAuth ID token used to initialize the {@link OAuthCredential}.\n */\n idToken?: string;\n /**\n * The OAuth access token used to initialize the {@link OAuthCredential}.\n */\n accessToken?: string;\n /**\n * The raw nonce associated with the ID token.\n *\n * @remarks\n * It is required when an ID token with a nonce field is provided. The SHA-256 hash of the\n * raw nonce must match the nonce field in the ID token.\n */\n rawNonce?: string;\n}\n\n/**\n * Common code to all OAuth providers. This is separate from the\n * {@link OAuthProvider} so that child providers (like\n * {@link GoogleAuthProvider}) don't inherit the `credential` instance method.\n * Instead, they rely on a static `credential` method.\n */\nexport abstract class BaseOAuthProvider\n extends FederatedAuthProvider\n implements AuthProvider\n{\n /** @internal */\n private scopes: string[] = [];\n\n /**\n * Add an OAuth scope to the credential.\n *\n * @param scope - Provider OAuth scope to add.\n */\n addScope(scope: string): AuthProvider {\n // If not already added, add scope to list.\n if (!this.scopes.includes(scope)) {\n this.scopes.push(scope);\n }\n return this;\n }\n\n /**\n * Retrieve the current list of OAuth scopes.\n */\n getScopes(): string[] {\n return [...this.scopes];\n }\n}\n\n/**\n * Provider for generating generic {@link OAuthCredential}.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new OAuthProvider('google.com');\n * // Start a sign in process for an unauthenticated user.\n * provider.addScope('profile');\n * provider.addScope('email');\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a OAuth Access Token for the provider.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new OAuthProvider('google.com');\n * provider.addScope('profile');\n * provider.addScope('email');\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a OAuth Access Token for the provider.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * ```\n * @public\n */\nexport class OAuthProvider extends BaseOAuthProvider {\n /**\n * Creates an {@link OAuthCredential} from a JSON string or a plain object.\n * @param json - A plain object or a JSON string\n */\n static credentialFromJSON(json: object | string): OAuthCredential {\n const obj = typeof json === 'string' ? JSON.parse(json) : json;\n _assert(\n 'providerId' in obj && 'signInMethod' in obj,\n AuthErrorCode.ARGUMENT_ERROR\n );\n return OAuthCredential._fromParams(obj);\n }\n\n /**\n * Creates a {@link OAuthCredential} from a generic OAuth provider's access token or ID token.\n *\n * @remarks\n * The raw nonce is required when an ID token with a nonce field is provided. The SHA-256 hash of\n * the raw nonce must match the nonce field in the ID token.\n *\n * @example\n * ```javascript\n * // `googleUser` from the onsuccess Google Sign In callback.\n * // Initialize a generate OAuth provider with a `google.com` providerId.\n * const provider = new OAuthProvider('google.com');\n * const credential = provider.credential({\n * idToken: googleUser.getAuthResponse().id_token,\n * });\n * const result = await signInWithCredential(credential);\n * ```\n *\n * @param params - Either the options object containing the ID token, access token and raw nonce\n * or the ID token string.\n */\n credential(params: OAuthCredentialOptions): OAuthCredential {\n return this._credential({ ...params, nonce: params.rawNonce });\n }\n\n /** An internal credential method that accepts more permissive options */\n private _credential(\n params: Omit\n ): OAuthCredential {\n _assert(params.idToken || params.accessToken, AuthErrorCode.ARGUMENT_ERROR);\n // For OAuthCredential, sign in method is same as providerId.\n return OAuthCredential._fromParams({\n ...params,\n providerId: this.providerId,\n signInMethod: this.providerId\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return OAuthProvider.oauthCredentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return OAuthProvider.oauthCredentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static oauthCredentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n\n const {\n oauthIdToken,\n oauthAccessToken,\n oauthTokenSecret,\n pendingToken,\n nonce,\n providerId\n } = tokenResponse as SignInWithIdpResponse;\n if (\n !oauthAccessToken &&\n !oauthTokenSecret &&\n !oauthIdToken &&\n !pendingToken\n ) {\n return null;\n }\n\n if (!providerId) {\n return null;\n }\n\n try {\n return new OAuthProvider(providerId)._credential({\n idToken: oauthIdToken,\n accessToken: oauthAccessToken,\n nonce,\n pendingToken\n });\n } catch (e) {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential } from '../../model/public_types';\nimport { FirebaseError } from '@firebase/util';\n\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredentialInternal } from '../../model/user';\nimport { OAuthCredential } from '../credentials/oauth';\nimport { BaseOAuthProvider } from './oauth';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link OAuthCredential} for {@link ProviderId}.FACEBOOK.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new FacebookAuthProvider();\n * // Start a sign in process for an unauthenticated user.\n * provider.addScope('user_birthday');\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = FacebookAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new FacebookAuthProvider();\n * provider.addScope('user_birthday');\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = FacebookAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * ```\n *\n * @public\n */\nexport class FacebookAuthProvider extends BaseOAuthProvider {\n /** Always set to {@link SignInMethod}.FACEBOOK. */\n static readonly FACEBOOK_SIGN_IN_METHOD: 'facebook.com' =\n SignInMethod.FACEBOOK;\n /** Always set to {@link ProviderId}.FACEBOOK. */\n static readonly PROVIDER_ID: 'facebook.com' = ProviderId.FACEBOOK;\n\n constructor() {\n super(ProviderId.FACEBOOK);\n }\n\n /**\n * Creates a credential for Facebook.\n *\n * @example\n * ```javascript\n * // `event` from the Facebook auth.authResponseChange callback.\n * const credential = FacebookAuthProvider.credential(event.authResponse.accessToken);\n * const result = await signInWithCredential(credential);\n * ```\n *\n * @param accessToken - Facebook access token.\n */\n static credential(accessToken: string): OAuthCredential {\n return OAuthCredential._fromParams({\n providerId: FacebookAuthProvider.PROVIDER_ID,\n signInMethod: FacebookAuthProvider.FACEBOOK_SIGN_IN_METHOD,\n accessToken\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return FacebookAuthProvider.credentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return FacebookAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse || !('oauthAccessToken' in tokenResponse)) {\n return null;\n }\n\n if (!tokenResponse.oauthAccessToken) {\n return null;\n }\n\n try {\n return FacebookAuthProvider.credential(tokenResponse.oauthAccessToken);\n } catch {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential } from '../../model/public_types';\nimport { FirebaseError } from '@firebase/util';\n\nimport { SignInWithIdpResponse } from '../../api/authentication/idp';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredentialInternal } from '../../model/user';\nimport { OAuthCredential } from '../credentials/oauth';\nimport { BaseOAuthProvider } from './oauth';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an an {@link OAuthCredential} for {@link ProviderId}.GOOGLE.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new GoogleAuthProvider();\n * // Start a sign in process for an unauthenticated user.\n * provider.addScope('profile');\n * provider.addScope('email');\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Google Access Token.\n * const credential = GoogleAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new GoogleAuthProvider();\n * provider.addScope('profile');\n * provider.addScope('email');\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Google Access Token.\n * const credential = GoogleAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * ```\n *\n * @public\n */\nexport class GoogleAuthProvider extends BaseOAuthProvider {\n /** Always set to {@link SignInMethod}.GOOGLE. */\n static readonly GOOGLE_SIGN_IN_METHOD: 'google.com' = SignInMethod.GOOGLE;\n /** Always set to {@link ProviderId}.GOOGLE. */\n static readonly PROVIDER_ID: 'google.com' = ProviderId.GOOGLE;\n\n constructor() {\n super(ProviderId.GOOGLE);\n this.addScope('profile');\n }\n\n /**\n * Creates a credential for Google. At least one of ID token and access token is required.\n *\n * @example\n * ```javascript\n * // \\`googleUser\\` from the onsuccess Google Sign In callback.\n * const credential = GoogleAuthProvider.credential(googleUser.getAuthResponse().id_token);\n * const result = await signInWithCredential(credential);\n * ```\n *\n * @param idToken - Google ID token.\n * @param accessToken - Google access token.\n */\n static credential(\n idToken?: string | null,\n accessToken?: string | null\n ): OAuthCredential {\n return OAuthCredential._fromParams({\n providerId: GoogleAuthProvider.PROVIDER_ID,\n signInMethod: GoogleAuthProvider.GOOGLE_SIGN_IN_METHOD,\n idToken,\n accessToken\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return GoogleAuthProvider.credentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return GoogleAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n\n const { oauthIdToken, oauthAccessToken } =\n tokenResponse as SignInWithIdpResponse;\n if (!oauthIdToken && !oauthAccessToken) {\n // This could be an oauth 1 credential or a phone credential\n return null;\n }\n\n try {\n return GoogleAuthProvider.credential(oauthIdToken, oauthAccessToken);\n } catch {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential } from '../../model/public_types';\nimport { FirebaseError } from '@firebase/util';\n\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredentialInternal } from '../../model/user';\nimport { OAuthCredential } from '../credentials/oauth';\nimport { BaseOAuthProvider } from './oauth';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link OAuthCredential} for {@link ProviderId}.GITHUB.\n *\n * @remarks\n * GitHub requires an OAuth 2.0 redirect, so you can either handle the redirect directly, or use\n * the {@link signInWithPopup} handler:\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new GithubAuthProvider();\n * // Start a sign in process for an unauthenticated user.\n * provider.addScope('repo');\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Github Access Token.\n * const credential = GithubAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new GithubAuthProvider();\n * provider.addScope('repo');\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Github Access Token.\n * const credential = GithubAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * ```\n * @public\n */\nexport class GithubAuthProvider extends BaseOAuthProvider {\n /** Always set to {@link SignInMethod}.GITHUB. */\n static readonly GITHUB_SIGN_IN_METHOD: 'github.com' = SignInMethod.GITHUB;\n /** Always set to {@link ProviderId}.GITHUB. */\n static readonly PROVIDER_ID: 'github.com' = ProviderId.GITHUB;\n\n constructor() {\n super(ProviderId.GITHUB);\n }\n\n /**\n * Creates a credential for Github.\n *\n * @param accessToken - Github access token.\n */\n static credential(accessToken: string): OAuthCredential {\n return OAuthCredential._fromParams({\n providerId: GithubAuthProvider.PROVIDER_ID,\n signInMethod: GithubAuthProvider.GITHUB_SIGN_IN_METHOD,\n accessToken\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return GithubAuthProvider.credentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return GithubAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse || !('oauthAccessToken' in tokenResponse)) {\n return null;\n }\n\n if (!tokenResponse.oauthAccessToken) {\n return null;\n }\n\n try {\n return GithubAuthProvider.credential(tokenResponse.oauthAccessToken);\n } catch {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Represents the SAML credentials returned by an {@link SAMLAuthProvider}.\n *\n * @public\n */\n\nimport {\n signInWithIdp,\n SignInWithIdpRequest\n} from '../../api/authentication/idp';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { AuthCredential } from './auth_credential';\n\nconst IDP_REQUEST_URI = 'http://localhost';\n\n/**\n * @public\n */\nexport class SAMLAuthCredential extends AuthCredential {\n /** @internal */\n private constructor(\n providerId: string,\n private readonly pendingToken: string\n ) {\n super(providerId, providerId);\n }\n\n /** @internal */\n _getIdTokenResponse(auth: AuthInternal): Promise {\n const request = this.buildRequest();\n return signInWithIdp(auth, request);\n }\n\n /** @internal */\n _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n const request = this.buildRequest();\n request.idToken = idToken;\n return signInWithIdp(auth, request);\n }\n\n /** @internal */\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n const request = this.buildRequest();\n request.autoCreate = false;\n return signInWithIdp(auth, request);\n }\n\n /** {@inheritdoc AuthCredential.toJSON} */\n toJSON(): object {\n return {\n signInMethod: this.signInMethod,\n providerId: this.providerId,\n pendingToken: this.pendingToken\n };\n }\n\n /**\n * Static method to deserialize a JSON representation of an object into an\n * {@link AuthCredential}.\n *\n * @param json - Input can be either Object or the stringified representation of the object.\n * When string is provided, JSON.parse would be called first.\n *\n * @returns If the JSON input does not represent an {@link AuthCredential}, null is returned.\n */\n static fromJSON(json: string | object): SAMLAuthCredential | null {\n const obj = typeof json === 'string' ? JSON.parse(json) : json;\n const { providerId, signInMethod, pendingToken }: Record =\n obj;\n if (\n !providerId ||\n !signInMethod ||\n !pendingToken ||\n providerId !== signInMethod\n ) {\n return null;\n }\n\n return new SAMLAuthCredential(providerId, pendingToken);\n }\n\n /**\n * Helper static method to avoid exposing the constructor to end users.\n *\n * @internal\n */\n static _create(providerId: string, pendingToken: string): SAMLAuthCredential {\n return new SAMLAuthCredential(providerId, pendingToken);\n }\n\n private buildRequest(): SignInWithIdpRequest {\n return {\n requestUri: IDP_REQUEST_URI,\n returnSecureToken: true,\n pendingToken: this.pendingToken\n };\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\nimport { SignInWithIdpResponse } from '../../api/authentication/idp';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredential } from '../../model/public_types';\nimport { UserCredentialInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { SAMLAuthCredential } from '../credentials/saml';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { FederatedAuthProvider } from './federated';\n\nconst SAML_PROVIDER_PREFIX = 'saml.';\n\n/**\n * An {@link AuthProvider} for SAML.\n *\n * @public\n */\nexport class SAMLAuthProvider extends FederatedAuthProvider {\n /**\n * Constructor. The providerId must start with \"saml.\"\n * @param providerId - SAML provider ID.\n */\n constructor(providerId: string) {\n _assert(\n providerId.startsWith(SAML_PROVIDER_PREFIX),\n AuthErrorCode.ARGUMENT_ERROR\n );\n super(providerId);\n }\n\n /**\n * Generates an {@link AuthCredential} from a {@link UserCredential} after a\n * successful SAML flow completes.\n *\n * @remarks\n *\n * For example, to get an {@link AuthCredential}, you could write the\n * following code:\n *\n * ```js\n * const userCredential = await signInWithPopup(auth, samlProvider);\n * const credential = SAMLAuthProvider.credentialFromResult(userCredential);\n * ```\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): AuthCredential | null {\n return SAMLAuthProvider.samlCredentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): AuthCredential | null {\n return SAMLAuthProvider.samlCredentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n /**\n * Creates an {@link AuthCredential} from a JSON string or a plain object.\n * @param json - A plain object or a JSON string\n */\n static credentialFromJSON(json: string | object): AuthCredential {\n const credential = SAMLAuthCredential.fromJSON(json);\n _assert(credential, AuthErrorCode.ARGUMENT_ERROR);\n return credential;\n }\n\n private static samlCredentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): SAMLAuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n\n const { pendingToken, providerId } = tokenResponse as SignInWithIdpResponse;\n\n if (!pendingToken || !providerId) {\n return null;\n }\n\n try {\n return SAMLAuthCredential._create(providerId, pendingToken);\n } catch (e) {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @license\n * Copyright 2020 Twitter LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential } from '../../model/public_types';\nimport { FirebaseError } from '@firebase/util';\n\nimport { SignInWithIdpResponse } from '../../api/authentication/idp';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { UserCredentialInternal } from '../../model/user';\nimport { OAuthCredential } from '../credentials/oauth';\nimport { BaseOAuthProvider } from './oauth';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link OAuthCredential} for {@link ProviderId}.TWITTER.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new TwitterAuthProvider();\n * // Start a sign in process for an unauthenticated user.\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Twitter Access Token and Secret.\n * const credential = TwitterAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * const secret = credential.secret;\n * }\n * ```\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new TwitterAuthProvider();\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Twitter Access Token and Secret.\n * const credential = TwitterAuthProvider.credentialFromResult(result);\n * const token = credential.accessToken;\n * const secret = credential.secret;\n * ```\n *\n * @public\n */\nexport class TwitterAuthProvider extends BaseOAuthProvider {\n /** Always set to {@link SignInMethod}.TWITTER. */\n static readonly TWITTER_SIGN_IN_METHOD: 'twitter.com' = SignInMethod.TWITTER;\n /** Always set to {@link ProviderId}.TWITTER. */\n static readonly PROVIDER_ID: 'twitter.com' = ProviderId.TWITTER;\n\n constructor() {\n super(ProviderId.TWITTER);\n }\n\n /**\n * Creates a credential for Twitter.\n *\n * @param token - Twitter access token.\n * @param secret - Twitter secret.\n */\n static credential(token: string, secret: string): OAuthCredential {\n return OAuthCredential._fromParams({\n providerId: TwitterAuthProvider.PROVIDER_ID,\n signInMethod: TwitterAuthProvider.TWITTER_SIGN_IN_METHOD,\n oauthToken: token,\n oauthTokenSecret: secret\n });\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link UserCredential}.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): OAuthCredential | null {\n return TwitterAuthProvider.credentialFromTaggedObject(\n userCredential as UserCredentialInternal\n );\n }\n\n /**\n * Used to extract the underlying {@link OAuthCredential} from a {@link AuthError} which was\n * thrown during a sign-in, link, or reauthenticate operation.\n *\n * @param userCredential - The user credential.\n */\n static credentialFromError(error: FirebaseError): OAuthCredential | null {\n return TwitterAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): OAuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n const { oauthAccessToken, oauthTokenSecret } =\n tokenResponse as SignInWithIdpResponse;\n if (!oauthAccessToken || !oauthTokenSecret) {\n return null;\n }\n\n try {\n return TwitterAuthProvider.credential(oauthAccessToken, oauthTokenSecret);\n } catch {\n return null;\n }\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n RecaptchaClientType,\n RecaptchaVersion,\n _addTidIfNecessary,\n _performSignInRequest\n} from '../index';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { Auth } from '../../model/public_types';\n\nexport interface SignUpRequest {\n returnSecureToken?: boolean;\n email?: string;\n password?: string;\n tenantId?: string;\n captchaResponse?: string;\n clientType?: RecaptchaClientType;\n recaptchaVersion?: RecaptchaVersion;\n}\n\nexport interface SignUpResponse extends IdTokenResponse {\n displayName?: string;\n email?: string;\n}\n\nexport async function signUp(\n auth: Auth,\n request: SignUpRequest\n): Promise {\n return _performSignInRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_UP,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PhoneOrOauthTokenResponse } from '../../api/authentication/mfa';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { UserInternal, UserCredentialInternal } from '../../model/user';\nimport { UserImpl } from './user_impl';\nimport { AuthInternal } from '../../model/auth';\nimport { OperationType, ProviderId } from '../../model/enums';\n\ninterface UserCredentialParams {\n readonly user: UserInternal;\n readonly providerId: ProviderId | string | null;\n readonly _tokenResponse?: PhoneOrOauthTokenResponse;\n readonly operationType: OperationType;\n}\n\nexport class UserCredentialImpl\n implements UserCredentialInternal, UserCredentialParams\n{\n readonly user: UserInternal;\n readonly providerId: ProviderId | string | null;\n readonly _tokenResponse: PhoneOrOauthTokenResponse | undefined;\n readonly operationType: OperationType;\n\n constructor(params: UserCredentialParams) {\n this.user = params.user;\n this.providerId = params.providerId;\n this._tokenResponse = params._tokenResponse;\n this.operationType = params.operationType;\n }\n\n static async _fromIdTokenResponse(\n auth: AuthInternal,\n operationType: OperationType,\n idTokenResponse: IdTokenResponse,\n isAnonymous: boolean = false\n ): Promise {\n const user = await UserImpl._fromIdTokenResponse(\n auth,\n idTokenResponse,\n isAnonymous\n );\n const providerId = providerIdForResponse(idTokenResponse);\n const userCred = new UserCredentialImpl({\n user,\n providerId,\n _tokenResponse: idTokenResponse,\n operationType\n });\n return userCred;\n }\n\n static async _forOperation(\n user: UserInternal,\n operationType: OperationType,\n response: PhoneOrOauthTokenResponse\n ): Promise {\n await user._updateTokensIfNecessary(response, /* reload */ true);\n const providerId = providerIdForResponse(response);\n return new UserCredentialImpl({\n user,\n providerId,\n _tokenResponse: response,\n operationType\n });\n }\n}\n\nfunction providerIdForResponse(\n response: IdTokenResponse\n): ProviderId | string | null {\n if (response.providerId) {\n return response.providerId;\n }\n\n if ('phoneNumber' in response) {\n return ProviderId.PHONE;\n }\n\n return null;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { MultiFactorError as MultiFactorErrorPublic } from '../model/public_types';\nimport { FirebaseError } from '@firebase/util';\nimport { AuthInternal } from '../model/auth';\nimport { IdTokenResponse } from '../model/id_token';\nimport { AuthErrorCode } from '../core/errors';\nimport { UserInternal } from '../model/user';\nimport { AuthCredential } from '../core/credentials';\nimport { IdTokenMfaResponse } from '../api/authentication/mfa';\nimport { OperationType } from '../model/enums';\n\nexport type MultiFactorErrorData = MultiFactorErrorPublic['customData'] & {\n _serverResponse: IdTokenMfaResponse;\n};\n\nexport class MultiFactorError\n extends FirebaseError\n implements MultiFactorErrorPublic\n{\n readonly customData: MultiFactorErrorData;\n\n private constructor(\n auth: AuthInternal,\n error: FirebaseError,\n readonly operationType: OperationType,\n readonly user?: UserInternal\n ) {\n super(error.code, error.message);\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, MultiFactorError.prototype);\n this.customData = {\n appName: auth.name,\n tenantId: auth.tenantId ?? undefined,\n _serverResponse: error.customData!._serverResponse as IdTokenMfaResponse,\n operationType\n };\n }\n\n static _fromErrorAndOperation(\n auth: AuthInternal,\n error: FirebaseError,\n operationType: OperationType,\n user?: UserInternal\n ): MultiFactorError {\n return new MultiFactorError(auth, error, operationType, user);\n }\n}\n\nexport function _processCredentialSavingMfaContextIfNecessary(\n auth: AuthInternal,\n operationType: OperationType,\n credential: AuthCredential,\n user?: UserInternal\n): Promise {\n const idTokenProvider =\n operationType === OperationType.REAUTHENTICATE\n ? credential._getReauthenticationResolver(auth)\n : credential._getIdTokenResponse(auth);\n\n return idTokenProvider.catch(error => {\n if (error.code === `auth/${AuthErrorCode.MFA_REQUIRED}`) {\n throw MultiFactorError._fromErrorAndOperation(\n auth,\n error,\n operationType,\n user\n );\n }\n\n throw error;\n });\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface ProviderAssociatedObject {\n providerId?: string;\n}\n\n/**\n * Takes a set of UserInfo provider data and converts it to a set of names\n */\nexport function providerDataAsNames(\n providerData: T[]\n): Set {\n return new Set(\n providerData\n .map(({ providerId }) => providerId)\n .filter(pid => !!pid) as string[]\n );\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { User } from '../../model/public_types';\n\nimport { deleteLinkedAccounts } from '../../api/account_management/account';\nimport { UserInternal, UserCredentialInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { providerDataAsNames } from '../util/providers';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { _reloadWithoutSaving } from './reload';\nimport { UserCredentialImpl } from './user_credential_impl';\nimport { getModularInstance } from '@firebase/util';\nimport { OperationType, ProviderId } from '../../model/enums';\n\n/**\n * Unlinks a provider from a user account.\n *\n * @param user - The user.\n * @param providerId - The provider to unlink.\n *\n * @public\n */\nexport async function unlink(user: User, providerId: string): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n await _assertLinkedStatus(true, userInternal, providerId);\n const { providerUserInfo } = await deleteLinkedAccounts(userInternal.auth, {\n idToken: await userInternal.getIdToken(),\n deleteProvider: [providerId]\n });\n\n const providersLeft = providerDataAsNames(providerUserInfo || []);\n\n userInternal.providerData = userInternal.providerData.filter(pd =>\n providersLeft.has(pd.providerId)\n );\n if (!providersLeft.has(ProviderId.PHONE)) {\n userInternal.phoneNumber = null;\n }\n\n await userInternal.auth._persistUserIfCurrent(userInternal);\n return userInternal;\n}\n\nexport async function _link(\n user: UserInternal,\n credential: AuthCredential,\n bypassAuthState = false\n): Promise {\n const response = await _logoutIfInvalidated(\n user,\n credential._linkToIdToken(user.auth, await user.getIdToken()),\n bypassAuthState\n );\n return UserCredentialImpl._forOperation(user, OperationType.LINK, response);\n}\n\nexport async function _assertLinkedStatus(\n expected: boolean,\n user: UserInternal,\n provider: string\n): Promise {\n await _reloadWithoutSaving(user);\n const providerIds = providerDataAsNames(user.providerData);\n\n const code =\n expected === false\n ? AuthErrorCode.PROVIDER_ALREADY_LINKED\n : AuthErrorCode.NO_SUCH_PROVIDER;\n _assert(providerIds.has(provider) === expected, user.auth, code);\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\nimport { _processCredentialSavingMfaContextIfNecessary } from '../../mfa/mfa_error';\nimport { OperationType } from '../../model/enums';\nimport { UserInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { AuthErrorCode } from '../errors';\nimport { _assert, _fail } from '../util/assert';\nimport { _parseToken } from './id_token_result';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { UserCredentialImpl } from './user_credential_impl';\n\nexport async function _reauthenticate(\n user: UserInternal,\n credential: AuthCredential,\n bypassAuthState = false\n): Promise {\n const { auth } = user;\n const operationType = OperationType.REAUTHENTICATE;\n\n try {\n const response = await _logoutIfInvalidated(\n user,\n _processCredentialSavingMfaContextIfNecessary(\n auth,\n operationType,\n credential,\n user\n ),\n bypassAuthState\n );\n _assert(response.idToken, auth, AuthErrorCode.INTERNAL_ERROR);\n const parsed = _parseToken(response.idToken);\n _assert(parsed, auth, AuthErrorCode.INTERNAL_ERROR);\n\n const { sub: localId } = parsed;\n _assert(user.uid === localId, auth, AuthErrorCode.USER_MISMATCH);\n\n return UserCredentialImpl._forOperation(user, operationType, response);\n } catch (e) {\n // Convert user deleted error into user mismatch\n if ((e as FirebaseError)?.code === `auth/${AuthErrorCode.USER_DELETED}`) {\n _fail(auth, AuthErrorCode.USER_MISMATCH);\n }\n throw e;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserCredential, Auth, User } from '../../model/public_types';\n\nimport { _processCredentialSavingMfaContextIfNecessary } from '../../mfa/mfa_error';\nimport { AuthInternal } from '../../model/auth';\nimport { UserInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { _assertLinkedStatus, _link } from '../user/link_unlink';\nimport { _reauthenticate } from '../user/reauthenticate';\nimport { UserCredentialImpl } from '../user/user_credential_impl';\nimport { _castAuth } from '../auth/auth_impl';\nimport { getModularInstance } from '@firebase/util';\nimport { OperationType } from '../../model/enums';\n\nexport async function _signInWithCredential(\n auth: AuthInternal,\n credential: AuthCredential,\n bypassAuthState = false\n): Promise {\n const operationType = OperationType.SIGN_IN;\n const response = await _processCredentialSavingMfaContextIfNecessary(\n auth,\n operationType,\n credential\n );\n const userCredential = await UserCredentialImpl._fromIdTokenResponse(\n auth,\n operationType,\n response\n );\n\n if (!bypassAuthState) {\n await auth._updateCurrentUser(userCredential.user);\n }\n return userCredential;\n}\n\n/**\n * Asynchronously signs in with the given credentials.\n *\n * @remarks\n * An {@link AuthProvider} can be used to generate the credential.\n *\n * @param auth - The {@link Auth} instance.\n * @param credential - The auth credential.\n *\n * @public\n */\nexport async function signInWithCredential(\n auth: Auth,\n credential: AuthCredential\n): Promise {\n return _signInWithCredential(_castAuth(auth), credential);\n}\n\n/**\n * Links the user account with the given credentials.\n *\n * @remarks\n * An {@link AuthProvider} can be used to generate the credential.\n *\n * @param user - The user.\n * @param credential - The auth credential.\n *\n * @public\n */\nexport async function linkWithCredential(\n user: User,\n credential: AuthCredential\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n\n await _assertLinkedStatus(false, userInternal, credential.providerId);\n\n return _link(userInternal, credential);\n}\n\n/**\n * Re-authenticates a user using a fresh credential.\n *\n * @remarks\n * Use before operations such as {@link updatePassword} that require tokens from recent sign-in\n * attempts. This method can be used to recover from a `CREDENTIAL_TOO_OLD_LOGIN_AGAIN` error\n * or a `TOKEN_EXPIRED` error.\n *\n * @param user - The user.\n * @param credential - The auth credential.\n *\n * @public\n */\nexport async function reauthenticateWithCredential(\n user: User,\n credential: AuthCredential\n): Promise {\n return _reauthenticate(getModularInstance(user) as UserInternal, credential);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Auth, UserCredential } from '../../model/public_types';\n\nimport { signInWithCustomToken as getIdTokenResponse } from '../../api/authentication/custom_token';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { UserCredentialImpl } from '../user/user_credential_impl';\nimport { _castAuth } from '../auth/auth_impl';\nimport { OperationType } from '../../model/enums';\n\n/**\n * Asynchronously signs in using a custom token.\n *\n * @remarks\n * Custom tokens are used to integrate Firebase Auth with existing auth systems, and must\n * be generated by an auth backend using the\n * {@link https://firebase.google.com/docs/reference/admin/node/admin.auth.Auth#createcustomtoken | createCustomToken}\n * method in the {@link https://firebase.google.com/docs/auth/admin | Admin SDK} .\n *\n * Fails with an error if the token is invalid, expired, or not accepted by the Firebase Auth service.\n *\n * @param auth - The {@link Auth} instance.\n * @param customToken - The custom token to sign in with.\n *\n * @public\n */\nexport async function signInWithCustomToken(\n auth: Auth,\n customToken: string\n): Promise {\n const authInternal = _castAuth(auth);\n const response: IdTokenResponse = await getIdTokenResponse(authInternal, {\n token: customToken,\n returnSecureToken: true\n });\n const cred = await UserCredentialImpl._fromIdTokenResponse(\n authInternal,\n OperationType.SIGN_IN,\n response\n );\n await authInternal._updateCurrentUser(cred.user);\n return cred;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performSignInRequest\n} from '../index';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { Auth } from '../../model/public_types';\n\nexport interface SignInWithCustomTokenRequest {\n token: string;\n returnSecureToken: boolean;\n tenantId?: string;\n}\n\nexport interface SignInWithCustomTokenResponse extends IdTokenResponse {}\n\nexport async function signInWithCustomToken(\n auth: Auth,\n request: SignInWithCustomTokenRequest\n): Promise {\n return _performSignInRequest<\n SignInWithCustomTokenRequest,\n SignInWithCustomTokenResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.SIGN_IN_WITH_CUSTOM_TOKEN,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n FactorId,\n MultiFactorInfo,\n PhoneMultiFactorInfo,\n TotpMultiFactorInfo\n} from '../model/public_types';\nimport {\n PhoneMfaEnrollment,\n MfaEnrollment,\n TotpMfaEnrollment\n} from '../api/account_management/mfa';\nimport { AuthErrorCode } from '../core/errors';\nimport { _fail } from '../core/util/assert';\nimport { AuthInternal } from '../model/auth';\n\nexport abstract class MultiFactorInfoImpl implements MultiFactorInfo {\n readonly uid: string;\n readonly displayName?: string | null;\n readonly enrollmentTime: string;\n\n protected constructor(readonly factorId: FactorId, response: MfaEnrollment) {\n this.uid = response.mfaEnrollmentId;\n this.enrollmentTime = new Date(response.enrolledAt).toUTCString();\n this.displayName = response.displayName;\n }\n\n static _fromServerResponse(\n auth: AuthInternal,\n enrollment: MfaEnrollment\n ): MultiFactorInfoImpl {\n if ('phoneInfo' in enrollment) {\n return PhoneMultiFactorInfoImpl._fromServerResponse(auth, enrollment);\n } else if ('totpInfo' in enrollment) {\n return TotpMultiFactorInfoImpl._fromServerResponse(auth, enrollment);\n }\n return _fail(auth, AuthErrorCode.INTERNAL_ERROR);\n }\n}\n\nexport class PhoneMultiFactorInfoImpl\n extends MultiFactorInfoImpl\n implements PhoneMultiFactorInfo\n{\n readonly phoneNumber: string;\n\n private constructor(response: PhoneMfaEnrollment) {\n super(FactorId.PHONE, response);\n this.phoneNumber = response.phoneInfo;\n }\n\n static _fromServerResponse(\n _auth: AuthInternal,\n enrollment: MfaEnrollment\n ): PhoneMultiFactorInfoImpl {\n return new PhoneMultiFactorInfoImpl(enrollment as PhoneMfaEnrollment);\n }\n}\nexport class TotpMultiFactorInfoImpl\n extends MultiFactorInfoImpl\n implements TotpMultiFactorInfo\n{\n private constructor(response: TotpMfaEnrollment) {\n super(FactorId.TOTP, response);\n }\n\n static _fromServerResponse(\n _auth: AuthInternal,\n enrollment: MfaEnrollment\n ): TotpMultiFactorInfoImpl {\n return new TotpMultiFactorInfoImpl(enrollment as TotpMfaEnrollment);\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ActionCodeSettings, Auth } from '../../model/public_types';\n\nimport { GetOobCodeRequest } from '../../api/authentication/email_and_password';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\n\nexport function _setActionCodeSettingsOnRequest(\n auth: Auth,\n request: GetOobCodeRequest,\n actionCodeSettings: ActionCodeSettings\n): void {\n _assert(\n actionCodeSettings.url?.length > 0,\n auth,\n AuthErrorCode.INVALID_CONTINUE_URI\n );\n _assert(\n typeof actionCodeSettings.dynamicLinkDomain === 'undefined' ||\n actionCodeSettings.dynamicLinkDomain.length > 0,\n auth,\n AuthErrorCode.INVALID_DYNAMIC_LINK_DOMAIN\n );\n\n request.continueUrl = actionCodeSettings.url;\n request.dynamicLinkDomain = actionCodeSettings.dynamicLinkDomain;\n request.canHandleCodeInApp = actionCodeSettings.handleCodeInApp;\n\n if (actionCodeSettings.iOS) {\n _assert(\n actionCodeSettings.iOS.bundleId.length > 0,\n auth,\n AuthErrorCode.MISSING_IOS_BUNDLE_ID\n );\n request.iOSBundleId = actionCodeSettings.iOS.bundleId;\n }\n\n if (actionCodeSettings.android) {\n _assert(\n actionCodeSettings.android.packageName.length > 0,\n auth,\n AuthErrorCode.MISSING_ANDROID_PACKAGE_NAME\n );\n request.androidInstallApp = actionCodeSettings.android.installApp;\n request.androidMinimumVersionCode =\n actionCodeSettings.android.minimumVersion;\n request.androidPackageName = actionCodeSettings.android.packageName;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ActionCodeInfo,\n ActionCodeOperation,\n ActionCodeSettings,\n Auth,\n UserCredential\n} from '../../model/public_types';\n\nimport * as account from '../../api/account_management/email_and_password';\nimport * as authentication from '../../api/authentication/email_and_password';\nimport { signUp, SignUpRequest } from '../../api/authentication/sign_up';\nimport { MultiFactorInfoImpl } from '../../mfa/mfa_info';\nimport { EmailAuthProvider } from '../providers/email';\nimport { UserCredentialImpl } from '../user/user_credential_impl';\nimport { _assert } from '../util/assert';\nimport { _setActionCodeSettingsOnRequest } from './action_code_settings';\nimport { signInWithCredential } from './credential';\nimport { _castAuth } from '../auth/auth_impl';\nimport { AuthErrorCode } from '../errors';\nimport { getModularInstance } from '@firebase/util';\nimport { OperationType } from '../../model/enums';\nimport { injectRecaptchaFields } from '../../platform_browser/recaptcha/recaptcha_enterprise_verifier';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { RecaptchaActionName, RecaptchaClientType } from '../../api';\n\n/**\n * Sends a password reset email to the given email address.\n *\n * @remarks\n * To complete the password reset, call {@link confirmPasswordReset} with the code supplied in\n * the email sent to the user, along with the new password specified by the user.\n *\n * @example\n * ```javascript\n * const actionCodeSettings = {\n * url: 'https://www.example.com/?email=user@example.com',\n * iOS: {\n * bundleId: 'com.example.ios'\n * },\n * android: {\n * packageName: 'com.example.android',\n * installApp: true,\n * minimumVersion: '12'\n * },\n * handleCodeInApp: true\n * };\n * await sendPasswordResetEmail(auth, 'user@example.com', actionCodeSettings);\n * // Obtain code from user.\n * await confirmPasswordReset('user@example.com', code);\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param email - The user's email address.\n * @param actionCodeSettings - The {@link ActionCodeSettings}.\n *\n * @public\n */\nexport async function sendPasswordResetEmail(\n auth: Auth,\n email: string,\n actionCodeSettings?: ActionCodeSettings\n): Promise {\n const authInternal = _castAuth(auth);\n const request: authentication.PasswordResetRequest = {\n requestType: ActionCodeOperation.PASSWORD_RESET,\n email,\n clientType: RecaptchaClientType.WEB\n };\n if (authInternal._getRecaptchaConfig()?.emailPasswordEnabled) {\n const requestWithRecaptcha = await injectRecaptchaFields(\n authInternal,\n request,\n RecaptchaActionName.GET_OOB_CODE,\n true\n );\n if (actionCodeSettings) {\n _setActionCodeSettingsOnRequest(\n authInternal,\n requestWithRecaptcha,\n actionCodeSettings\n );\n }\n await authentication.sendPasswordResetEmail(\n authInternal,\n requestWithRecaptcha\n );\n } else {\n if (actionCodeSettings) {\n _setActionCodeSettingsOnRequest(\n authInternal,\n request,\n actionCodeSettings\n );\n }\n await authentication\n .sendPasswordResetEmail(authInternal, request)\n .catch(async error => {\n if (error.code === `auth/${AuthErrorCode.MISSING_RECAPTCHA_TOKEN}`) {\n console.log(\n 'Password resets are protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the password reset flow.'\n );\n const requestWithRecaptcha = await injectRecaptchaFields(\n authInternal,\n request,\n RecaptchaActionName.GET_OOB_CODE,\n true\n );\n if (actionCodeSettings) {\n _setActionCodeSettingsOnRequest(\n authInternal,\n requestWithRecaptcha,\n actionCodeSettings\n );\n }\n await authentication.sendPasswordResetEmail(\n authInternal,\n requestWithRecaptcha\n );\n } else {\n return Promise.reject(error);\n }\n });\n }\n}\n\n/**\n * Completes the password reset process, given a confirmation code and new password.\n *\n * @param auth - The {@link Auth} instance.\n * @param oobCode - A confirmation code sent to the user.\n * @param newPassword - The new password.\n *\n * @public\n */\nexport async function confirmPasswordReset(\n auth: Auth,\n oobCode: string,\n newPassword: string\n): Promise {\n await account.resetPassword(getModularInstance(auth), {\n oobCode,\n newPassword\n });\n // Do not return the email.\n}\n\n/**\n * Applies a verification code sent to the user by email or other out-of-band mechanism.\n *\n * @param auth - The {@link Auth} instance.\n * @param oobCode - A verification code sent to the user.\n *\n * @public\n */\nexport async function applyActionCode(\n auth: Auth,\n oobCode: string\n): Promise {\n await account.applyActionCode(getModularInstance(auth), { oobCode });\n}\n\n/**\n * Checks a verification code sent to the user by email or other out-of-band mechanism.\n *\n * @returns metadata about the code.\n *\n * @param auth - The {@link Auth} instance.\n * @param oobCode - A verification code sent to the user.\n *\n * @public\n */\nexport async function checkActionCode(\n auth: Auth,\n oobCode: string\n): Promise {\n const authModular = getModularInstance(auth);\n const response = await account.resetPassword(authModular, { oobCode });\n\n // Email could be empty only if the request type is EMAIL_SIGNIN or\n // VERIFY_AND_CHANGE_EMAIL.\n // New email should not be empty if the request type is\n // VERIFY_AND_CHANGE_EMAIL.\n // Multi-factor info could not be empty if the request type is\n // REVERT_SECOND_FACTOR_ADDITION.\n const operation = response.requestType;\n _assert(operation, authModular, AuthErrorCode.INTERNAL_ERROR);\n switch (operation) {\n case ActionCodeOperation.EMAIL_SIGNIN:\n break;\n case ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL:\n _assert(response.newEmail, authModular, AuthErrorCode.INTERNAL_ERROR);\n break;\n case ActionCodeOperation.REVERT_SECOND_FACTOR_ADDITION:\n _assert(response.mfaInfo, authModular, AuthErrorCode.INTERNAL_ERROR);\n // fall through\n default:\n _assert(response.email, authModular, AuthErrorCode.INTERNAL_ERROR);\n }\n\n // The multi-factor info for revert second factor addition\n let multiFactorInfo: MultiFactorInfoImpl | null = null;\n if (response.mfaInfo) {\n multiFactorInfo = MultiFactorInfoImpl._fromServerResponse(\n _castAuth(authModular),\n response.mfaInfo\n );\n }\n\n return {\n data: {\n email:\n (response.requestType === ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL\n ? response.newEmail\n : response.email) || null,\n previousEmail:\n (response.requestType === ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL\n ? response.email\n : response.newEmail) || null,\n multiFactorInfo\n },\n operation\n };\n}\n\n/**\n * Checks a password reset code sent to the user by email or other out-of-band mechanism.\n *\n * @returns the user's email address if valid.\n *\n * @param auth - The {@link Auth} instance.\n * @param code - A verification code sent to the user.\n *\n * @public\n */\nexport async function verifyPasswordResetCode(\n auth: Auth,\n code: string\n): Promise {\n const { data } = await checkActionCode(getModularInstance(auth), code);\n // Email should always be present since a code was sent to it\n return data.email!;\n}\n\n/**\n * Creates a new user account associated with the specified email address and password.\n *\n * @remarks\n * On successful creation of the user account, this user will also be signed in to your application.\n *\n * User account creation can fail if the account already exists or the password is invalid.\n *\n * Note: The email address acts as a unique identifier for the user and enables an email-based\n * password reset. This function will create a new user account and set the initial user password.\n *\n * @param auth - The {@link Auth} instance.\n * @param email - The user's email address.\n * @param password - The user's chosen password.\n *\n * @public\n */\nexport async function createUserWithEmailAndPassword(\n auth: Auth,\n email: string,\n password: string\n): Promise {\n const authInternal = _castAuth(auth);\n const request: SignUpRequest = {\n returnSecureToken: true,\n email,\n password,\n clientType: RecaptchaClientType.WEB\n };\n let signUpResponse: Promise;\n if (authInternal._getRecaptchaConfig()?.emailPasswordEnabled) {\n const requestWithRecaptcha = await injectRecaptchaFields(\n authInternal,\n request,\n RecaptchaActionName.SIGN_UP_PASSWORD\n );\n signUpResponse = signUp(authInternal, requestWithRecaptcha);\n } else {\n signUpResponse = signUp(authInternal, request).catch(async error => {\n if (error.code === `auth/${AuthErrorCode.MISSING_RECAPTCHA_TOKEN}`) {\n console.log(\n 'Sign-up is protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the sign-up flow.'\n );\n const requestWithRecaptcha = await injectRecaptchaFields(\n authInternal,\n request,\n RecaptchaActionName.SIGN_UP_PASSWORD\n );\n return signUp(authInternal, requestWithRecaptcha);\n } else {\n return Promise.reject(error);\n }\n });\n }\n\n const response = await signUpResponse.catch(error => {\n return Promise.reject(error);\n });\n\n const userCredential = await UserCredentialImpl._fromIdTokenResponse(\n authInternal,\n OperationType.SIGN_IN,\n response\n );\n await authInternal._updateCurrentUser(userCredential.user);\n\n return userCredential;\n}\n\n/**\n * Asynchronously signs in using an email and password.\n *\n * @remarks\n * Fails with an error if the email address and password do not match.\n *\n * Note: The user's password is NOT the password used to access the user's email account. The\n * email address serves as a unique identifier for the user, and the password is used to access\n * the user's account in your Firebase project. See also: {@link createUserWithEmailAndPassword}.\n *\n * @param auth - The {@link Auth} instance.\n * @param email - The users email address.\n * @param password - The users password.\n *\n * @public\n */\nexport function signInWithEmailAndPassword(\n auth: Auth,\n email: string,\n password: string\n): Promise {\n return signInWithCredential(\n getModularInstance(auth),\n EmailAuthProvider.credential(email, password)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ActionCodeOperation,\n ActionCodeSettings,\n Auth,\n User\n} from '../../model/public_types';\n\nimport {\n createAuthUri,\n CreateAuthUriRequest\n} from '../../api/authentication/create_auth_uri';\nimport * as api from '../../api/authentication/email_and_password';\nimport { UserInternal } from '../../model/user';\nimport { _getCurrentUrl, _isHttpOrHttps } from '../util/location';\nimport { _setActionCodeSettingsOnRequest } from './action_code_settings';\nimport { getModularInstance } from '@firebase/util';\n\n/**\n * Gets the list of possible sign in methods for the given email address.\n *\n * @remarks\n * This is useful to differentiate methods of sign-in for the same provider, eg.\n * {@link EmailAuthProvider} which has 2 methods of sign-in,\n * {@link SignInMethod}.EMAIL_PASSWORD and\n * {@link SignInMethod}.EMAIL_LINK.\n *\n * @param auth - The {@link Auth} instance.\n * @param email - The user's email address.\n *\n * @public\n */\nexport async function fetchSignInMethodsForEmail(\n auth: Auth,\n email: string\n): Promise {\n // createAuthUri returns an error if continue URI is not http or https.\n // For environments like Cordova, Chrome extensions, native frameworks, file\n // systems, etc, use http://localhost as continue URL.\n const continueUri = _isHttpOrHttps() ? _getCurrentUrl() : 'http://localhost';\n const request: CreateAuthUriRequest = {\n identifier: email,\n continueUri\n };\n\n const { signinMethods } = await createAuthUri(\n getModularInstance(auth),\n request\n );\n\n return signinMethods || [];\n}\n\n/**\n * Sends a verification email to a user.\n *\n * @remarks\n * The verification process is completed by calling {@link applyActionCode}.\n *\n * @example\n * ```javascript\n * const actionCodeSettings = {\n * url: 'https://www.example.com/?email=user@example.com',\n * iOS: {\n * bundleId: 'com.example.ios'\n * },\n * android: {\n * packageName: 'com.example.android',\n * installApp: true,\n * minimumVersion: '12'\n * },\n * handleCodeInApp: true\n * };\n * await sendEmailVerification(user, actionCodeSettings);\n * // Obtain code from the user.\n * await applyActionCode(auth, code);\n * ```\n *\n * @param user - The user.\n * @param actionCodeSettings - The {@link ActionCodeSettings}.\n *\n * @public\n */\nexport async function sendEmailVerification(\n user: User,\n actionCodeSettings?: ActionCodeSettings | null\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n const idToken = await user.getIdToken();\n const request: api.VerifyEmailRequest = {\n requestType: ActionCodeOperation.VERIFY_EMAIL,\n idToken\n };\n if (actionCodeSettings) {\n _setActionCodeSettingsOnRequest(\n userInternal.auth,\n request,\n actionCodeSettings\n );\n }\n\n const { email } = await api.sendEmailVerification(userInternal.auth, request);\n\n if (email !== user.email) {\n await user.reload();\n }\n}\n\n/**\n * Sends a verification email to a new email address.\n *\n * @remarks\n * The user's email will be updated to the new one after being verified.\n *\n * If you have a custom email action handler, you can complete the verification process by calling\n * {@link applyActionCode}.\n *\n * @example\n * ```javascript\n * const actionCodeSettings = {\n * url: 'https://www.example.com/?email=user@example.com',\n * iOS: {\n * bundleId: 'com.example.ios'\n * },\n * android: {\n * packageName: 'com.example.android',\n * installApp: true,\n * minimumVersion: '12'\n * },\n * handleCodeInApp: true\n * };\n * await verifyBeforeUpdateEmail(user, 'newemail@example.com', actionCodeSettings);\n * // Obtain code from the user.\n * await applyActionCode(auth, code);\n * ```\n *\n * @param user - The user.\n * @param newEmail - The new email address to be verified before update.\n * @param actionCodeSettings - The {@link ActionCodeSettings}.\n *\n * @public\n */\nexport async function verifyBeforeUpdateEmail(\n user: User,\n newEmail: string,\n actionCodeSettings?: ActionCodeSettings | null\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n const idToken = await user.getIdToken();\n const request: api.VerifyAndChangeEmailRequest = {\n requestType: ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL,\n idToken,\n newEmail\n };\n if (actionCodeSettings) {\n _setActionCodeSettingsOnRequest(\n userInternal.auth,\n request,\n actionCodeSettings\n );\n }\n\n const { email } = await api.verifyAndChangeEmail(userInternal.auth, request);\n\n if (email !== user.email) {\n // If the local copy of the email on user is outdated, reload the\n // user.\n await user.reload();\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performApiRequest\n} from '../index';\nimport { Auth } from '../../model/public_types';\n\nexport interface CreateAuthUriRequest {\n identifier: string;\n continueUri: string;\n tenantId?: string;\n}\n\nexport interface CreateAuthUriResponse {\n signinMethods: string[];\n}\n\nexport async function createAuthUri(\n auth: Auth,\n request: CreateAuthUriRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.CREATE_AUTH_URI,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { User } from '../../model/public_types';\n\nimport {\n updateEmailPassword as apiUpdateEmailPassword,\n UpdateEmailPasswordRequest\n} from '../../api/account_management/email_and_password';\nimport { updateProfile as apiUpdateProfile } from '../../api/account_management/profile';\nimport { UserInternal } from '../../model/user';\nimport { _logoutIfInvalidated } from './invalidation';\nimport { getModularInstance } from '@firebase/util';\nimport { ProviderId } from '../../model/enums';\n\n/**\n * Updates a user's profile data.\n *\n * @param user - The user.\n * @param profile - The profile's `displayName` and `photoURL` to update.\n *\n * @public\n */\nexport async function updateProfile(\n user: User,\n {\n displayName,\n photoURL: photoUrl\n }: { displayName?: string | null; photoURL?: string | null }\n): Promise {\n if (displayName === undefined && photoUrl === undefined) {\n return;\n }\n\n const userInternal = getModularInstance(user) as UserInternal;\n const idToken = await userInternal.getIdToken();\n const profileRequest = {\n idToken,\n displayName,\n photoUrl,\n returnSecureToken: true\n };\n const response = await _logoutIfInvalidated(\n userInternal,\n apiUpdateProfile(userInternal.auth, profileRequest)\n );\n\n userInternal.displayName = response.displayName || null;\n userInternal.photoURL = response.photoUrl || null;\n\n // Update the password provider as well\n const passwordProvider = userInternal.providerData.find(\n ({ providerId }) => providerId === ProviderId.PASSWORD\n );\n if (passwordProvider) {\n passwordProvider.displayName = userInternal.displayName;\n passwordProvider.photoURL = userInternal.photoURL;\n }\n\n await userInternal._updateTokensIfNecessary(response);\n}\n\n/**\n * Updates the user's email address.\n *\n * @remarks\n * An email will be sent to the original email address (if it was set) that allows to revoke the\n * email address change, in order to protect them from account hijacking.\n *\n * Important: this is a security sensitive operation that requires the user to have recently signed\n * in. If this requirement isn't met, ask the user to authenticate again and then call\n * {@link reauthenticateWithCredential}.\n *\n * @param user - The user.\n * @param newEmail - The new email address.\n *\n * @public\n */\nexport function updateEmail(user: User, newEmail: string): Promise {\n return updateEmailOrPassword(\n getModularInstance(user) as UserInternal,\n newEmail,\n null\n );\n}\n\n/**\n * Updates the user's password.\n *\n * @remarks\n * Important: this is a security sensitive operation that requires the user to have recently signed\n * in. If this requirement isn't met, ask the user to authenticate again and then call\n * {@link reauthenticateWithCredential}.\n *\n * @param user - The user.\n * @param newPassword - The new password.\n *\n * @public\n */\nexport function updatePassword(user: User, newPassword: string): Promise {\n return updateEmailOrPassword(\n getModularInstance(user) as UserInternal,\n null,\n newPassword\n );\n}\n\nasync function updateEmailOrPassword(\n user: UserInternal,\n email: string | null,\n password: string | null\n): Promise {\n const { auth } = user;\n const idToken = await user.getIdToken();\n const request: UpdateEmailPasswordRequest = {\n idToken,\n returnSecureToken: true\n };\n\n if (email) {\n request.email = email;\n }\n\n if (password) {\n request.password = password;\n }\n\n const response = await _logoutIfInvalidated(\n user,\n apiUpdateEmailPassword(auth, request)\n );\n await user._updateTokensIfNecessary(response, /* reload */ true);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Endpoint, HttpMethod, _performApiRequest } from '../index';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { Auth } from '../../model/public_types';\n\nexport interface UpdateProfileRequest {\n idToken: string;\n displayName?: string | null;\n photoUrl?: string | null;\n returnSecureToken: boolean;\n}\n\nexport interface UpdateProfileResponse extends IdTokenResponse {\n displayName?: string | null;\n photoUrl?: string | null;\n}\n\nexport async function updateProfile(\n auth: Auth,\n request: UpdateProfileRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.SET_ACCOUNT_INFO,\n request\n );\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AdditionalUserInfo, UserCredential } from '../../model/public_types';\nimport { IdTokenResponse, IdTokenResponseKind } from '../../model/id_token';\nimport { _parseToken } from './id_token_result';\nimport { UserCredentialInternal } from '../../model/user';\nimport { ProviderId } from '../../model/enums';\n\n/**\n * Parse the `AdditionalUserInfo` from the ID token response.\n *\n */\nexport function _fromIdTokenResponse(\n idTokenResponse?: IdTokenResponse\n): AdditionalUserInfo | null {\n if (!idTokenResponse) {\n return null;\n }\n const { providerId } = idTokenResponse;\n const profile = idTokenResponse.rawUserInfo\n ? JSON.parse(idTokenResponse.rawUserInfo)\n : {};\n const isNewUser =\n idTokenResponse.isNewUser ||\n idTokenResponse.kind === IdTokenResponseKind.SignupNewUser;\n if (!providerId && idTokenResponse?.idToken) {\n const signInProvider = _parseToken(idTokenResponse.idToken)?.firebase?.[\n 'sign_in_provider'\n ];\n if (signInProvider) {\n const filteredProviderId =\n signInProvider !== ProviderId.ANONYMOUS &&\n signInProvider !== ProviderId.CUSTOM\n ? (signInProvider as ProviderId)\n : null;\n // Uses generic class in accordance with the legacy SDK.\n return new GenericAdditionalUserInfo(isNewUser, filteredProviderId);\n }\n }\n if (!providerId) {\n return null;\n }\n switch (providerId) {\n case ProviderId.FACEBOOK:\n return new FacebookAdditionalUserInfo(isNewUser, profile);\n case ProviderId.GITHUB:\n return new GithubAdditionalUserInfo(isNewUser, profile);\n case ProviderId.GOOGLE:\n return new GoogleAdditionalUserInfo(isNewUser, profile);\n case ProviderId.TWITTER:\n return new TwitterAdditionalUserInfo(\n isNewUser,\n profile,\n idTokenResponse.screenName || null\n );\n case ProviderId.CUSTOM:\n case ProviderId.ANONYMOUS:\n return new GenericAdditionalUserInfo(isNewUser, null);\n default:\n return new GenericAdditionalUserInfo(isNewUser, providerId, profile);\n }\n}\n\nclass GenericAdditionalUserInfo implements AdditionalUserInfo {\n constructor(\n readonly isNewUser: boolean,\n readonly providerId: ProviderId | string | null,\n readonly profile: Record = {}\n ) {}\n}\n\nclass FederatedAdditionalUserInfoWithUsername extends GenericAdditionalUserInfo {\n constructor(\n isNewUser: boolean,\n providerId: ProviderId,\n profile: Record,\n readonly username: string | null\n ) {\n super(isNewUser, providerId, profile);\n }\n}\n\nclass FacebookAdditionalUserInfo extends GenericAdditionalUserInfo {\n constructor(isNewUser: boolean, profile: Record) {\n super(isNewUser, ProviderId.FACEBOOK, profile);\n }\n}\n\nclass GithubAdditionalUserInfo extends FederatedAdditionalUserInfoWithUsername {\n constructor(isNewUser: boolean, profile: Record) {\n super(\n isNewUser,\n ProviderId.GITHUB,\n profile,\n typeof profile?.login === 'string' ? profile?.login : null\n );\n }\n}\n\nclass GoogleAdditionalUserInfo extends GenericAdditionalUserInfo {\n constructor(isNewUser: boolean, profile: Record) {\n super(isNewUser, ProviderId.GOOGLE, profile);\n }\n}\n\nclass TwitterAdditionalUserInfo extends FederatedAdditionalUserInfoWithUsername {\n constructor(\n isNewUser: boolean,\n profile: Record,\n screenName: string | null\n ) {\n super(isNewUser, ProviderId.TWITTER, profile, screenName);\n }\n}\n\n/**\n * Extracts provider specific {@link AdditionalUserInfo} for the given credential.\n *\n * @param userCredential - The user credential.\n *\n * @public\n */\nexport function getAdditionalUserInfo(\n userCredential: UserCredential\n): AdditionalUserInfo | null {\n const { user, _tokenResponse } = userCredential as UserCredentialInternal;\n if (user.isAnonymous && !_tokenResponse) {\n // Handle the special case where signInAnonymously() gets called twice.\n // No network call is made so there's nothing to actually fill this in\n return {\n providerId: null,\n isNewUser: false,\n profile: null\n };\n }\n\n return _fromIdTokenResponse(_tokenResponse);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { UserInternal } from '../model/user';\nimport { MultiFactorSession } from '../model/public_types';\n\nexport const enum MultiFactorSessionType {\n ENROLL = 'enroll',\n SIGN_IN = 'signin'\n}\n\ninterface SerializedMultiFactorSession {\n multiFactorSession: {\n idToken?: string;\n pendingCredential?: string;\n };\n}\n\nexport class MultiFactorSessionImpl implements MultiFactorSession {\n private constructor(\n readonly type: MultiFactorSessionType,\n readonly credential: string,\n readonly user?: UserInternal\n ) {}\n\n static _fromIdtoken(\n idToken: string,\n user?: UserInternal\n ): MultiFactorSessionImpl {\n return new MultiFactorSessionImpl(\n MultiFactorSessionType.ENROLL,\n idToken,\n user\n );\n }\n\n static _fromMfaPendingCredential(\n mfaPendingCredential: string\n ): MultiFactorSessionImpl {\n return new MultiFactorSessionImpl(\n MultiFactorSessionType.SIGN_IN,\n mfaPendingCredential\n );\n }\n\n toJSON(): SerializedMultiFactorSession {\n const key =\n this.type === MultiFactorSessionType.ENROLL\n ? 'idToken'\n : 'pendingCredential';\n return {\n multiFactorSession: {\n [key]: this.credential\n }\n };\n }\n\n static fromJSON(\n obj: Partial\n ): MultiFactorSessionImpl | null {\n if (obj?.multiFactorSession) {\n if (obj.multiFactorSession?.pendingCredential) {\n return MultiFactorSessionImpl._fromMfaPendingCredential(\n obj.multiFactorSession.pendingCredential\n );\n } else if (obj.multiFactorSession?.idToken) {\n return MultiFactorSessionImpl._fromIdtoken(\n obj.multiFactorSession.idToken\n );\n }\n }\n return null;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Auth,\n MultiFactorResolver,\n UserCredential,\n MultiFactorError\n} from '../model/public_types';\n\nimport { _castAuth } from '../core/auth/auth_impl';\nimport { AuthErrorCode } from '../core/errors';\nimport { UserCredentialImpl } from '../core/user/user_credential_impl';\nimport { _assert, _fail } from '../core/util/assert';\nimport { UserCredentialInternal } from '../model/user';\nimport { MultiFactorAssertionImpl } from './mfa_assertion';\nimport { MultiFactorError as MultiFactorErrorInternal } from './mfa_error';\nimport { MultiFactorInfoImpl } from './mfa_info';\nimport { MultiFactorSessionImpl } from './mfa_session';\nimport { getModularInstance } from '@firebase/util';\nimport { OperationType } from '../model/enums';\n\nexport class MultiFactorResolverImpl implements MultiFactorResolver {\n private constructor(\n readonly session: MultiFactorSessionImpl,\n readonly hints: MultiFactorInfoImpl[],\n private readonly signInResolver: (\n assertion: MultiFactorAssertionImpl\n ) => Promise\n ) {}\n\n /** @internal */\n static _fromError(\n authExtern: Auth,\n error: MultiFactorErrorInternal\n ): MultiFactorResolverImpl {\n const auth = _castAuth(authExtern);\n const serverResponse = error.customData._serverResponse;\n const hints = (serverResponse.mfaInfo || []).map(enrollment =>\n MultiFactorInfoImpl._fromServerResponse(auth, enrollment)\n );\n\n _assert(\n serverResponse.mfaPendingCredential,\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n const session = MultiFactorSessionImpl._fromMfaPendingCredential(\n serverResponse.mfaPendingCredential\n );\n\n return new MultiFactorResolverImpl(\n session,\n hints,\n async (\n assertion: MultiFactorAssertionImpl\n ): Promise => {\n const mfaResponse = await assertion._process(auth, session);\n // Clear out the unneeded fields from the old login response\n delete serverResponse.mfaInfo;\n delete serverResponse.mfaPendingCredential;\n\n // Use in the new token & refresh token in the old response\n const idTokenResponse = {\n ...serverResponse,\n idToken: mfaResponse.idToken,\n refreshToken: mfaResponse.refreshToken\n };\n\n // TODO: we should collapse this switch statement into UserCredentialImpl._forOperation and have it support the SIGN_IN case\n switch (error.operationType) {\n case OperationType.SIGN_IN:\n const userCredential =\n await UserCredentialImpl._fromIdTokenResponse(\n auth,\n error.operationType,\n idTokenResponse\n );\n await auth._updateCurrentUser(userCredential.user);\n return userCredential;\n case OperationType.REAUTHENTICATE:\n _assert(error.user, auth, AuthErrorCode.INTERNAL_ERROR);\n return UserCredentialImpl._forOperation(\n error.user,\n error.operationType,\n idTokenResponse\n );\n default:\n _fail(auth, AuthErrorCode.INTERNAL_ERROR);\n }\n }\n );\n }\n\n async resolveSignIn(\n assertionExtern: MultiFactorAssertionImpl\n ): Promise {\n const assertion = assertionExtern as MultiFactorAssertionImpl;\n return this.signInResolver(assertion);\n }\n}\n\n/**\n * Provides a {@link MultiFactorResolver} suitable for completion of a\n * multi-factor flow.\n *\n * @param auth - The {@link Auth} instance.\n * @param error - The {@link MultiFactorError} raised during a sign-in, or\n * reauthentication operation.\n *\n * @public\n */\nexport function getMultiFactorResolver(\n auth: Auth,\n error: MultiFactorError\n): MultiFactorResolver {\n const authModular = getModularInstance(auth);\n const errorInternal = error as MultiFactorErrorInternal;\n _assert(\n error.customData.operationType,\n authModular,\n AuthErrorCode.ARGUMENT_ERROR\n );\n _assert(\n errorInternal.customData._serverResponse?.mfaPendingCredential,\n authModular,\n AuthErrorCode.ARGUMENT_ERROR\n );\n\n return MultiFactorResolverImpl._fromError(authModular, errorInternal);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n MultiFactorAssertion,\n MultiFactorInfo,\n MultiFactorSession,\n MultiFactorUser,\n User\n} from '../model/public_types';\n\nimport { withdrawMfa } from '../api/account_management/mfa';\nimport { _logoutIfInvalidated } from '../core/user/invalidation';\nimport { UserInternal } from '../model/user';\nimport { MultiFactorAssertionImpl } from './mfa_assertion';\nimport { MultiFactorInfoImpl } from './mfa_info';\nimport { MultiFactorSessionImpl } from './mfa_session';\nimport { getModularInstance } from '@firebase/util';\n\nexport class MultiFactorUserImpl implements MultiFactorUser {\n enrolledFactors: MultiFactorInfo[] = [];\n\n private constructor(readonly user: UserInternal) {\n user._onReload(userInfo => {\n if (userInfo.mfaInfo) {\n this.enrolledFactors = userInfo.mfaInfo.map(enrollment =>\n MultiFactorInfoImpl._fromServerResponse(user.auth, enrollment)\n );\n }\n });\n }\n\n static _fromUser(user: UserInternal): MultiFactorUserImpl {\n return new MultiFactorUserImpl(user);\n }\n\n async getSession(): Promise {\n return MultiFactorSessionImpl._fromIdtoken(\n await this.user.getIdToken(),\n this.user\n );\n }\n\n async enroll(\n assertionExtern: MultiFactorAssertion,\n displayName?: string | null\n ): Promise {\n const assertion = assertionExtern as MultiFactorAssertionImpl;\n const session = (await this.getSession()) as MultiFactorSessionImpl;\n const finalizeMfaResponse = await _logoutIfInvalidated(\n this.user,\n assertion._process(this.user.auth, session, displayName)\n );\n // New tokens will be issued after enrollment of the new second factors.\n // They need to be updated on the user.\n await this.user._updateTokensIfNecessary(finalizeMfaResponse);\n // The user needs to be reloaded to get the new multi-factor information\n // from server. USER_RELOADED event will be triggered and `enrolledFactors`\n // will be updated.\n return this.user.reload();\n }\n\n async unenroll(infoOrUid: MultiFactorInfo | string): Promise {\n const mfaEnrollmentId =\n typeof infoOrUid === 'string' ? infoOrUid : infoOrUid.uid;\n const idToken = await this.user.getIdToken();\n try {\n const idTokenResponse = await _logoutIfInvalidated(\n this.user,\n withdrawMfa(this.user.auth, {\n idToken,\n mfaEnrollmentId\n })\n );\n // Remove the second factor from the user's list.\n this.enrolledFactors = this.enrolledFactors.filter(\n ({ uid }) => uid !== mfaEnrollmentId\n );\n // Depending on whether the backend decided to revoke the user's session,\n // the tokenResponse may be empty. If the tokens were not updated (and they\n // are now invalid), reloading the user will discover this and invalidate\n // the user's state accordingly.\n await this.user._updateTokensIfNecessary(idTokenResponse);\n await this.user.reload();\n } catch (e) {\n throw e;\n }\n }\n}\n\nconst multiFactorUserCache = new WeakMap();\n\n/**\n * The {@link MultiFactorUser} corresponding to the user.\n *\n * @remarks\n * This is used to access all multi-factor properties and operations related to the user.\n *\n * @param user - The user.\n *\n * @public\n */\nexport function multiFactor(user: User): MultiFactorUser {\n const userModular = getModularInstance(user);\n if (!multiFactorUserCache.has(userModular)) {\n multiFactorUserCache.set(\n userModular,\n MultiFactorUserImpl._fromUser(userModular as UserInternal)\n );\n }\n return multiFactorUserCache.get(userModular)!;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Endpoint,\n HttpMethod,\n _addTidIfNecessary,\n _performApiRequest\n} from '../index';\nimport { SignInWithPhoneNumberRequest } from '../authentication/sms';\nimport { FinalizeMfaResponse } from '../authentication/mfa';\nimport { AuthInternal } from '../../model/auth';\n\n/**\n * MFA Info as returned by the API.\n */\ninterface BaseMfaEnrollment {\n mfaEnrollmentId: string;\n enrolledAt: number;\n displayName?: string;\n}\n\n/**\n * An MFA provided by SMS verification.\n */\nexport interface PhoneMfaEnrollment extends BaseMfaEnrollment {\n phoneInfo: string;\n}\n\n/**\n * An MFA provided by TOTP (Time-based One Time Password).\n */\nexport interface TotpMfaEnrollment extends BaseMfaEnrollment {}\n\n/**\n * MfaEnrollment can be any subtype of BaseMfaEnrollment, currently only PhoneMfaEnrollment and TotpMfaEnrollment are supported.\n */\nexport type MfaEnrollment = PhoneMfaEnrollment | TotpMfaEnrollment;\n\nexport interface StartPhoneMfaEnrollmentRequest {\n idToken: string;\n phoneEnrollmentInfo: {\n phoneNumber: string;\n recaptchaToken: string;\n };\n tenantId?: string;\n}\n\nexport interface StartPhoneMfaEnrollmentResponse {\n phoneSessionInfo: {\n sessionInfo: string;\n };\n}\n\nexport function startEnrollPhoneMfa(\n auth: AuthInternal,\n request: StartPhoneMfaEnrollmentRequest\n): Promise {\n return _performApiRequest<\n StartPhoneMfaEnrollmentRequest,\n StartPhoneMfaEnrollmentResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.START_MFA_ENROLLMENT,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface FinalizePhoneMfaEnrollmentRequest {\n idToken: string;\n phoneVerificationInfo: SignInWithPhoneNumberRequest;\n displayName?: string | null;\n tenantId?: string;\n}\n\nexport interface FinalizePhoneMfaEnrollmentResponse\n extends FinalizeMfaResponse {}\n\nexport function finalizeEnrollPhoneMfa(\n auth: AuthInternal,\n request: FinalizePhoneMfaEnrollmentRequest\n): Promise {\n return _performApiRequest<\n FinalizePhoneMfaEnrollmentRequest,\n FinalizePhoneMfaEnrollmentResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.FINALIZE_MFA_ENROLLMENT,\n _addTidIfNecessary(auth, request)\n );\n}\nexport interface StartTotpMfaEnrollmentRequest {\n idToken: string;\n totpEnrollmentInfo: {};\n tenantId?: string;\n}\n\nexport interface StartTotpMfaEnrollmentResponse {\n totpSessionInfo: {\n sharedSecretKey: string;\n verificationCodeLength: number;\n hashingAlgorithm: string;\n periodSec: number;\n sessionInfo: string;\n finalizeEnrollmentTime: number;\n };\n}\n\nexport function startEnrollTotpMfa(\n auth: AuthInternal,\n request: StartTotpMfaEnrollmentRequest\n): Promise {\n return _performApiRequest<\n StartTotpMfaEnrollmentRequest,\n StartTotpMfaEnrollmentResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.START_MFA_ENROLLMENT,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface TotpVerificationInfo {\n sessionInfo: string;\n verificationCode: string;\n}\nexport interface FinalizeTotpMfaEnrollmentRequest {\n idToken: string;\n totpVerificationInfo: TotpVerificationInfo;\n displayName?: string | null;\n tenantId?: string;\n}\n\nexport interface FinalizeTotpMfaEnrollmentResponse\n extends FinalizeMfaResponse {}\n\nexport function finalizeEnrollTotpMfa(\n auth: AuthInternal,\n request: FinalizeTotpMfaEnrollmentRequest\n): Promise {\n return _performApiRequest<\n FinalizeTotpMfaEnrollmentRequest,\n FinalizeTotpMfaEnrollmentResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.FINALIZE_MFA_ENROLLMENT,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface WithdrawMfaRequest {\n idToken: string;\n mfaEnrollmentId: string;\n tenantId?: string;\n}\n\nexport interface WithdrawMfaResponse extends FinalizeMfaResponse {}\n\nexport function withdrawMfa(\n auth: AuthInternal,\n request: WithdrawMfaRequest\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.POST,\n Endpoint.WITHDRAW_MFA,\n _addTidIfNecessary(auth, request)\n );\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Persistence } from '../../model/public_types';\n\nexport const enum PersistenceType {\n SESSION = 'SESSION',\n LOCAL = 'LOCAL',\n NONE = 'NONE'\n}\n\nexport type PersistedBlob = Record;\n\nexport interface Instantiator {\n (blob: PersistedBlob): T;\n}\n\nexport type PersistenceValue = PersistedBlob | string;\n\nexport const STORAGE_AVAILABLE_KEY = '__sak';\n\nexport interface StorageEventListener {\n (value: PersistenceValue | null): void;\n}\n\nexport interface PersistenceInternal extends Persistence {\n type: PersistenceType;\n _isAvailable(): Promise;\n _set(key: string, value: PersistenceValue): Promise;\n _get(key: string): Promise;\n _remove(key: string): Promise;\n _addListener(key: string, listener: StorageEventListener): void;\n _removeListener(key: string, listener: StorageEventListener): void;\n // Should this persistence allow migration up the chosen hierarchy?\n _shouldAllowMigration?: boolean;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n PersistenceValue,\n STORAGE_AVAILABLE_KEY,\n PersistenceType\n} from '../../core/persistence';\n\n// There are two different browser persistence types: local and session.\n// Both have the same implementation but use a different underlying storage\n// object.\n\nexport abstract class BrowserPersistenceClass {\n protected constructor(\n protected readonly storageRetriever: () => Storage,\n readonly type: PersistenceType\n ) {}\n\n _isAvailable(): Promise {\n try {\n if (!this.storage) {\n return Promise.resolve(false);\n }\n this.storage.setItem(STORAGE_AVAILABLE_KEY, '1');\n this.storage.removeItem(STORAGE_AVAILABLE_KEY);\n return Promise.resolve(true);\n } catch {\n return Promise.resolve(false);\n }\n }\n\n _set(key: string, value: PersistenceValue): Promise {\n this.storage.setItem(key, JSON.stringify(value));\n return Promise.resolve();\n }\n\n _get(key: string): Promise {\n const json = this.storage.getItem(key);\n return Promise.resolve(json ? JSON.parse(json) : null);\n }\n\n _remove(key: string): Promise {\n this.storage.removeItem(key);\n return Promise.resolve();\n }\n\n protected get storage(): Storage {\n return this.storageRetriever();\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Persistence } from '../../model/public_types';\n\nimport { getUA } from '@firebase/util';\nimport {\n _isSafari,\n _isIOS,\n _isIframe,\n _isMobileBrowser,\n _isIE10\n} from '../../core/util/browser';\nimport {\n PersistenceInternal as InternalPersistence,\n PersistenceType,\n PersistenceValue,\n StorageEventListener\n} from '../../core/persistence';\nimport { BrowserPersistenceClass } from './browser';\n\nfunction _iframeCannotSyncWebStorage(): boolean {\n const ua = getUA();\n return _isSafari(ua) || _isIOS(ua);\n}\n\n// The polling period in case events are not supported\nexport const _POLLING_INTERVAL_MS = 1000;\n\n// The IE 10 localStorage cross tab synchronization delay in milliseconds\nconst IE10_LOCAL_STORAGE_SYNC_DELAY = 10;\n\nclass BrowserLocalPersistence\n extends BrowserPersistenceClass\n implements InternalPersistence\n{\n static type: 'LOCAL' = 'LOCAL';\n\n constructor() {\n super(() => window.localStorage, PersistenceType.LOCAL);\n }\n\n private readonly boundEventHandler = (\n event: StorageEvent,\n poll?: boolean\n ): void => this.onStorageEvent(event, poll);\n private readonly listeners: Record> = {};\n private readonly localCache: Record = {};\n // setTimeout return value is platform specific\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private pollTimer: any | null = null;\n\n // Safari or iOS browser and embedded in an iframe.\n private readonly safariLocalStorageNotSynced =\n _iframeCannotSyncWebStorage() && _isIframe();\n // Whether to use polling instead of depending on window events\n private readonly fallbackToPolling = _isMobileBrowser();\n readonly _shouldAllowMigration = true;\n\n private forAllChangedKeys(\n cb: (key: string, oldValue: string | null, newValue: string | null) => void\n ): void {\n // Check all keys with listeners on them.\n for (const key of Object.keys(this.listeners)) {\n // Get value from localStorage.\n const newValue = this.storage.getItem(key);\n const oldValue = this.localCache[key];\n // If local map value does not match, trigger listener with storage event.\n // Differentiate this simulated event from the real storage event.\n if (newValue !== oldValue) {\n cb(key, oldValue, newValue);\n }\n }\n }\n\n private onStorageEvent(event: StorageEvent, poll = false): void {\n // Key would be null in some situations, like when localStorage is cleared\n if (!event.key) {\n this.forAllChangedKeys(\n (key: string, _oldValue: string | null, newValue: string | null) => {\n this.notifyListeners(key, newValue);\n }\n );\n return;\n }\n\n const key = event.key;\n\n // Check the mechanism how this event was detected.\n // The first event will dictate the mechanism to be used.\n if (poll) {\n // Environment detects storage changes via polling.\n // Remove storage event listener to prevent possible event duplication.\n this.detachListener();\n } else {\n // Environment detects storage changes via storage event listener.\n // Remove polling listener to prevent possible event duplication.\n this.stopPolling();\n }\n\n // Safari embedded iframe. Storage event will trigger with the delta\n // changes but no changes will be applied to the iframe localStorage.\n if (this.safariLocalStorageNotSynced) {\n // Get current iframe page value.\n const storedValue = this.storage.getItem(key);\n // Value not synchronized, synchronize manually.\n if (event.newValue !== storedValue) {\n if (event.newValue !== null) {\n // Value changed from current value.\n this.storage.setItem(key, event.newValue);\n } else {\n // Current value deleted.\n this.storage.removeItem(key);\n }\n } else if (this.localCache[key] === event.newValue && !poll) {\n // Already detected and processed, do not trigger listeners again.\n return;\n }\n }\n\n const triggerListeners = (): void => {\n // Keep local map up to date in case storage event is triggered before\n // poll.\n const storedValue = this.storage.getItem(key);\n if (!poll && this.localCache[key] === storedValue) {\n // Real storage event which has already been detected, do nothing.\n // This seems to trigger in some IE browsers for some reason.\n return;\n }\n this.notifyListeners(key, storedValue);\n };\n\n const storedValue = this.storage.getItem(key);\n if (\n _isIE10() &&\n storedValue !== event.newValue &&\n event.newValue !== event.oldValue\n ) {\n // IE 10 has this weird bug where a storage event would trigger with the\n // correct key, oldValue and newValue but localStorage.getItem(key) does\n // not yield the updated value until a few milliseconds. This ensures\n // this recovers from that situation.\n setTimeout(triggerListeners, IE10_LOCAL_STORAGE_SYNC_DELAY);\n } else {\n triggerListeners();\n }\n }\n\n private notifyListeners(key: string, value: string | null): void {\n this.localCache[key] = value;\n const listeners = this.listeners[key];\n if (listeners) {\n for (const listener of Array.from(listeners)) {\n listener(value ? JSON.parse(value) : value);\n }\n }\n }\n\n private startPolling(): void {\n this.stopPolling();\n\n this.pollTimer = setInterval(() => {\n this.forAllChangedKeys(\n (key: string, oldValue: string | null, newValue: string | null) => {\n this.onStorageEvent(\n new StorageEvent('storage', {\n key,\n oldValue,\n newValue\n }),\n /* poll */ true\n );\n }\n );\n }, _POLLING_INTERVAL_MS);\n }\n\n private stopPolling(): void {\n if (this.pollTimer) {\n clearInterval(this.pollTimer);\n this.pollTimer = null;\n }\n }\n\n private attachListener(): void {\n window.addEventListener('storage', this.boundEventHandler);\n }\n\n private detachListener(): void {\n window.removeEventListener('storage', this.boundEventHandler);\n }\n\n _addListener(key: string, listener: StorageEventListener): void {\n if (Object.keys(this.listeners).length === 0) {\n // Whether browser can detect storage event when it had already been pushed to the background.\n // This may happen in some mobile browsers. A localStorage change in the foreground window\n // will not be detected in the background window via the storage event.\n // This was detected in iOS 7.x mobile browsers\n if (this.fallbackToPolling) {\n this.startPolling();\n } else {\n this.attachListener();\n }\n }\n if (!this.listeners[key]) {\n this.listeners[key] = new Set();\n // Populate the cache to avoid spuriously triggering on first poll.\n this.localCache[key] = this.storage.getItem(key);\n }\n this.listeners[key].add(listener);\n }\n\n _removeListener(key: string, listener: StorageEventListener): void {\n if (this.listeners[key]) {\n this.listeners[key].delete(listener);\n\n if (this.listeners[key].size === 0) {\n delete this.listeners[key];\n }\n }\n\n if (Object.keys(this.listeners).length === 0) {\n this.detachListener();\n this.stopPolling();\n }\n }\n\n // Update local cache on base operations:\n\n async _set(key: string, value: PersistenceValue): Promise {\n await super._set(key, value);\n this.localCache[key] = JSON.stringify(value);\n }\n\n async _get(key: string): Promise {\n const value = await super._get(key);\n this.localCache[key] = JSON.stringify(value);\n return value;\n }\n\n async _remove(key: string): Promise {\n await super._remove(key);\n delete this.localCache[key];\n }\n}\n\n/**\n * An implementation of {@link Persistence} of type `LOCAL` using `localStorage`\n * for the underlying storage.\n *\n * @public\n */\nexport const browserLocalPersistence: Persistence = BrowserLocalPersistence;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Persistence } from '../../model/public_types';\n\nimport {\n PersistenceInternal as InternalPersistence,\n PersistenceType,\n StorageEventListener\n} from '../../core/persistence';\nimport { BrowserPersistenceClass } from './browser';\n\nclass BrowserSessionPersistence\n extends BrowserPersistenceClass\n implements InternalPersistence\n{\n static type: 'SESSION' = 'SESSION';\n\n constructor() {\n super(() => window.sessionStorage, PersistenceType.SESSION);\n }\n\n _addListener(_key: string, _listener: StorageEventListener): void {\n // Listeners are not supported for session storage since it cannot be shared across windows\n return;\n }\n\n _removeListener(_key: string, _listener: StorageEventListener): void {\n // Listeners are not supported for session storage since it cannot be shared across windows\n return;\n }\n}\n\n/**\n * An implementation of {@link Persistence} of `SESSION` using `sessionStorage`\n * for the underlying storage.\n *\n * @public\n */\nexport const browserSessionPersistence: Persistence = BrowserSessionPersistence;\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ReceiverHandler,\n _EventType,\n _ReceiverResponse,\n SenderMessageEvent,\n _Status,\n _SenderRequest\n} from './index';\nimport { _allSettled } from './promise';\n\n/**\n * Interface class for receiving messages.\n *\n */\nexport class Receiver {\n private static readonly receivers: Receiver[] = [];\n private readonly boundEventHandler: EventListener;\n\n private readonly handlersMap: {\n // Typescript doesn't have existential types :(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [eventType: string]: Set>;\n } = {};\n\n constructor(private readonly eventTarget: EventTarget) {\n this.boundEventHandler = this.handleEvent.bind(this);\n }\n\n /**\n * Obtain an instance of a Receiver for a given event target, if none exists it will be created.\n *\n * @param eventTarget - An event target (such as window or self) through which the underlying\n * messages will be received.\n */\n static _getInstance(eventTarget: EventTarget): Receiver {\n // The results are stored in an array since objects can't be keys for other\n // objects. In addition, setting a unique property on an event target as a\n // hash map key may not be allowed due to CORS restrictions.\n const existingInstance = this.receivers.find(receiver =>\n receiver.isListeningto(eventTarget)\n );\n if (existingInstance) {\n return existingInstance;\n }\n const newInstance = new Receiver(eventTarget);\n this.receivers.push(newInstance);\n return newInstance;\n }\n\n private isListeningto(eventTarget: EventTarget): boolean {\n return this.eventTarget === eventTarget;\n }\n\n /**\n * Fans out a MessageEvent to the appropriate listeners.\n *\n * @remarks\n * Sends an {@link Status.ACK} upon receipt and a {@link Status.DONE} once all handlers have\n * finished processing.\n *\n * @param event - The MessageEvent.\n *\n */\n private async handleEvent<\n T extends _ReceiverResponse,\n S extends _SenderRequest\n >(event: Event): Promise {\n const messageEvent = event as MessageEvent>;\n const { eventId, eventType, data } = messageEvent.data;\n\n const handlers: Set> | undefined =\n this.handlersMap[eventType];\n if (!handlers?.size) {\n return;\n }\n\n messageEvent.ports[0].postMessage({\n status: _Status.ACK,\n eventId,\n eventType\n });\n\n const promises = Array.from(handlers).map(async handler =>\n handler(messageEvent.origin, data)\n );\n const response = await _allSettled(promises);\n messageEvent.ports[0].postMessage({\n status: _Status.DONE,\n eventId,\n eventType,\n response\n });\n }\n\n /**\n * Subscribe an event handler for a particular event.\n *\n * @param eventType - Event name to subscribe to.\n * @param eventHandler - The event handler which should receive the events.\n *\n */\n _subscribe(\n eventType: _EventType,\n eventHandler: ReceiverHandler\n ): void {\n if (Object.keys(this.handlersMap).length === 0) {\n this.eventTarget.addEventListener('message', this.boundEventHandler);\n }\n\n if (!this.handlersMap[eventType]) {\n this.handlersMap[eventType] = new Set();\n }\n\n this.handlersMap[eventType].add(eventHandler);\n }\n\n /**\n * Unsubscribe an event handler from a particular event.\n *\n * @param eventType - Event name to unsubscribe from.\n * @param eventHandler - Optinoal event handler, if none provided, unsubscribe all handlers on this event.\n *\n */\n _unsubscribe(\n eventType: _EventType,\n eventHandler?: ReceiverHandler\n ): void {\n if (this.handlersMap[eventType] && eventHandler) {\n this.handlersMap[eventType].delete(eventHandler);\n }\n if (!eventHandler || this.handlersMap[eventType].size === 0) {\n delete this.handlersMap[eventType];\n }\n\n if (Object.keys(this.handlersMap).length === 0) {\n this.eventTarget.removeEventListener('message', this.boundEventHandler);\n }\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** TODO: remove this once tslib has a polyfill for Promise.allSettled */\ninterface PromiseFulfilledResult {\n fulfilled: true;\n value: T;\n}\n\ninterface PromiseRejectedResult {\n fulfilled: false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n reason: any;\n}\n\nexport type PromiseSettledResult =\n | PromiseFulfilledResult\n | PromiseRejectedResult;\n\n/**\n * Shim for Promise.allSettled, note the slightly different format of `fulfilled` vs `status`.\n *\n * @param promises - Array of promises to wait on.\n */\nexport function _allSettled(\n promises: Array>\n): Promise>> {\n return Promise.all(\n promises.map(async promise => {\n try {\n const value = await promise;\n return {\n fulfilled: true,\n value\n } as PromiseFulfilledResult;\n } catch (reason) {\n return {\n fulfilled: false,\n reason\n } as PromiseRejectedResult;\n }\n })\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport function _generateEventId(prefix = '', digits = 10): string {\n let random = '';\n for (let i = 0; i < digits; i++) {\n random += Math.floor(Math.random() * 10);\n }\n return prefix + random;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _generateEventId } from '../../core/util/event_id';\nimport {\n _SenderRequest,\n _EventType,\n ReceiverMessageEvent,\n _MessageError,\n SenderMessageEvent,\n _Status,\n _ReceiverMessageResponse,\n _ReceiverResponse,\n _TimeoutDuration\n} from './index';\n\ninterface MessageHandler {\n messageChannel: MessageChannel;\n onMessage: EventListenerOrEventListenerObject;\n}\n\n/**\n * Interface for sending messages and waiting for a completion response.\n *\n */\nexport class Sender {\n private readonly handlers = new Set();\n\n constructor(private readonly target: ServiceWorker) {}\n\n /**\n * Unsubscribe the handler and remove it from our tracking Set.\n *\n * @param handler - The handler to unsubscribe.\n */\n private removeMessageHandler(handler: MessageHandler): void {\n if (handler.messageChannel) {\n handler.messageChannel.port1.removeEventListener(\n 'message',\n handler.onMessage\n );\n handler.messageChannel.port1.close();\n }\n this.handlers.delete(handler);\n }\n\n /**\n * Send a message to the Receiver located at {@link target}.\n *\n * @remarks\n * We'll first wait a bit for an ACK , if we get one we will wait significantly longer until the\n * receiver has had a chance to fully process the event.\n *\n * @param eventType - Type of event to send.\n * @param data - The payload of the event.\n * @param timeout - Timeout for waiting on an ACK from the receiver.\n *\n * @returns An array of settled promises from all the handlers that were listening on the receiver.\n */\n async _send(\n eventType: _EventType,\n data: S,\n timeout = _TimeoutDuration.ACK\n ): Promise<_ReceiverMessageResponse> {\n const messageChannel =\n typeof MessageChannel !== 'undefined' ? new MessageChannel() : null;\n if (!messageChannel) {\n throw new Error(_MessageError.CONNECTION_UNAVAILABLE);\n }\n // Node timers and browser timers return fundamentally different types.\n // We don't actually care what the value is but TS won't accept unknown and\n // we can't cast properly in both environments.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let completionTimer: any;\n let handler: MessageHandler;\n return new Promise<_ReceiverMessageResponse>((resolve, reject) => {\n const eventId = _generateEventId('', 20);\n messageChannel.port1.start();\n const ackTimer = setTimeout(() => {\n reject(new Error(_MessageError.UNSUPPORTED_EVENT));\n }, timeout);\n handler = {\n messageChannel,\n onMessage(event: Event): void {\n const messageEvent = event as MessageEvent>;\n if (messageEvent.data.eventId !== eventId) {\n return;\n }\n switch (messageEvent.data.status) {\n case _Status.ACK:\n // The receiver should ACK first.\n clearTimeout(ackTimer);\n completionTimer = setTimeout(() => {\n reject(new Error(_MessageError.TIMEOUT));\n }, _TimeoutDuration.COMPLETION);\n break;\n case _Status.DONE:\n // Once the receiver's handlers are finished we will get the results.\n clearTimeout(completionTimer);\n resolve(messageEvent.data.response);\n break;\n default:\n clearTimeout(ackTimer);\n clearTimeout(completionTimer);\n reject(new Error(_MessageError.INVALID_RESPONSE));\n break;\n }\n }\n };\n this.handlers.add(handler);\n messageChannel.port1.addEventListener('message', handler.onMessage);\n this.target.postMessage(\n {\n eventType,\n eventId,\n data\n } as SenderMessageEvent,\n [messageChannel.port2]\n );\n }).finally(() => {\n if (handler) {\n this.removeMessageHandler(handler);\n }\n });\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Recaptcha, GreCAPTCHATopLevel } from './recaptcha/recaptcha';\n\n/**\n * A specialized window type that melds the normal window type plus the\n * various bits we need. The three different blocks that are &'d together\n * cant be defined in the same block together.\n */\nexport type AuthWindow = {\n // Standard window types\n [T in keyof Window]: Window[T];\n} & {\n // Any known / named properties we want to add\n grecaptcha?: Recaptcha | GreCAPTCHATopLevel;\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n ___jsl?: Record;\n gapi?: typeof gapi;\n} & {\n // A final catch-all for callbacks (which will have random names) that\n // we will stick on the window.\n [callback: string]: (...args: unknown[]) => void;\n};\n\n/**\n * Lazy accessor for window, since the compat layer won't tree shake this out,\n * we need to make sure not to mess with window unless we have to\n */\nexport function _window(): AuthWindow {\n return window as unknown as AuthWindow;\n}\n\nexport function _setWindowLocation(url: string): void {\n _window().location.href = url;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _window } from '../auth_window';\n\nexport function _isWorker(): boolean {\n return (\n typeof _window()['WorkerGlobalScope'] !== 'undefined' &&\n typeof _window()['importScripts'] === 'function'\n );\n}\n\nexport async function _getActiveServiceWorker(): Promise {\n if (!navigator?.serviceWorker) {\n return null;\n }\n try {\n const registration = await navigator.serviceWorker.ready;\n return registration.active;\n } catch {\n return null;\n }\n}\n\nexport function _getServiceWorkerController(): ServiceWorker | null {\n return navigator?.serviceWorker?.controller || null;\n}\n\nexport function _getWorkerGlobalScope(): ServiceWorker | null {\n return _isWorker() ? (self as unknown as ServiceWorker) : null;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Persistence } from '../../model/public_types';\nimport {\n PersistedBlob,\n PersistenceInternal as InternalPersistence,\n PersistenceType,\n PersistenceValue,\n StorageEventListener,\n STORAGE_AVAILABLE_KEY\n} from '../../core/persistence/';\nimport {\n _EventType,\n _PingResponse,\n KeyChangedResponse,\n KeyChangedRequest,\n PingRequest,\n _TimeoutDuration\n} from '../messagechannel/index';\nimport { Receiver } from '../messagechannel/receiver';\nimport { Sender } from '../messagechannel/sender';\nimport {\n _isWorker,\n _getActiveServiceWorker,\n _getServiceWorkerController,\n _getWorkerGlobalScope\n} from '../util/worker';\n\nexport const DB_NAME = 'firebaseLocalStorageDb';\nconst DB_VERSION = 1;\nconst DB_OBJECTSTORE_NAME = 'firebaseLocalStorage';\nconst DB_DATA_KEYPATH = 'fbase_key';\n\ninterface DBObject {\n [DB_DATA_KEYPATH]: string;\n value: PersistedBlob;\n}\n\n/**\n * Promise wrapper for IDBRequest\n *\n * Unfortunately we can't cleanly extend Promise since promises are not callable in ES6\n *\n */\nclass DBPromise {\n constructor(private readonly request: IDBRequest) {}\n\n toPromise(): Promise {\n return new Promise((resolve, reject) => {\n this.request.addEventListener('success', () => {\n resolve(this.request.result);\n });\n this.request.addEventListener('error', () => {\n reject(this.request.error);\n });\n });\n }\n}\n\nfunction getObjectStore(db: IDBDatabase, isReadWrite: boolean): IDBObjectStore {\n return db\n .transaction([DB_OBJECTSTORE_NAME], isReadWrite ? 'readwrite' : 'readonly')\n .objectStore(DB_OBJECTSTORE_NAME);\n}\n\nexport async function _clearDatabase(db: IDBDatabase): Promise {\n const objectStore = getObjectStore(db, true);\n return new DBPromise(objectStore.clear()).toPromise();\n}\n\nexport function _deleteDatabase(): Promise {\n const request = indexedDB.deleteDatabase(DB_NAME);\n return new DBPromise(request).toPromise();\n}\n\nexport function _openDatabase(): Promise {\n const request = indexedDB.open(DB_NAME, DB_VERSION);\n return new Promise((resolve, reject) => {\n request.addEventListener('error', () => {\n reject(request.error);\n });\n\n request.addEventListener('upgradeneeded', () => {\n const db = request.result;\n\n try {\n db.createObjectStore(DB_OBJECTSTORE_NAME, { keyPath: DB_DATA_KEYPATH });\n } catch (e) {\n reject(e);\n }\n });\n\n request.addEventListener('success', async () => {\n const db: IDBDatabase = request.result;\n // Strange bug that occurs in Firefox when multiple tabs are opened at the\n // same time. The only way to recover seems to be deleting the database\n // and re-initializing it.\n // https://github.com/firebase/firebase-js-sdk/issues/634\n\n if (!db.objectStoreNames.contains(DB_OBJECTSTORE_NAME)) {\n // Need to close the database or else you get a `blocked` event\n db.close();\n await _deleteDatabase();\n resolve(await _openDatabase());\n } else {\n resolve(db);\n }\n });\n });\n}\n\nexport async function _putObject(\n db: IDBDatabase,\n key: string,\n value: PersistenceValue | string\n): Promise {\n const request = getObjectStore(db, true).put({\n [DB_DATA_KEYPATH]: key,\n value\n });\n return new DBPromise(request).toPromise();\n}\n\nasync function getObject(\n db: IDBDatabase,\n key: string\n): Promise {\n const request = getObjectStore(db, false).get(key);\n const data = await new DBPromise(request).toPromise();\n return data === undefined ? null : data.value;\n}\n\nexport function _deleteObject(db: IDBDatabase, key: string): Promise {\n const request = getObjectStore(db, true).delete(key);\n return new DBPromise(request).toPromise();\n}\n\nexport const _POLLING_INTERVAL_MS = 800;\nexport const _TRANSACTION_RETRY_COUNT = 3;\n\nclass IndexedDBLocalPersistence implements InternalPersistence {\n static type: 'LOCAL' = 'LOCAL';\n\n type = PersistenceType.LOCAL;\n db?: IDBDatabase;\n readonly _shouldAllowMigration = true;\n\n private readonly listeners: Record> = {};\n private readonly localCache: Record = {};\n // setTimeout return value is platform specific\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private pollTimer: any | null = null;\n private pendingWrites = 0;\n\n private receiver: Receiver | null = null;\n private sender: Sender | null = null;\n private serviceWorkerReceiverAvailable = false;\n private activeServiceWorker: ServiceWorker | null = null;\n // Visible for testing only\n readonly _workerInitializationPromise: Promise;\n\n constructor() {\n // Fire & forget the service worker registration as it may never resolve\n this._workerInitializationPromise =\n this.initializeServiceWorkerMessaging().then(\n () => {},\n () => {}\n );\n }\n\n async _openDb(): Promise {\n if (this.db) {\n return this.db;\n }\n this.db = await _openDatabase();\n return this.db;\n }\n\n async _withRetries(op: (db: IDBDatabase) => Promise): Promise {\n let numAttempts = 0;\n\n while (true) {\n try {\n const db = await this._openDb();\n return await op(db);\n } catch (e) {\n if (numAttempts++ > _TRANSACTION_RETRY_COUNT) {\n throw e;\n }\n if (this.db) {\n this.db.close();\n this.db = undefined;\n }\n // TODO: consider adding exponential backoff\n }\n }\n }\n\n /**\n * IndexedDB events do not propagate from the main window to the worker context. We rely on a\n * postMessage interface to send these events to the worker ourselves.\n */\n private async initializeServiceWorkerMessaging(): Promise {\n return _isWorker() ? this.initializeReceiver() : this.initializeSender();\n }\n\n /**\n * As the worker we should listen to events from the main window.\n */\n private async initializeReceiver(): Promise {\n this.receiver = Receiver._getInstance(_getWorkerGlobalScope()!);\n // Refresh from persistence if we receive a KeyChanged message.\n this.receiver._subscribe(\n _EventType.KEY_CHANGED,\n async (_origin: string, data: KeyChangedRequest) => {\n const keys = await this._poll();\n return {\n keyProcessed: keys.includes(data.key)\n };\n }\n );\n // Let the sender know that we are listening so they give us more timeout.\n this.receiver._subscribe(\n _EventType.PING,\n async (_origin: string, _data: PingRequest) => {\n return [_EventType.KEY_CHANGED];\n }\n );\n }\n\n /**\n * As the main window, we should let the worker know when keys change (set and remove).\n *\n * @remarks\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/ready | ServiceWorkerContainer.ready}\n * may not resolve.\n */\n private async initializeSender(): Promise {\n // Check to see if there's an active service worker.\n this.activeServiceWorker = await _getActiveServiceWorker();\n if (!this.activeServiceWorker) {\n return;\n }\n this.sender = new Sender(this.activeServiceWorker);\n // Ping the service worker to check what events they can handle.\n const results = await this.sender._send<_PingResponse, PingRequest>(\n _EventType.PING,\n {},\n _TimeoutDuration.LONG_ACK\n );\n if (!results) {\n return;\n }\n if (\n results[0]?.fulfilled &&\n results[0]?.value.includes(_EventType.KEY_CHANGED)\n ) {\n this.serviceWorkerReceiverAvailable = true;\n }\n }\n\n /**\n * Let the worker know about a changed key, the exact key doesn't technically matter since the\n * worker will just trigger a full sync anyway.\n *\n * @remarks\n * For now, we only support one service worker per page.\n *\n * @param key - Storage key which changed.\n */\n private async notifyServiceWorker(key: string): Promise {\n if (\n !this.sender ||\n !this.activeServiceWorker ||\n _getServiceWorkerController() !== this.activeServiceWorker\n ) {\n return;\n }\n try {\n await this.sender._send(\n _EventType.KEY_CHANGED,\n { key },\n // Use long timeout if receiver has previously responded to a ping from us.\n this.serviceWorkerReceiverAvailable\n ? _TimeoutDuration.LONG_ACK\n : _TimeoutDuration.ACK\n );\n } catch {\n // This is a best effort approach. Ignore errors.\n }\n }\n\n async _isAvailable(): Promise {\n try {\n if (!indexedDB) {\n return false;\n }\n const db = await _openDatabase();\n await _putObject(db, STORAGE_AVAILABLE_KEY, '1');\n await _deleteObject(db, STORAGE_AVAILABLE_KEY);\n return true;\n } catch {}\n return false;\n }\n\n private async _withPendingWrite(write: () => Promise): Promise {\n this.pendingWrites++;\n try {\n await write();\n } finally {\n this.pendingWrites--;\n }\n }\n\n async _set(key: string, value: PersistenceValue): Promise {\n return this._withPendingWrite(async () => {\n await this._withRetries((db: IDBDatabase) => _putObject(db, key, value));\n this.localCache[key] = value;\n return this.notifyServiceWorker(key);\n });\n }\n\n async _get(key: string): Promise {\n const obj = (await this._withRetries((db: IDBDatabase) =>\n getObject(db, key)\n )) as T;\n this.localCache[key] = obj;\n return obj;\n }\n\n async _remove(key: string): Promise {\n return this._withPendingWrite(async () => {\n await this._withRetries((db: IDBDatabase) => _deleteObject(db, key));\n delete this.localCache[key];\n return this.notifyServiceWorker(key);\n });\n }\n\n private async _poll(): Promise {\n // TODO: check if we need to fallback if getAll is not supported\n const result = await this._withRetries((db: IDBDatabase) => {\n const getAllRequest = getObjectStore(db, false).getAll();\n return new DBPromise(getAllRequest).toPromise();\n });\n\n if (!result) {\n return [];\n }\n\n // If we have pending writes in progress abort, we'll get picked up on the next poll\n if (this.pendingWrites !== 0) {\n return [];\n }\n\n const keys = [];\n const keysInResult = new Set();\n for (const { fbase_key: key, value } of result) {\n keysInResult.add(key);\n if (JSON.stringify(this.localCache[key]) !== JSON.stringify(value)) {\n this.notifyListeners(key, value as PersistenceValue);\n keys.push(key);\n }\n }\n for (const localKey of Object.keys(this.localCache)) {\n if (this.localCache[localKey] && !keysInResult.has(localKey)) {\n // Deleted\n this.notifyListeners(localKey, null);\n keys.push(localKey);\n }\n }\n return keys;\n }\n\n private notifyListeners(\n key: string,\n newValue: PersistenceValue | null\n ): void {\n this.localCache[key] = newValue;\n const listeners = this.listeners[key];\n if (listeners) {\n for (const listener of Array.from(listeners)) {\n listener(newValue);\n }\n }\n }\n\n private startPolling(): void {\n this.stopPolling();\n\n this.pollTimer = setInterval(\n async () => this._poll(),\n _POLLING_INTERVAL_MS\n );\n }\n\n private stopPolling(): void {\n if (this.pollTimer) {\n clearInterval(this.pollTimer);\n this.pollTimer = null;\n }\n }\n\n _addListener(key: string, listener: StorageEventListener): void {\n if (Object.keys(this.listeners).length === 0) {\n this.startPolling();\n }\n if (!this.listeners[key]) {\n this.listeners[key] = new Set();\n // Populate the cache to avoid spuriously triggering on first poll.\n void this._get(key); // This can happen in the background async and we can return immediately.\n }\n this.listeners[key].add(listener);\n }\n\n _removeListener(key: string, listener: StorageEventListener): void {\n if (this.listeners[key]) {\n this.listeners[key].delete(listener);\n\n if (this.listeners[key].size === 0) {\n delete this.listeners[key];\n }\n }\n\n if (Object.keys(this.listeners).length === 0) {\n this.stopPolling();\n }\n }\n}\n\n/**\n * An implementation of {@link Persistence} of type `LOCAL` using `indexedDB`\n * for the underlying storage.\n *\n * @public\n */\nexport const indexedDBLocalPersistence: Persistence = IndexedDBLocalPersistence;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert } from '../../core/util/assert';\nimport { AuthInternal } from '../../model/auth';\nimport { RecaptchaParameters } from '../../model/public_types';\nimport {\n Recaptcha,\n GreCAPTCHATopLevel,\n GreCAPTCHARenderOption,\n GreCAPTCHA\n} from './recaptcha';\n\nexport const _SOLVE_TIME_MS = 500;\nexport const _EXPIRATION_TIME_MS = 60_000;\nexport const _WIDGET_ID_START = 1_000_000_000_000;\n\nexport interface Widget {\n getResponse: () => string | null;\n delete: () => void;\n execute: () => void;\n}\n\nexport class MockReCaptcha implements Recaptcha {\n private counter = _WIDGET_ID_START;\n _widgets = new Map();\n\n constructor(private readonly auth: AuthInternal) {}\n\n render(\n container: string | HTMLElement,\n parameters?: RecaptchaParameters\n ): number {\n const id = this.counter;\n this._widgets.set(\n id,\n new MockWidget(container, this.auth.name, parameters || {})\n );\n this.counter++;\n return id;\n }\n\n reset(optWidgetId?: number): void {\n const id = optWidgetId || _WIDGET_ID_START;\n void this._widgets.get(id)?.delete();\n this._widgets.delete(id);\n }\n\n getResponse(optWidgetId?: number): string {\n const id = optWidgetId || _WIDGET_ID_START;\n return this._widgets.get(id)?.getResponse() || '';\n }\n\n async execute(optWidgetId?: number | string): Promise {\n const id: number = (optWidgetId as number) || _WIDGET_ID_START;\n void this._widgets.get(id)?.execute();\n return '';\n }\n}\n\nexport class MockGreCAPTCHATopLevel implements GreCAPTCHATopLevel {\n enterprise: GreCAPTCHA = new MockGreCAPTCHA();\n ready(callback: () => void): void {\n callback();\n }\n\n execute(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _siteKey: string,\n _options: { action: string }\n ): Promise {\n return Promise.resolve('token');\n }\n render(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _container: string | HTMLElement,\n _parameters: GreCAPTCHARenderOption\n ): string {\n return '';\n }\n}\n\nexport class MockGreCAPTCHA implements GreCAPTCHA {\n ready(callback: () => void): void {\n callback();\n }\n\n execute(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _siteKey: string,\n _options: { action: string }\n ): Promise {\n return Promise.resolve('token');\n }\n render(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _container: string | HTMLElement,\n _parameters: GreCAPTCHARenderOption\n ): string {\n return '';\n }\n}\n\nexport class MockWidget {\n private readonly container: HTMLElement;\n private readonly isVisible: boolean;\n private timerId: number | null = null;\n private deleted = false;\n private responseToken: string | null = null;\n private readonly clickHandler = (): void => {\n this.execute();\n };\n\n constructor(\n containerOrId: string | HTMLElement,\n appName: string,\n private readonly params: RecaptchaParameters\n ) {\n const container =\n typeof containerOrId === 'string'\n ? document.getElementById(containerOrId)\n : containerOrId;\n _assert(container, AuthErrorCode.ARGUMENT_ERROR, { appName });\n\n this.container = container;\n this.isVisible = this.params.size !== 'invisible';\n if (this.isVisible) {\n this.execute();\n } else {\n this.container.addEventListener('click', this.clickHandler);\n }\n }\n\n getResponse(): string | null {\n this.checkIfDeleted();\n return this.responseToken;\n }\n\n delete(): void {\n this.checkIfDeleted();\n this.deleted = true;\n if (this.timerId) {\n clearTimeout(this.timerId);\n this.timerId = null;\n }\n this.container.removeEventListener('click', this.clickHandler);\n }\n\n execute(): void {\n this.checkIfDeleted();\n if (this.timerId) {\n return;\n }\n\n this.timerId = window.setTimeout(() => {\n this.responseToken = generateRandomAlphaNumericString(50);\n const { callback, 'expired-callback': expiredCallback } = this.params;\n if (callback) {\n try {\n callback(this.responseToken);\n } catch (e) {}\n }\n\n this.timerId = window.setTimeout(() => {\n this.timerId = null;\n this.responseToken = null;\n if (expiredCallback) {\n try {\n expiredCallback();\n } catch (e) {}\n }\n\n if (this.isVisible) {\n this.execute();\n }\n }, _EXPIRATION_TIME_MS);\n }, _SOLVE_TIME_MS);\n }\n\n private checkIfDeleted(): void {\n if (this.deleted) {\n throw new Error('reCAPTCHA mock was already deleted!');\n }\n }\n}\n\nfunction generateRandomAlphaNumericString(len: number): string {\n const chars = [];\n const allowedChars =\n '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n for (let i = 0; i < len; i++) {\n chars.push(\n allowedChars.charAt(Math.floor(Math.random() * allowedChars.length))\n );\n }\n return chars.join('');\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { querystring } from '@firebase/util';\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert, _createError } from '../../core/util/assert';\nimport { Delay } from '../../core/util/delay';\nimport { AuthInternal } from '../../model/auth';\nimport { _window } from '../auth_window';\nimport * as jsHelpers from '../load_js';\nimport { Recaptcha, isV2 } from './recaptcha';\nimport { MockReCaptcha } from './recaptcha_mock';\n\n// ReCaptcha will load using the same callback, so the callback function needs\n// to be kept around\nexport const _JSLOAD_CALLBACK = jsHelpers._generateCallbackName('rcb');\nconst NETWORK_TIMEOUT_DELAY = new Delay(30000, 60000);\nconst RECAPTCHA_BASE = 'https://www.google.com/recaptcha/api.js?';\n\n/**\n * We need to mark this interface as internal explicitly to exclude it in the public typings, because\n * it references AuthInternal which has a circular dependency with UserInternal.\n *\n * @internal\n */\nexport interface ReCaptchaLoader {\n load(auth: AuthInternal, hl?: string): Promise;\n clearedOneInstance(): void;\n}\n\n/**\n * Loader for the GReCaptcha library. There should only ever be one of this.\n */\nexport class ReCaptchaLoaderImpl implements ReCaptchaLoader {\n private hostLanguage = '';\n private counter = 0;\n /**\n * Check for `render()` method. `window.grecaptcha` will exist if the Enterprise\n * version of the ReCAPTCHA script was loaded by someone else (e.g. App Check) but\n * `window.grecaptcha.render()` will not. Another load will add it.\n */\n private readonly librarySeparatelyLoaded = !!_window().grecaptcha?.render;\n\n load(auth: AuthInternal, hl = ''): Promise {\n _assert(isHostLanguageValid(hl), auth, AuthErrorCode.ARGUMENT_ERROR);\n\n if (this.shouldResolveImmediately(hl) && isV2(_window().grecaptcha)) {\n return Promise.resolve(_window().grecaptcha! as Recaptcha);\n }\n return new Promise((resolve, reject) => {\n const networkTimeout = _window().setTimeout(() => {\n reject(_createError(auth, AuthErrorCode.NETWORK_REQUEST_FAILED));\n }, NETWORK_TIMEOUT_DELAY.get());\n\n _window()[_JSLOAD_CALLBACK] = () => {\n _window().clearTimeout(networkTimeout);\n delete _window()[_JSLOAD_CALLBACK];\n\n const recaptcha = _window().grecaptcha as Recaptcha;\n\n if (!recaptcha || !isV2(recaptcha)) {\n reject(_createError(auth, AuthErrorCode.INTERNAL_ERROR));\n return;\n }\n\n // Wrap the greptcha render function so that we know if the developer has\n // called it separately\n const render = recaptcha.render;\n recaptcha.render = (container, params) => {\n const widgetId = render(container, params);\n this.counter++;\n return widgetId;\n };\n\n this.hostLanguage = hl;\n resolve(recaptcha);\n };\n\n const url = `${RECAPTCHA_BASE}?${querystring({\n onload: _JSLOAD_CALLBACK,\n render: 'explicit',\n hl\n })}`;\n\n jsHelpers._loadJS(url).catch(() => {\n clearTimeout(networkTimeout);\n reject(_createError(auth, AuthErrorCode.INTERNAL_ERROR));\n });\n });\n }\n\n clearedOneInstance(): void {\n this.counter--;\n }\n\n private shouldResolveImmediately(hl: string): boolean {\n // We can resolve immediately if:\n // • grecaptcha is already defined AND (\n // 1. the requested language codes are the same OR\n // 2. there exists already a ReCaptcha on the page\n // 3. the library was already loaded by the app\n // In cases (2) and (3), we _can't_ reload as it would break the recaptchas\n // that are already in the page\n return (\n !!_window().grecaptcha?.render &&\n (hl === this.hostLanguage ||\n this.counter > 0 ||\n this.librarySeparatelyLoaded)\n );\n }\n}\n\nfunction isHostLanguageValid(hl: string): boolean {\n return hl.length <= 6 && /^\\s*[a-zA-Z0-9\\-]*\\s*$/.test(hl);\n}\n\nexport class MockReCaptchaLoaderImpl implements ReCaptchaLoader {\n async load(auth: AuthInternal): Promise {\n return new MockReCaptcha(auth);\n }\n\n clearedOneInstance(): void {}\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Auth, RecaptchaParameters } from '../../model/public_types';\nimport { getRecaptchaParams } from '../../api/authentication/recaptcha';\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert } from '../../core/util/assert';\nimport { _isHttpOrHttps } from '../../core/util/location';\nimport { ApplicationVerifierInternal } from '../../model/application_verifier';\nimport { AuthInternal } from '../../model/auth';\nimport { _window } from '../auth_window';\nimport { _isWorker } from '../util/worker';\nimport { Recaptcha } from './recaptcha';\nimport {\n MockReCaptchaLoaderImpl,\n ReCaptchaLoader,\n ReCaptchaLoaderImpl\n} from './recaptcha_loader';\n\nexport const RECAPTCHA_VERIFIER_TYPE = 'recaptcha';\n\nconst DEFAULT_PARAMS: RecaptchaParameters = {\n theme: 'light',\n type: 'image'\n};\n\ntype TokenCallback = (token: string) => void;\n\n/**\n * An {@link https://www.google.com/recaptcha/ | reCAPTCHA}-based application verifier.\n *\n * @remarks\n * `RecaptchaVerifier` does not work in a Node.js environment.\n *\n * @public\n */\nexport class RecaptchaVerifier implements ApplicationVerifierInternal {\n /**\n * The application verifier type.\n *\n * @remarks\n * For a reCAPTCHA verifier, this is 'recaptcha'.\n */\n readonly type = RECAPTCHA_VERIFIER_TYPE;\n private destroyed = false;\n private widgetId: number | null = null;\n private readonly container: HTMLElement;\n private readonly isInvisible: boolean;\n private readonly tokenChangeListeners = new Set();\n private renderPromise: Promise | null = null;\n private readonly auth: AuthInternal;\n\n /** @internal */\n readonly _recaptchaLoader: ReCaptchaLoader;\n private recaptcha: Recaptcha | null = null;\n\n /**\n * @param authExtern - The corresponding Firebase {@link Auth} instance.\n *\n * @param containerOrId - The reCAPTCHA container parameter.\n *\n * @remarks\n * This has different meaning depending on whether the reCAPTCHA is hidden or visible. For a\n * visible reCAPTCHA the container must be empty. If a string is used, it has to correspond to\n * an element ID. The corresponding element must also must be in the DOM at the time of\n * initialization.\n *\n * @param parameters - The optional reCAPTCHA parameters.\n *\n * @remarks\n * Check the reCAPTCHA docs for a comprehensive list. All parameters are accepted except for\n * the sitekey. Firebase Auth backend provisions a reCAPTCHA for each project and will\n * configure this upon rendering. For an invisible reCAPTCHA, a size key must have the value\n * 'invisible'.\n */\n constructor(\n authExtern: Auth,\n containerOrId: HTMLElement | string,\n private readonly parameters: RecaptchaParameters = {\n ...DEFAULT_PARAMS\n }\n ) {\n this.auth = _castAuth(authExtern);\n this.isInvisible = this.parameters.size === 'invisible';\n _assert(\n typeof document !== 'undefined',\n this.auth,\n AuthErrorCode.OPERATION_NOT_SUPPORTED\n );\n const container =\n typeof containerOrId === 'string'\n ? document.getElementById(containerOrId)\n : containerOrId;\n _assert(container, this.auth, AuthErrorCode.ARGUMENT_ERROR);\n\n this.container = container;\n this.parameters.callback = this.makeTokenCallback(this.parameters.callback);\n\n this._recaptchaLoader = this.auth.settings.appVerificationDisabledForTesting\n ? new MockReCaptchaLoaderImpl()\n : new ReCaptchaLoaderImpl();\n\n this.validateStartingState();\n // TODO: Figure out if sdk version is needed\n }\n\n /**\n * Waits for the user to solve the reCAPTCHA and resolves with the reCAPTCHA token.\n *\n * @returns A Promise for the reCAPTCHA token.\n */\n async verify(): Promise {\n this.assertNotDestroyed();\n const id = await this.render();\n const recaptcha = this.getAssertedRecaptcha();\n\n const response = recaptcha.getResponse(id);\n if (response) {\n return response;\n }\n\n return new Promise(resolve => {\n const tokenChange = (token: string): void => {\n if (!token) {\n return; // Ignore token expirations.\n }\n this.tokenChangeListeners.delete(tokenChange);\n resolve(token);\n };\n\n this.tokenChangeListeners.add(tokenChange);\n if (this.isInvisible) {\n recaptcha.execute(id);\n }\n });\n }\n\n /**\n * Renders the reCAPTCHA widget on the page.\n *\n * @returns A Promise that resolves with the reCAPTCHA widget ID.\n */\n render(): Promise {\n try {\n this.assertNotDestroyed();\n } catch (e) {\n // This method returns a promise. Since it's not async (we want to return the\n // _same_ promise if rendering is still occurring), the API surface should\n // reject with the error rather than just throw\n return Promise.reject(e);\n }\n\n if (this.renderPromise) {\n return this.renderPromise;\n }\n\n this.renderPromise = this.makeRenderPromise().catch(e => {\n this.renderPromise = null;\n throw e;\n });\n\n return this.renderPromise;\n }\n\n /** @internal */\n _reset(): void {\n this.assertNotDestroyed();\n if (this.widgetId !== null) {\n this.getAssertedRecaptcha().reset(this.widgetId);\n }\n }\n\n /**\n * Clears the reCAPTCHA widget from the page and destroys the instance.\n */\n clear(): void {\n this.assertNotDestroyed();\n this.destroyed = true;\n this._recaptchaLoader.clearedOneInstance();\n if (!this.isInvisible) {\n this.container.childNodes.forEach(node => {\n this.container.removeChild(node);\n });\n }\n }\n\n private validateStartingState(): void {\n _assert(!this.parameters.sitekey, this.auth, AuthErrorCode.ARGUMENT_ERROR);\n _assert(\n this.isInvisible || !this.container.hasChildNodes(),\n this.auth,\n AuthErrorCode.ARGUMENT_ERROR\n );\n _assert(\n typeof document !== 'undefined',\n this.auth,\n AuthErrorCode.OPERATION_NOT_SUPPORTED\n );\n }\n\n private makeTokenCallback(\n existing: TokenCallback | string | undefined\n ): TokenCallback {\n return token => {\n this.tokenChangeListeners.forEach(listener => listener(token));\n if (typeof existing === 'function') {\n existing(token);\n } else if (typeof existing === 'string') {\n const globalFunc = _window()[existing];\n if (typeof globalFunc === 'function') {\n globalFunc(token);\n }\n }\n };\n }\n\n private assertNotDestroyed(): void {\n _assert(!this.destroyed, this.auth, AuthErrorCode.INTERNAL_ERROR);\n }\n\n private async makeRenderPromise(): Promise {\n await this.init();\n if (!this.widgetId) {\n let container = this.container;\n if (!this.isInvisible) {\n const guaranteedEmpty = document.createElement('div');\n container.appendChild(guaranteedEmpty);\n container = guaranteedEmpty;\n }\n\n this.widgetId = this.getAssertedRecaptcha().render(\n container,\n this.parameters\n );\n }\n\n return this.widgetId;\n }\n\n private async init(): Promise {\n _assert(\n _isHttpOrHttps() && !_isWorker(),\n this.auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n\n await domReady();\n this.recaptcha = await this._recaptchaLoader.load(\n this.auth,\n this.auth.languageCode || undefined\n );\n\n const siteKey = await getRecaptchaParams(this.auth);\n _assert(siteKey, this.auth, AuthErrorCode.INTERNAL_ERROR);\n this.parameters.sitekey = siteKey;\n }\n\n private getAssertedRecaptcha(): Recaptcha {\n _assert(this.recaptcha, this.auth, AuthErrorCode.INTERNAL_ERROR);\n return this.recaptcha;\n }\n}\n\nfunction domReady(): Promise {\n let resolver: (() => void) | null = null;\n return new Promise(resolve => {\n if (document.readyState === 'complete') {\n resolve();\n return;\n }\n\n // Document not ready, wait for load before resolving.\n // Save resolver, so we can remove listener in case it was externally\n // cancelled.\n resolver = () => resolve();\n window.addEventListener('load', resolver);\n }).catch(e => {\n if (resolver) {\n window.removeEventListener('load', resolver);\n }\n\n throw e;\n });\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ApplicationVerifier,\n Auth,\n ConfirmationResult,\n PhoneInfoOptions,\n User,\n UserCredential\n} from '../../model/public_types';\n\nimport { startEnrollPhoneMfa } from '../../api/account_management/mfa';\nimport { startSignInPhoneMfa } from '../../api/authentication/mfa';\nimport { sendPhoneVerificationCode } from '../../api/authentication/sms';\nimport { ApplicationVerifierInternal } from '../../model/application_verifier';\nimport { PhoneAuthCredential } from '../../core/credentials/phone';\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assertLinkedStatus, _link } from '../../core/user/link_unlink';\nimport { _assert } from '../../core/util/assert';\nimport { AuthInternal } from '../../model/auth';\nimport {\n linkWithCredential,\n reauthenticateWithCredential,\n signInWithCredential\n} from '../../core/strategies/credential';\nimport {\n MultiFactorSessionImpl,\n MultiFactorSessionType\n} from '../../mfa/mfa_session';\nimport { UserInternal } from '../../model/user';\nimport { RECAPTCHA_VERIFIER_TYPE } from '../recaptcha/recaptcha_verifier';\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { getModularInstance } from '@firebase/util';\nimport { ProviderId } from '../../model/enums';\n\ninterface OnConfirmationCallback {\n (credential: PhoneAuthCredential): Promise;\n}\n\nclass ConfirmationResultImpl implements ConfirmationResult {\n constructor(\n readonly verificationId: string,\n private readonly onConfirmation: OnConfirmationCallback\n ) {}\n\n confirm(verificationCode: string): Promise {\n const authCredential = PhoneAuthCredential._fromVerification(\n this.verificationId,\n verificationCode\n );\n return this.onConfirmation(authCredential);\n }\n}\n\n/**\n * Asynchronously signs in using a phone number.\n *\n * @remarks\n * This method sends a code via SMS to the given\n * phone number, and returns a {@link ConfirmationResult}. After the user\n * provides the code sent to their phone, call {@link ConfirmationResult.confirm}\n * with the code to sign the user in.\n *\n * For abuse prevention, this method also requires a {@link ApplicationVerifier}.\n * This SDK includes a reCAPTCHA-based implementation, {@link RecaptchaVerifier}.\n * This function can work on other platforms that do not support the\n * {@link RecaptchaVerifier} (like React Native), but you need to use a\n * third-party {@link ApplicationVerifier} implementation.\n *\n * This method does not work in a Node.js environment.\n *\n * @example\n * ```javascript\n * // 'recaptcha-container' is the ID of an element in the DOM.\n * const applicationVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container');\n * const confirmationResult = await signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);\n * // Obtain a verificationCode from the user.\n * const credential = await confirmationResult.confirm(verificationCode);\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param phoneNumber - The user's phone number in E.164 format (e.g. +16505550101).\n * @param appVerifier - The {@link ApplicationVerifier}.\n *\n * @public\n */\nexport async function signInWithPhoneNumber(\n auth: Auth,\n phoneNumber: string,\n appVerifier: ApplicationVerifier\n): Promise {\n const authInternal = _castAuth(auth);\n const verificationId = await _verifyPhoneNumber(\n authInternal,\n phoneNumber,\n getModularInstance(appVerifier as ApplicationVerifierInternal)\n );\n return new ConfirmationResultImpl(verificationId, cred =>\n signInWithCredential(authInternal, cred)\n );\n}\n\n/**\n * Links the user account with the given phone number.\n *\n * @remarks\n * This method does not work in a Node.js environment.\n *\n * @param user - The user.\n * @param phoneNumber - The user's phone number in E.164 format (e.g. +16505550101).\n * @param appVerifier - The {@link ApplicationVerifier}.\n *\n * @public\n */\nexport async function linkWithPhoneNumber(\n user: User,\n phoneNumber: string,\n appVerifier: ApplicationVerifier\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n await _assertLinkedStatus(false, userInternal, ProviderId.PHONE);\n const verificationId = await _verifyPhoneNumber(\n userInternal.auth,\n phoneNumber,\n getModularInstance(appVerifier as ApplicationVerifierInternal)\n );\n return new ConfirmationResultImpl(verificationId, cred =>\n linkWithCredential(userInternal, cred)\n );\n}\n\n/**\n * Re-authenticates a user using a fresh phone credential.\n *\n * @remarks\n * Use before operations such as {@link updatePassword} that require tokens from recent sign-in attempts.\n *\n * This method does not work in a Node.js environment.\n *\n * @param user - The user.\n * @param phoneNumber - The user's phone number in E.164 format (e.g. +16505550101).\n * @param appVerifier - The {@link ApplicationVerifier}.\n *\n * @public\n */\nexport async function reauthenticateWithPhoneNumber(\n user: User,\n phoneNumber: string,\n appVerifier: ApplicationVerifier\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n const verificationId = await _verifyPhoneNumber(\n userInternal.auth,\n phoneNumber,\n getModularInstance(appVerifier as ApplicationVerifierInternal)\n );\n return new ConfirmationResultImpl(verificationId, cred =>\n reauthenticateWithCredential(userInternal, cred)\n );\n}\n\n/**\n * Returns a verification ID to be used in conjunction with the SMS code that is sent.\n *\n */\nexport async function _verifyPhoneNumber(\n auth: AuthInternal,\n options: PhoneInfoOptions | string,\n verifier: ApplicationVerifierInternal\n): Promise {\n const recaptchaToken = await verifier.verify();\n\n try {\n _assert(\n typeof recaptchaToken === 'string',\n auth,\n AuthErrorCode.ARGUMENT_ERROR\n );\n _assert(\n verifier.type === RECAPTCHA_VERIFIER_TYPE,\n auth,\n AuthErrorCode.ARGUMENT_ERROR\n );\n\n let phoneInfoOptions: PhoneInfoOptions;\n\n if (typeof options === 'string') {\n phoneInfoOptions = {\n phoneNumber: options\n };\n } else {\n phoneInfoOptions = options;\n }\n\n if ('session' in phoneInfoOptions) {\n const session = phoneInfoOptions.session as MultiFactorSessionImpl;\n\n if ('phoneNumber' in phoneInfoOptions) {\n _assert(\n session.type === MultiFactorSessionType.ENROLL,\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n const response = await startEnrollPhoneMfa(auth, {\n idToken: session.credential,\n phoneEnrollmentInfo: {\n phoneNumber: phoneInfoOptions.phoneNumber,\n recaptchaToken\n }\n });\n return response.phoneSessionInfo.sessionInfo;\n } else {\n _assert(\n session.type === MultiFactorSessionType.SIGN_IN,\n auth,\n AuthErrorCode.INTERNAL_ERROR\n );\n const mfaEnrollmentId =\n phoneInfoOptions.multiFactorHint?.uid ||\n phoneInfoOptions.multiFactorUid;\n _assert(mfaEnrollmentId, auth, AuthErrorCode.MISSING_MFA_INFO);\n const response = await startSignInPhoneMfa(auth, {\n mfaPendingCredential: session.credential,\n mfaEnrollmentId,\n phoneSignInInfo: {\n recaptchaToken\n }\n });\n return response.phoneResponseInfo.sessionInfo;\n }\n } else {\n const { sessionInfo } = await sendPhoneVerificationCode(auth, {\n phoneNumber: phoneInfoOptions.phoneNumber,\n recaptchaToken\n });\n return sessionInfo;\n }\n } finally {\n verifier._reset();\n }\n}\n\n/**\n * Updates the user's phone number.\n *\n * @remarks\n * This method does not work in a Node.js environment.\n *\n * @example\n * ```\n * // 'recaptcha-container' is the ID of an element in the DOM.\n * const applicationVerifier = new RecaptchaVerifier('recaptcha-container');\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = await provider.verifyPhoneNumber('+16505550101', applicationVerifier);\n * // Obtain the verificationCode from the user.\n * const phoneCredential = PhoneAuthProvider.credential(verificationId, verificationCode);\n * await updatePhoneNumber(user, phoneCredential);\n * ```\n *\n * @param user - The user.\n * @param credential - A credential authenticating the new phone number.\n *\n * @public\n */\nexport async function updatePhoneNumber(\n user: User,\n credential: PhoneAuthCredential\n): Promise {\n await _link(getModularInstance(user) as UserInternal, credential);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n _performApiRequest,\n Endpoint,\n HttpMethod,\n _addTidIfNecessary\n} from '../index';\nimport { Auth } from '../../model/public_types';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { MfaEnrollment } from '../account_management/mfa';\nimport { SignInWithIdpResponse } from './idp';\nimport {\n SignInWithPhoneNumberRequest,\n SignInWithPhoneNumberResponse\n} from './sms';\n\nexport interface FinalizeMfaResponse {\n idToken: string;\n refreshToken: string;\n}\n\n/**\n * @internal\n */\nexport interface IdTokenMfaResponse extends IdTokenResponse {\n mfaPendingCredential?: string;\n mfaInfo?: MfaEnrollment[];\n}\n\nexport interface StartPhoneMfaSignInRequest {\n mfaPendingCredential: string;\n mfaEnrollmentId: string;\n phoneSignInInfo: {\n recaptchaToken: string;\n };\n tenantId?: string;\n}\n\nexport interface StartPhoneMfaSignInResponse {\n phoneResponseInfo: {\n sessionInfo: string;\n };\n}\n\nexport function startSignInPhoneMfa(\n auth: Auth,\n request: StartPhoneMfaSignInRequest\n): Promise {\n return _performApiRequest<\n StartPhoneMfaSignInRequest,\n StartPhoneMfaSignInResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.START_MFA_SIGN_IN,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport interface FinalizePhoneMfaSignInRequest {\n mfaPendingCredential: string;\n phoneVerificationInfo: SignInWithPhoneNumberRequest;\n tenantId?: string;\n}\n\n// TOTP MFA Sign in only has a finalize phase. Phone MFA has a start phase to initiate sending an\n// SMS and a finalize phase to complete sign in. With TOTP, the user already has the OTP in the\n// TOTP/Authenticator app.\nexport interface FinalizeTotpMfaSignInRequest {\n mfaPendingCredential: string;\n totpVerificationInfo: { verificationCode: string };\n tenantId?: string;\n mfaEnrollmentId: string;\n}\n\nexport interface FinalizePhoneMfaSignInResponse extends FinalizeMfaResponse {}\n\nexport interface FinalizeTotpMfaSignInResponse extends FinalizeMfaResponse {}\n\nexport function finalizeSignInPhoneMfa(\n auth: Auth,\n request: FinalizePhoneMfaSignInRequest\n): Promise {\n return _performApiRequest<\n FinalizePhoneMfaSignInRequest,\n FinalizePhoneMfaSignInResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.FINALIZE_MFA_SIGN_IN,\n _addTidIfNecessary(auth, request)\n );\n}\n\nexport function finalizeSignInTotpMfa(\n auth: Auth,\n request: FinalizeTotpMfaSignInRequest\n): Promise {\n return _performApiRequest<\n FinalizeTotpMfaSignInRequest,\n FinalizeTotpMfaSignInResponse\n >(\n auth,\n HttpMethod.POST,\n Endpoint.FINALIZE_MFA_SIGN_IN,\n _addTidIfNecessary(auth, request)\n );\n}\n\n/**\n * @internal\n */\nexport type PhoneOrOauthTokenResponse =\n | SignInWithPhoneNumberResponse\n | SignInWithIdpResponse\n | IdTokenResponse;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Auth,\n PhoneInfoOptions,\n ApplicationVerifier,\n UserCredential\n} from '../../model/public_types';\n\nimport { SignInWithPhoneNumberResponse } from '../../api/authentication/sms';\nimport { ApplicationVerifierInternal as ApplicationVerifierInternal } from '../../model/application_verifier';\nimport { AuthInternal as AuthInternal } from '../../model/auth';\nimport { UserCredentialInternal as UserCredentialInternal } from '../../model/user';\nimport { PhoneAuthCredential } from '../../core/credentials/phone';\nimport { _verifyPhoneNumber } from '../strategies/phone';\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { AuthCredential } from '../../core';\nimport { FirebaseError, getModularInstance } from '@firebase/util';\nimport { TaggedWithTokenResponse } from '../../model/id_token';\nimport { ProviderId, SignInMethod } from '../../model/enums';\n\n/**\n * Provider for generating an {@link PhoneAuthCredential}.\n *\n * @remarks\n * `PhoneAuthProvider` does not work in a Node.js environment.\n *\n * @example\n * ```javascript\n * // 'recaptcha-container' is the ID of an element in the DOM.\n * const applicationVerifier = new RecaptchaVerifier('recaptcha-container');\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = await provider.verifyPhoneNumber('+16505550101', applicationVerifier);\n * // Obtain the verificationCode from the user.\n * const phoneCredential = PhoneAuthProvider.credential(verificationId, verificationCode);\n * const userCredential = await signInWithCredential(auth, phoneCredential);\n * ```\n *\n * @public\n */\nexport class PhoneAuthProvider {\n /** Always set to {@link ProviderId}.PHONE. */\n static readonly PROVIDER_ID: 'phone' = ProviderId.PHONE;\n /** Always set to {@link SignInMethod}.PHONE. */\n static readonly PHONE_SIGN_IN_METHOD: 'phone' = SignInMethod.PHONE;\n\n /** Always set to {@link ProviderId}.PHONE. */\n readonly providerId = PhoneAuthProvider.PROVIDER_ID;\n private readonly auth: AuthInternal;\n\n /**\n * @param auth - The Firebase {@link Auth} instance in which sign-ins should occur.\n *\n */\n constructor(auth: Auth) {\n this.auth = _castAuth(auth);\n }\n\n /**\n *\n * Starts a phone number authentication flow by sending a verification code to the given phone\n * number.\n *\n * @example\n * ```javascript\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = await provider.verifyPhoneNumber(phoneNumber, applicationVerifier);\n * // Obtain verificationCode from the user.\n * const authCredential = PhoneAuthProvider.credential(verificationId, verificationCode);\n * const userCredential = await signInWithCredential(auth, authCredential);\n * ```\n *\n * @example\n * An alternative flow is provided using the `signInWithPhoneNumber` method.\n * ```javascript\n * const confirmationResult = signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);\n * // Obtain verificationCode from the user.\n * const userCredential = confirmationResult.confirm(verificationCode);\n * ```\n *\n * @param phoneInfoOptions - The user's {@link PhoneInfoOptions}. The phone number should be in\n * E.164 format (e.g. +16505550101).\n * @param applicationVerifier - For abuse prevention, this method also requires a\n * {@link ApplicationVerifier}. This SDK includes a reCAPTCHA-based implementation,\n * {@link RecaptchaVerifier}.\n *\n * @returns A Promise for a verification ID that can be passed to\n * {@link PhoneAuthProvider.credential} to identify this flow..\n */\n verifyPhoneNumber(\n phoneOptions: PhoneInfoOptions | string,\n applicationVerifier: ApplicationVerifier\n ): Promise {\n return _verifyPhoneNumber(\n this.auth,\n phoneOptions,\n getModularInstance(applicationVerifier as ApplicationVerifierInternal)\n );\n }\n\n /**\n * Creates a phone auth credential, given the verification ID from\n * {@link PhoneAuthProvider.verifyPhoneNumber} and the code that was sent to the user's\n * mobile device.\n *\n * @example\n * ```javascript\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = provider.verifyPhoneNumber(phoneNumber, applicationVerifier);\n * // Obtain verificationCode from the user.\n * const authCredential = PhoneAuthProvider.credential(verificationId, verificationCode);\n * const userCredential = signInWithCredential(auth, authCredential);\n * ```\n *\n * @example\n * An alternative flow is provided using the `signInWithPhoneNumber` method.\n * ```javascript\n * const confirmationResult = await signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);\n * // Obtain verificationCode from the user.\n * const userCredential = await confirmationResult.confirm(verificationCode);\n * ```\n *\n * @param verificationId - The verification ID returned from {@link PhoneAuthProvider.verifyPhoneNumber}.\n * @param verificationCode - The verification code sent to the user's mobile device.\n *\n * @returns The auth provider credential.\n */\n static credential(\n verificationId: string,\n verificationCode: string\n ): PhoneAuthCredential {\n return PhoneAuthCredential._fromVerification(\n verificationId,\n verificationCode\n );\n }\n\n /**\n * Generates an {@link AuthCredential} from a {@link UserCredential}.\n * @param userCredential - The user credential.\n */\n static credentialFromResult(\n userCredential: UserCredential\n ): AuthCredential | null {\n const credential = userCredential as UserCredentialInternal;\n return PhoneAuthProvider.credentialFromTaggedObject(credential);\n }\n\n /**\n * Returns an {@link AuthCredential} when passed an error.\n *\n * @remarks\n *\n * This method works for errors like\n * `auth/account-exists-with-different-credentials`. This is useful for\n * recovering when attempting to set a user's phone number but the number\n * in question is already tied to another account. For example, the following\n * code tries to update the current user's phone number, and if that\n * fails, links the user with the account associated with that number:\n *\n * ```js\n * const provider = new PhoneAuthProvider(auth);\n * const verificationId = await provider.verifyPhoneNumber(number, verifier);\n * try {\n * const code = ''; // Prompt the user for the verification code\n * await updatePhoneNumber(\n * auth.currentUser,\n * PhoneAuthProvider.credential(verificationId, code));\n * } catch (e) {\n * if ((e as FirebaseError)?.code === 'auth/account-exists-with-different-credential') {\n * const cred = PhoneAuthProvider.credentialFromError(e);\n * await linkWithCredential(auth.currentUser, cred);\n * }\n * }\n *\n * // At this point, auth.currentUser.phoneNumber === number.\n * ```\n *\n * @param error - The error to generate a credential from.\n */\n static credentialFromError(error: FirebaseError): AuthCredential | null {\n return PhoneAuthProvider.credentialFromTaggedObject(\n (error.customData || {}) as TaggedWithTokenResponse\n );\n }\n\n private static credentialFromTaggedObject({\n _tokenResponse: tokenResponse\n }: TaggedWithTokenResponse): AuthCredential | null {\n if (!tokenResponse) {\n return null;\n }\n const { phoneNumber, temporaryProof } =\n tokenResponse as SignInWithPhoneNumberResponse;\n if (phoneNumber && temporaryProof) {\n return PhoneAuthCredential._fromTokenResponse(\n phoneNumber,\n temporaryProof\n );\n }\n return null;\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { PopupRedirectResolver } from '../../model/public_types';\nimport { AuthInternal } from '../../model/auth';\nimport { PopupRedirectResolverInternal } from '../../model/popup_redirect';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from './assert';\nimport { _getInstance } from './instantiator';\n\n/**\n * Chooses a popup/redirect resolver to use. This prefers the override (which\n * is directly passed in), and falls back to the property set on the auth\n * object. If neither are available, this function errors w/ an argument error.\n */\nexport function _withDefaultResolver(\n auth: AuthInternal,\n resolverOverride: PopupRedirectResolver | undefined\n): PopupRedirectResolverInternal {\n if (resolverOverride) {\n return _getInstance(resolverOverride);\n }\n\n _assert(auth._popupRedirectResolver, auth, AuthErrorCode.ARGUMENT_ERROR);\n\n return auth._popupRedirectResolver;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n signInWithIdp,\n SignInWithIdpRequest\n} from '../../api/authentication/idp';\nimport { PhoneOrOauthTokenResponse } from '../../api/authentication/mfa';\nimport { AuthInternal } from '../../model/auth';\nimport { IdTokenResponse } from '../../model/id_token';\nimport { UserInternal, UserCredentialInternal } from '../../model/user';\nimport { AuthCredential } from '../credentials';\nimport { _link as _linkUser } from '../user/link_unlink';\nimport { _reauthenticate } from '../user/reauthenticate';\nimport { _assert } from '../util/assert';\nimport { _signInWithCredential } from './credential';\nimport { AuthErrorCode } from '../errors';\nimport { ProviderId } from '../../model/enums';\n\nexport interface IdpTaskParams {\n auth: AuthInternal;\n requestUri: string;\n sessionId?: string;\n tenantId?: string;\n postBody?: string;\n pendingToken?: string;\n user?: UserInternal;\n bypassAuthState?: boolean;\n}\n\nexport type IdpTask = (\n params: IdpTaskParams\n) => Promise;\n\nclass IdpCredential extends AuthCredential {\n constructor(readonly params: IdpTaskParams) {\n super(ProviderId.CUSTOM, ProviderId.CUSTOM);\n }\n\n _getIdTokenResponse(auth: AuthInternal): Promise {\n return signInWithIdp(auth, this._buildIdpRequest());\n }\n\n _linkToIdToken(\n auth: AuthInternal,\n idToken: string\n ): Promise {\n return signInWithIdp(auth, this._buildIdpRequest(idToken));\n }\n\n _getReauthenticationResolver(auth: AuthInternal): Promise {\n return signInWithIdp(auth, this._buildIdpRequest());\n }\n\n private _buildIdpRequest(idToken?: string): SignInWithIdpRequest {\n const request: SignInWithIdpRequest = {\n requestUri: this.params.requestUri,\n sessionId: this.params.sessionId,\n postBody: this.params.postBody,\n tenantId: this.params.tenantId,\n pendingToken: this.params.pendingToken,\n returnSecureToken: true,\n returnIdpCredential: true\n };\n\n if (idToken) {\n request.idToken = idToken;\n }\n\n return request;\n }\n}\n\nexport function _signIn(\n params: IdpTaskParams\n): Promise {\n return _signInWithCredential(\n params.auth,\n new IdpCredential(params),\n params.bypassAuthState\n ) as Promise;\n}\n\nexport function _reauth(\n params: IdpTaskParams\n): Promise {\n const { auth, user } = params;\n _assert(user, auth, AuthErrorCode.INTERNAL_ERROR);\n return _reauthenticate(\n user,\n new IdpCredential(params),\n params.bypassAuthState\n );\n}\n\nexport async function _link(\n params: IdpTaskParams\n): Promise {\n const { auth, user } = params;\n _assert(user, auth, AuthErrorCode.INTERNAL_ERROR);\n return _linkUser(user, new IdpCredential(params), params.bypassAuthState);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseError } from '@firebase/util';\n\nimport {\n AuthEvent,\n AuthEventConsumer,\n AuthEventType,\n EventManager,\n PopupRedirectResolverInternal\n} from '../../model/popup_redirect';\nimport { UserInternal, UserCredentialInternal } from '../../model/user';\nimport { AuthErrorCode } from '../errors';\nimport { debugAssert, _fail } from '../util/assert';\nimport {\n _link,\n _reauth,\n _signIn,\n IdpTask,\n IdpTaskParams\n} from '../strategies/idp';\nimport { AuthInternal } from '../../model/auth';\n\ninterface PendingPromise {\n resolve: (cred: UserCredentialInternal | null) => void;\n reject: (error: Error) => void;\n}\n\n/**\n * Popup event manager. Handles the popup's entire lifecycle; listens to auth\n * events\n */\nexport abstract class AbstractPopupRedirectOperation\n implements AuthEventConsumer\n{\n private pendingPromise: PendingPromise | null = null;\n private eventManager: EventManager | null = null;\n readonly filter: AuthEventType[];\n\n abstract eventId: string | null;\n\n constructor(\n protected readonly auth: AuthInternal,\n filter: AuthEventType | AuthEventType[],\n protected readonly resolver: PopupRedirectResolverInternal,\n protected user?: UserInternal,\n protected readonly bypassAuthState = false\n ) {\n this.filter = Array.isArray(filter) ? filter : [filter];\n }\n\n abstract onExecution(): Promise;\n\n execute(): Promise {\n return new Promise(\n async (resolve, reject) => {\n this.pendingPromise = { resolve, reject };\n\n try {\n this.eventManager = await this.resolver._initialize(this.auth);\n await this.onExecution();\n this.eventManager.registerConsumer(this);\n } catch (e) {\n this.reject(e as Error);\n }\n }\n );\n }\n\n async onAuthEvent(event: AuthEvent): Promise {\n const { urlResponse, sessionId, postBody, tenantId, error, type } = event;\n if (error) {\n this.reject(error);\n return;\n }\n\n const params: IdpTaskParams = {\n auth: this.auth,\n requestUri: urlResponse!,\n sessionId: sessionId!,\n tenantId: tenantId || undefined,\n postBody: postBody || undefined,\n user: this.user,\n bypassAuthState: this.bypassAuthState\n };\n\n try {\n this.resolve(await this.getIdpTask(type)(params));\n } catch (e) {\n this.reject(e as Error);\n }\n }\n\n onError(error: FirebaseError): void {\n this.reject(error);\n }\n\n private getIdpTask(type: AuthEventType): IdpTask {\n switch (type) {\n case AuthEventType.SIGN_IN_VIA_POPUP:\n case AuthEventType.SIGN_IN_VIA_REDIRECT:\n return _signIn;\n case AuthEventType.LINK_VIA_POPUP:\n case AuthEventType.LINK_VIA_REDIRECT:\n return _link;\n case AuthEventType.REAUTH_VIA_POPUP:\n case AuthEventType.REAUTH_VIA_REDIRECT:\n return _reauth;\n default:\n _fail(this.auth, AuthErrorCode.INTERNAL_ERROR);\n }\n }\n\n protected resolve(cred: UserCredentialInternal | null): void {\n debugAssert(this.pendingPromise, 'Pending promise was never set');\n this.pendingPromise.resolve(cred);\n this.unregisterAndCleanUp();\n }\n\n protected reject(error: Error): void {\n debugAssert(this.pendingPromise, 'Pending promise was never set');\n this.pendingPromise.reject(error);\n this.unregisterAndCleanUp();\n }\n\n private unregisterAndCleanUp(): void {\n if (this.eventManager) {\n this.eventManager.unregisterConsumer(this);\n }\n\n this.pendingPromise = null;\n this.cleanUp();\n }\n\n abstract cleanUp(): void;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Auth,\n AuthProvider,\n PopupRedirectResolver,\n User,\n UserCredential\n} from '../../model/public_types';\n\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { AuthErrorCode } from '../../core/errors';\nimport {\n _assert,\n debugAssert,\n _createError,\n _assertInstanceOf\n} from '../../core/util/assert';\nimport { Delay } from '../../core/util/delay';\nimport { _generateEventId } from '../../core/util/event_id';\nimport { AuthInternal } from '../../model/auth';\nimport {\n AuthEventType,\n PopupRedirectResolverInternal\n} from '../../model/popup_redirect';\nimport { UserInternal } from '../../model/user';\nimport { _withDefaultResolver } from '../../core/util/resolver';\nimport { AuthPopup } from '../util/popup';\nimport { AbstractPopupRedirectOperation } from '../../core/strategies/abstract_popup_redirect_operation';\nimport { FederatedAuthProvider } from '../../core/providers/federated';\nimport { getModularInstance } from '@firebase/util';\n\n/*\n * The event timeout is the same on mobile and desktop, no need for Delay. Set this to 8s since\n * blocking functions can take upto 7s to complete sign in, as documented in:\n * https://cloud.google.com/identity-platform/docs/blocking-functions#understanding_blocking_functions\n * https://firebase.google.com/docs/auth/extend-with-blocking-functions#understanding_blocking_functions\n */\nexport const enum _Timeout {\n AUTH_EVENT = 8000\n}\nexport const _POLL_WINDOW_CLOSE_TIMEOUT = new Delay(2000, 10000);\n\n/**\n * Authenticates a Firebase client using a popup-based OAuth authentication flow.\n *\n * @remarks\n * If succeeds, returns the signed in user along with the provider's credential. If sign in was\n * unsuccessful, returns an error object containing additional information about the error.\n *\n * This method does not work in a Node.js environment.\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new FacebookAuthProvider();\n * const result = await signInWithPopup(auth, provider);\n *\n * // The signed-in user info.\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport async function signInWithPopup(\n auth: Auth,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const authInternal = _castAuth(auth);\n _assertInstanceOf(auth, provider, FederatedAuthProvider);\n const resolverInternal = _withDefaultResolver(authInternal, resolver);\n const action = new PopupOperation(\n authInternal,\n AuthEventType.SIGN_IN_VIA_POPUP,\n provider,\n resolverInternal\n );\n return action.executeNotNull();\n}\n\n/**\n * Reauthenticates the current user with the specified {@link OAuthProvider} using a pop-up based\n * OAuth flow.\n *\n * @remarks\n * If the reauthentication is successful, the returned result will contain the user and the\n * provider's credential.\n *\n * This method does not work in a Node.js environment.\n *\n * @example\n * ```javascript\n * // Sign in using a popup.\n * const provider = new FacebookAuthProvider();\n * const result = await signInWithPopup(auth, provider);\n * // Reauthenticate using a popup.\n * await reauthenticateWithPopup(result.user, provider);\n * ```\n *\n * @param user - The user.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport async function reauthenticateWithPopup(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n _assertInstanceOf(userInternal.auth, provider, FederatedAuthProvider);\n const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);\n const action = new PopupOperation(\n userInternal.auth,\n AuthEventType.REAUTH_VIA_POPUP,\n provider,\n resolverInternal,\n userInternal\n );\n return action.executeNotNull();\n}\n\n/**\n * Links the authenticated provider to the user account using a pop-up based OAuth flow.\n *\n * @remarks\n * If the linking is successful, the returned result will contain the user and the provider's credential.\n *\n * This method does not work in a Node.js environment.\n *\n * @example\n * ```javascript\n * // Sign in using some other provider.\n * const result = await signInWithEmailAndPassword(auth, email, password);\n * // Link using a popup.\n * const provider = new FacebookAuthProvider();\n * await linkWithPopup(result.user, provider);\n * ```\n *\n * @param user - The user.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport async function linkWithPopup(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n _assertInstanceOf(userInternal.auth, provider, FederatedAuthProvider);\n const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);\n\n const action = new PopupOperation(\n userInternal.auth,\n AuthEventType.LINK_VIA_POPUP,\n provider,\n resolverInternal,\n userInternal\n );\n return action.executeNotNull();\n}\n\n/**\n * Popup event manager. Handles the popup's entire lifecycle; listens to auth\n * events\n *\n */\nclass PopupOperation extends AbstractPopupRedirectOperation {\n // Only one popup is ever shown at once. The lifecycle of the current popup\n // can be managed / cancelled by the constructor.\n private static currentPopupAction: PopupOperation | null = null;\n private authWindow: AuthPopup | null = null;\n private pollId: number | null = null;\n\n constructor(\n auth: AuthInternal,\n filter: AuthEventType,\n private readonly provider: AuthProvider,\n resolver: PopupRedirectResolverInternal,\n user?: UserInternal\n ) {\n super(auth, filter, resolver, user);\n if (PopupOperation.currentPopupAction) {\n PopupOperation.currentPopupAction.cancel();\n }\n\n PopupOperation.currentPopupAction = this;\n }\n\n async executeNotNull(): Promise {\n const result = await this.execute();\n _assert(result, this.auth, AuthErrorCode.INTERNAL_ERROR);\n return result;\n }\n\n async onExecution(): Promise {\n debugAssert(\n this.filter.length === 1,\n 'Popup operations only handle one event'\n );\n const eventId = _generateEventId();\n this.authWindow = await this.resolver._openPopup(\n this.auth,\n this.provider,\n this.filter[0], // There's always one, see constructor\n eventId\n );\n this.authWindow.associatedEvent = eventId;\n\n // Check for web storage support and origin validation _after_ the popup is\n // loaded. These operations are slow (~1 second or so) Rather than\n // waiting on them before opening the window, optimistically open the popup\n // and check for storage support at the same time. If storage support is\n // not available, this will cause the whole thing to reject properly. It\n // will also close the popup, but since the promise has already rejected,\n // the popup closed by user poll will reject into the void.\n this.resolver._originValidation(this.auth).catch(e => {\n this.reject(e);\n });\n\n this.resolver._isIframeWebStorageSupported(this.auth, isSupported => {\n if (!isSupported) {\n this.reject(\n _createError(this.auth, AuthErrorCode.WEB_STORAGE_UNSUPPORTED)\n );\n }\n });\n\n // Handle user closure. Notice this does *not* use await\n this.pollUserCancellation();\n }\n\n get eventId(): string | null {\n return this.authWindow?.associatedEvent || null;\n }\n\n cancel(): void {\n this.reject(_createError(this.auth, AuthErrorCode.EXPIRED_POPUP_REQUEST));\n }\n\n cleanUp(): void {\n if (this.authWindow) {\n this.authWindow.close();\n }\n\n if (this.pollId) {\n window.clearTimeout(this.pollId);\n }\n\n this.authWindow = null;\n this.pollId = null;\n PopupOperation.currentPopupAction = null;\n }\n\n private pollUserCancellation(): void {\n const poll = (): void => {\n if (this.authWindow?.window?.closed) {\n // Make sure that there is sufficient time for whatever action to\n // complete. The window could have closed but the sign in network\n // call could still be in flight. This is specifically true for\n // Firefox or if the opener is in an iframe, in which case the oauth\n // helper closes the popup.\n this.pollId = window.setTimeout(() => {\n this.pollId = null;\n this.reject(\n _createError(this.auth, AuthErrorCode.POPUP_CLOSED_BY_USER)\n );\n }, _Timeout.AUTH_EVENT);\n return;\n }\n\n this.pollId = window.setTimeout(poll, _POLL_WINDOW_CLOSE_TIMEOUT.get());\n };\n\n poll();\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthInternal } from '../../model/auth';\nimport {\n AuthEvent,\n AuthEventType,\n PopupRedirectResolverInternal\n} from '../../model/popup_redirect';\nimport { UserCredentialInternal } from '../../model/user';\nimport { PersistenceInternal } from '../persistence';\nimport { _persistenceKeyName } from '../persistence/persistence_user_manager';\nimport { _getInstance } from '../util/instantiator';\nimport { AbstractPopupRedirectOperation } from './abstract_popup_redirect_operation';\n\nconst PENDING_REDIRECT_KEY = 'pendingRedirect';\n\n// We only get one redirect outcome for any one auth, so just store it\n// in here.\nconst redirectOutcomeMap: Map<\n string,\n () => Promise\n> = new Map();\n\nexport class RedirectAction extends AbstractPopupRedirectOperation {\n eventId = null;\n\n constructor(\n auth: AuthInternal,\n resolver: PopupRedirectResolverInternal,\n bypassAuthState = false\n ) {\n super(\n auth,\n [\n AuthEventType.SIGN_IN_VIA_REDIRECT,\n AuthEventType.LINK_VIA_REDIRECT,\n AuthEventType.REAUTH_VIA_REDIRECT,\n AuthEventType.UNKNOWN\n ],\n resolver,\n undefined,\n bypassAuthState\n );\n }\n\n /**\n * Override the execute function; if we already have a redirect result, then\n * just return it.\n */\n async execute(): Promise {\n let readyOutcome = redirectOutcomeMap.get(this.auth._key());\n if (!readyOutcome) {\n try {\n const hasPendingRedirect = await _getAndClearPendingRedirectStatus(\n this.resolver,\n this.auth\n );\n const result = hasPendingRedirect ? await super.execute() : null;\n readyOutcome = () => Promise.resolve(result);\n } catch (e) {\n readyOutcome = () => Promise.reject(e);\n }\n\n redirectOutcomeMap.set(this.auth._key(), readyOutcome);\n }\n\n // If we're not bypassing auth state, the ready outcome should be set to\n // null.\n if (!this.bypassAuthState) {\n redirectOutcomeMap.set(this.auth._key(), () => Promise.resolve(null));\n }\n\n return readyOutcome();\n }\n\n async onAuthEvent(event: AuthEvent): Promise {\n if (event.type === AuthEventType.SIGN_IN_VIA_REDIRECT) {\n return super.onAuthEvent(event);\n } else if (event.type === AuthEventType.UNKNOWN) {\n // This is a sentinel value indicating there's no pending redirect\n this.resolve(null);\n return;\n }\n\n if (event.eventId) {\n const user = await this.auth._redirectUserForId(event.eventId);\n if (user) {\n this.user = user;\n return super.onAuthEvent(event);\n } else {\n this.resolve(null);\n }\n }\n }\n\n async onExecution(): Promise {}\n\n cleanUp(): void {}\n}\n\nexport async function _getAndClearPendingRedirectStatus(\n resolver: PopupRedirectResolverInternal,\n auth: AuthInternal\n): Promise {\n const key = pendingRedirectKey(auth);\n const persistence = resolverPersistence(resolver);\n if (!(await persistence._isAvailable())) {\n return false;\n }\n const hasPendingRedirect = (await persistence._get(key)) === 'true';\n await persistence._remove(key);\n return hasPendingRedirect;\n}\n\nexport async function _setPendingRedirectStatus(\n resolver: PopupRedirectResolverInternal,\n auth: AuthInternal\n): Promise {\n return resolverPersistence(resolver)._set(pendingRedirectKey(auth), 'true');\n}\n\nexport function _clearRedirectOutcomes(): void {\n redirectOutcomeMap.clear();\n}\n\nexport function _overrideRedirectResult(\n auth: AuthInternal,\n result: () => Promise\n): void {\n redirectOutcomeMap.set(auth._key(), result);\n}\n\nfunction resolverPersistence(\n resolver: PopupRedirectResolverInternal\n): PersistenceInternal {\n return _getInstance(resolver._redirectPersistence);\n}\n\nfunction pendingRedirectKey(auth: AuthInternal): string {\n return _persistenceKeyName(\n PENDING_REDIRECT_KEY,\n auth.config.apiKey,\n auth.name\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Auth,\n AuthProvider,\n PopupRedirectResolver,\n User,\n UserCredential\n} from '../../model/public_types';\n\nimport { _castAuth } from '../../core/auth/auth_impl';\nimport { _assertLinkedStatus } from '../../core/user/link_unlink';\nimport { _assertInstanceOf } from '../../core/util/assert';\nimport { _generateEventId } from '../../core/util/event_id';\nimport { AuthEventType } from '../../model/popup_redirect';\nimport { UserInternal } from '../../model/user';\nimport { _withDefaultResolver } from '../../core/util/resolver';\nimport {\n RedirectAction,\n _setPendingRedirectStatus\n} from '../../core/strategies/redirect';\nimport { FederatedAuthProvider } from '../../core/providers/federated';\nimport { getModularInstance } from '@firebase/util';\n\n/**\n * Authenticates a Firebase client using a full-page redirect flow.\n *\n * @remarks\n * To handle the results and errors for this operation, refer to {@link getRedirectResult}.\n * Follow the {@link https://firebase.google.com/docs/auth/web/redirect-best-practices\n * | best practices} when using {@link signInWithRedirect}.\n *\n * This method does not work in a Node.js environment.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new FacebookAuthProvider();\n * // You can add additional scopes to the provider:\n * provider.addScope('user_birthday');\n * // Start a sign in process for an unauthenticated user.\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * }\n * // As this API can be used for sign-in, linking and reauthentication,\n * // check the operationType to determine what triggered this redirect\n * // operation.\n * const operationType = result.operationType;\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport function signInWithRedirect(\n auth: Auth,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n return _signInWithRedirect(auth, provider, resolver) as Promise;\n}\n\nexport async function _signInWithRedirect(\n auth: Auth,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const authInternal = _castAuth(auth);\n _assertInstanceOf(auth, provider, FederatedAuthProvider);\n // Wait for auth initialization to complete, this will process pending redirects and clear the\n // PENDING_REDIRECT_KEY in persistence. This should be completed before starting a new\n // redirect and creating a PENDING_REDIRECT_KEY entry.\n await authInternal._initializationPromise;\n const resolverInternal = _withDefaultResolver(authInternal, resolver);\n await _setPendingRedirectStatus(resolverInternal, authInternal);\n\n return resolverInternal._openRedirect(\n authInternal,\n provider,\n AuthEventType.SIGN_IN_VIA_REDIRECT\n );\n}\n\n/**\n * Reauthenticates the current user with the specified {@link OAuthProvider} using a full-page redirect flow.\n * @remarks\n * To handle the results and errors for this operation, refer to {@link getRedirectResult}.\n * Follow the {@link https://firebase.google.com/docs/auth/web/redirect-best-practices\n * | best practices} when using {@link reauthenticateWithRedirect}.\n *\n * This method does not work in a Node.js environment.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new FacebookAuthProvider();\n * const result = await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * // Reauthenticate using a redirect.\n * await reauthenticateWithRedirect(result.user, provider);\n * // This will again trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * ```\n *\n * @param user - The user.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport function reauthenticateWithRedirect(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n return _reauthenticateWithRedirect(\n user,\n provider,\n resolver\n ) as Promise;\n}\nexport async function _reauthenticateWithRedirect(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n _assertInstanceOf(userInternal.auth, provider, FederatedAuthProvider);\n // Wait for auth initialization to complete, this will process pending redirects and clear the\n // PENDING_REDIRECT_KEY in persistence. This should be completed before starting a new\n // redirect and creating a PENDING_REDIRECT_KEY entry.\n await userInternal.auth._initializationPromise;\n // Allow the resolver to error before persisting the redirect user\n const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);\n await _setPendingRedirectStatus(resolverInternal, userInternal.auth);\n\n const eventId = await prepareUserForRedirect(userInternal);\n return resolverInternal._openRedirect(\n userInternal.auth,\n provider,\n AuthEventType.REAUTH_VIA_REDIRECT,\n eventId\n );\n}\n\n/**\n * Links the {@link OAuthProvider} to the user account using a full-page redirect flow.\n * @remarks\n * To handle the results and errors for this operation, refer to {@link getRedirectResult}.\n * Follow the {@link https://firebase.google.com/docs/auth/web/redirect-best-practices\n * | best practices} when using {@link linkWithRedirect}.\n *\n * This method does not work in a Node.js environment.\n *\n * @example\n * ```javascript\n * // Sign in using some other provider.\n * const result = await signInWithEmailAndPassword(auth, email, password);\n * // Link using a redirect.\n * const provider = new FacebookAuthProvider();\n * await linkWithRedirect(result.user, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * ```\n *\n * @param user - The user.\n * @param provider - The provider to authenticate. The provider has to be an {@link OAuthProvider}.\n * Non-OAuth providers like {@link EmailAuthProvider} will throw an error.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport function linkWithRedirect(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n return _linkWithRedirect(user, provider, resolver) as Promise;\n}\nexport async function _linkWithRedirect(\n user: User,\n provider: AuthProvider,\n resolver?: PopupRedirectResolver\n): Promise {\n const userInternal = getModularInstance(user) as UserInternal;\n _assertInstanceOf(userInternal.auth, provider, FederatedAuthProvider);\n // Wait for auth initialization to complete, this will process pending redirects and clear the\n // PENDING_REDIRECT_KEY in persistence. This should be completed before starting a new\n // redirect and creating a PENDING_REDIRECT_KEY entry.\n await userInternal.auth._initializationPromise;\n // Allow the resolver to error before persisting the redirect user\n const resolverInternal = _withDefaultResolver(userInternal.auth, resolver);\n await _assertLinkedStatus(false, userInternal, provider.providerId);\n await _setPendingRedirectStatus(resolverInternal, userInternal.auth);\n\n const eventId = await prepareUserForRedirect(userInternal);\n return resolverInternal._openRedirect(\n userInternal.auth,\n provider,\n AuthEventType.LINK_VIA_REDIRECT,\n eventId\n );\n}\n\n/**\n * Returns a {@link UserCredential} from the redirect-based sign-in flow.\n *\n * @remarks\n * If sign-in succeeded, returns the signed in user. If sign-in was unsuccessful, fails with an\n * error. If no redirect operation was called, returns `null`.\n *\n * This method does not work in a Node.js environment.\n *\n * @example\n * ```javascript\n * // Sign in using a redirect.\n * const provider = new FacebookAuthProvider();\n * // You can add additional scopes to the provider:\n * provider.addScope('user_birthday');\n * // Start a sign in process for an unauthenticated user.\n * await signInWithRedirect(auth, provider);\n * // This will trigger a full page redirect away from your app\n *\n * // After returning from the redirect when your app initializes you can obtain the result\n * const result = await getRedirectResult(auth);\n * if (result) {\n * // This is the signed-in user\n * const user = result.user;\n * // This gives you a Facebook Access Token.\n * const credential = provider.credentialFromResult(auth, result);\n * const token = credential.accessToken;\n * }\n * // As this API can be used for sign-in, linking and reauthentication,\n * // check the operationType to determine what triggered this redirect\n * // operation.\n * const operationType = result.operationType;\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param resolver - An instance of {@link PopupRedirectResolver}, optional\n * if already supplied to {@link initializeAuth} or provided by {@link getAuth}.\n *\n * @public\n */\nexport async function getRedirectResult(\n auth: Auth,\n resolver?: PopupRedirectResolver\n): Promise {\n await _castAuth(auth)._initializationPromise;\n return _getRedirectResult(auth, resolver, false);\n}\n\nexport async function _getRedirectResult(\n auth: Auth,\n resolverExtern?: PopupRedirectResolver,\n bypassAuthState = false\n): Promise {\n const authInternal = _castAuth(auth);\n const resolver = _withDefaultResolver(authInternal, resolverExtern);\n const action = new RedirectAction(authInternal, resolver, bypassAuthState);\n const result = await action.execute();\n\n if (result && !bypassAuthState) {\n delete result.user._redirectEventId;\n await authInternal._persistUserIfCurrent(result.user as UserInternal);\n await authInternal._setRedirectUser(null, resolverExtern);\n }\n\n return result;\n}\n\nasync function prepareUserForRedirect(user: UserInternal): Promise {\n const eventId = _generateEventId(`${user.uid}:::`);\n user._redirectEventId = eventId;\n await user.auth._setRedirectUser(user);\n await user.auth._persistUserIfCurrent(user);\n return eventId;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AuthEvent,\n AuthEventConsumer,\n AuthEventType,\n EventManager\n} from '../../model/popup_redirect';\nimport { AuthErrorCode } from '../errors';\nimport { AuthInternal } from '../../model/auth';\nimport { _createError } from '../util/assert';\n\n// The amount of time to store the UIDs of seen events; this is\n// set to 10 min by default\nconst EVENT_DUPLICATION_CACHE_DURATION_MS = 10 * 60 * 1000;\n\nexport class AuthEventManager implements EventManager {\n private readonly cachedEventUids: Set = new Set();\n private readonly consumers: Set = new Set();\n protected queuedRedirectEvent: AuthEvent | null = null;\n protected hasHandledPotentialRedirect = false;\n private lastProcessedEventTime = Date.now();\n\n constructor(private readonly auth: AuthInternal) {}\n\n registerConsumer(authEventConsumer: AuthEventConsumer): void {\n this.consumers.add(authEventConsumer);\n\n if (\n this.queuedRedirectEvent &&\n this.isEventForConsumer(this.queuedRedirectEvent, authEventConsumer)\n ) {\n this.sendToConsumer(this.queuedRedirectEvent, authEventConsumer);\n this.saveEventToCache(this.queuedRedirectEvent);\n this.queuedRedirectEvent = null;\n }\n }\n\n unregisterConsumer(authEventConsumer: AuthEventConsumer): void {\n this.consumers.delete(authEventConsumer);\n }\n\n onEvent(event: AuthEvent): boolean {\n // Check if the event has already been handled\n if (this.hasEventBeenHandled(event)) {\n return false;\n }\n\n let handled = false;\n this.consumers.forEach(consumer => {\n if (this.isEventForConsumer(event, consumer)) {\n handled = true;\n this.sendToConsumer(event, consumer);\n this.saveEventToCache(event);\n }\n });\n\n if (this.hasHandledPotentialRedirect || !isRedirectEvent(event)) {\n // If we've already seen a redirect before, or this is a popup event,\n // bail now\n return handled;\n }\n\n this.hasHandledPotentialRedirect = true;\n\n // If the redirect wasn't handled, hang on to it\n if (!handled) {\n this.queuedRedirectEvent = event;\n handled = true;\n }\n\n return handled;\n }\n\n private sendToConsumer(event: AuthEvent, consumer: AuthEventConsumer): void {\n if (event.error && !isNullRedirectEvent(event)) {\n const code =\n (event.error.code?.split('auth/')[1] as AuthErrorCode) ||\n AuthErrorCode.INTERNAL_ERROR;\n consumer.onError(_createError(this.auth, code));\n } else {\n consumer.onAuthEvent(event);\n }\n }\n\n private isEventForConsumer(\n event: AuthEvent,\n consumer: AuthEventConsumer\n ): boolean {\n const eventIdMatches =\n consumer.eventId === null ||\n (!!event.eventId && event.eventId === consumer.eventId);\n return consumer.filter.includes(event.type) && eventIdMatches;\n }\n\n private hasEventBeenHandled(event: AuthEvent): boolean {\n if (\n Date.now() - this.lastProcessedEventTime >=\n EVENT_DUPLICATION_CACHE_DURATION_MS\n ) {\n this.cachedEventUids.clear();\n }\n\n return this.cachedEventUids.has(eventUid(event));\n }\n\n private saveEventToCache(event: AuthEvent): void {\n this.cachedEventUids.add(eventUid(event));\n this.lastProcessedEventTime = Date.now();\n }\n}\n\nfunction eventUid(e: AuthEvent): string {\n return [e.type, e.eventId, e.sessionId, e.tenantId].filter(v => v).join('-');\n}\n\nfunction isNullRedirectEvent({ type, error }: AuthEvent): boolean {\n return (\n type === AuthEventType.UNKNOWN &&\n error?.code === `auth/${AuthErrorCode.NO_AUTH_EVENT}`\n );\n}\n\nfunction isRedirectEvent(event: AuthEvent): boolean {\n switch (event.type) {\n case AuthEventType.SIGN_IN_VIA_REDIRECT:\n case AuthEventType.LINK_VIA_REDIRECT:\n case AuthEventType.REAUTH_VIA_REDIRECT:\n return true;\n case AuthEventType.UNKNOWN:\n return isNullRedirectEvent(event);\n default:\n return false;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _performApiRequest, Endpoint, HttpMethod } from '../index';\nimport { Auth } from '../../model/public_types';\n\nexport interface GetProjectConfigRequest {\n androidPackageName?: string;\n iosBundleId?: string;\n}\n\nexport interface GetProjectConfigResponse {\n authorizedDomains: string[];\n}\n\nexport async function _getProjectConfig(\n auth: Auth,\n request: GetProjectConfigRequest = {}\n): Promise {\n return _performApiRequest(\n auth,\n HttpMethod.GET,\n Endpoint.GET_PROJECT_CONFIG,\n request\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _getProjectConfig } from '../../api/project_config/get_project_config';\nimport { AuthInternal } from '../../model/auth';\nimport { AuthErrorCode } from '../errors';\nimport { _fail } from './assert';\nimport { _getCurrentUrl } from './location';\n\nconst IP_ADDRESS_REGEX = /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$/;\nconst HTTP_REGEX = /^https?/;\n\nexport async function _validateOrigin(auth: AuthInternal): Promise {\n // Skip origin validation if we are in an emulated environment\n if (auth.config.emulator) {\n return;\n }\n\n const { authorizedDomains } = await _getProjectConfig(auth);\n\n for (const domain of authorizedDomains) {\n try {\n if (matchDomain(domain)) {\n return;\n }\n } catch {\n // Do nothing if there's a URL error; just continue searching\n }\n }\n\n // In the old SDK, this error also provides helpful messages.\n _fail(auth, AuthErrorCode.INVALID_ORIGIN);\n}\n\nfunction matchDomain(expected: string): boolean {\n const currentUrl = _getCurrentUrl();\n const { protocol, hostname } = new URL(currentUrl);\n if (expected.startsWith('chrome-extension://')) {\n const ceUrl = new URL(expected);\n\n if (ceUrl.hostname === '' && hostname === '') {\n // For some reason we're not parsing chrome URLs properly\n return (\n protocol === 'chrome-extension:' &&\n expected.replace('chrome-extension://', '') ===\n currentUrl.replace('chrome-extension://', '')\n );\n }\n\n return protocol === 'chrome-extension:' && ceUrl.hostname === hostname;\n }\n\n if (!HTTP_REGEX.test(protocol)) {\n return false;\n }\n\n if (IP_ADDRESS_REGEX.test(expected)) {\n // The domain has to be exactly equal to the pattern, as an IP domain will\n // only contain the IP, no extra character.\n return hostname === expected;\n }\n\n // Dots in pattern should be escaped.\n const escapedDomainPattern = expected.replace(/\\./g, '\\\\.');\n // Non ip address domains.\n // domain.com = *.domain.com OR domain.com\n const re = new RegExp(\n '^(.+\\\\.' + escapedDomainPattern + '|' + escapedDomainPattern + ')$',\n 'i'\n );\n return re.test(hostname);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _createError } from '../../core/util/assert';\nimport { Delay } from '../../core/util/delay';\nimport { AuthInternal } from '../../model/auth';\nimport { _window } from '../auth_window';\nimport * as js from '../load_js';\n\nconst NETWORK_TIMEOUT = new Delay(30000, 60000);\n\n/**\n * Reset unlaoded GApi modules. If gapi.load fails due to a network error,\n * it will stop working after a retrial. This is a hack to fix this issue.\n */\nfunction resetUnloadedGapiModules(): void {\n // Clear last failed gapi.load state to force next gapi.load to first\n // load the failed gapi.iframes module.\n // Get gapix.beacon context.\n const beacon = _window().___jsl;\n // Get current hint.\n if (beacon?.H) {\n // Get gapi hint.\n for (const hint of Object.keys(beacon.H)) {\n // Requested modules.\n beacon.H[hint].r = beacon.H[hint].r || [];\n // Loaded modules.\n beacon.H[hint].L = beacon.H[hint].L || [];\n // Set requested modules to a copy of the loaded modules.\n beacon.H[hint].r = [...beacon.H[hint].L];\n // Clear pending callbacks.\n if (beacon.CP) {\n for (let i = 0; i < beacon.CP.length; i++) {\n // Remove all failed pending callbacks.\n beacon.CP[i] = null;\n }\n }\n }\n }\n}\n\nfunction loadGapi(auth: AuthInternal): Promise {\n return new Promise((resolve, reject) => {\n // Function to run when gapi.load is ready.\n function loadGapiIframe(): void {\n // The developer may have tried to previously run gapi.load and failed.\n // Run this to fix that.\n resetUnloadedGapiModules();\n gapi.load('gapi.iframes', {\n callback: () => {\n resolve(gapi.iframes.getContext());\n },\n ontimeout: () => {\n // The above reset may be sufficient, but having this reset after\n // failure ensures that if the developer calls gapi.load after the\n // connection is re-established and before another attempt to embed\n // the iframe, it would work and would not be broken because of our\n // failed attempt.\n // Timeout when gapi.iframes.Iframe not loaded.\n resetUnloadedGapiModules();\n reject(_createError(auth, AuthErrorCode.NETWORK_REQUEST_FAILED));\n },\n timeout: NETWORK_TIMEOUT.get()\n });\n }\n\n if (_window().gapi?.iframes?.Iframe) {\n // If gapi.iframes.Iframe available, resolve.\n resolve(gapi.iframes.getContext());\n } else if (!!_window().gapi?.load) {\n // Gapi loader ready, load gapi.iframes.\n loadGapiIframe();\n } else {\n // Create a new iframe callback when this is called so as not to overwrite\n // any previous defined callback. This happens if this method is called\n // multiple times in parallel and could result in the later callback\n // overwriting the previous one. This would end up with a iframe\n // timeout.\n const cbName = js._generateCallbackName('iframefcb');\n // GApi loader not available, dynamically load platform.js.\n _window()[cbName] = () => {\n // GApi loader should be ready.\n if (!!gapi.load) {\n loadGapiIframe();\n } else {\n // Gapi loader failed, throw error.\n reject(_createError(auth, AuthErrorCode.NETWORK_REQUEST_FAILED));\n }\n };\n // Load GApi loader.\n return js\n ._loadJS(`https://apis.google.com/js/api.js?onload=${cbName}`)\n .catch(e => reject(e));\n }\n }).catch(error => {\n // Reset cached promise to allow for retrial.\n cachedGApiLoader = null;\n throw error;\n });\n}\n\nlet cachedGApiLoader: Promise | null = null;\nexport function _loadGapi(auth: AuthInternal): Promise {\n cachedGApiLoader = cachedGApiLoader || loadGapi(auth);\n return cachedGApiLoader;\n}\n\nexport function _resetLoader(): void {\n cachedGApiLoader = null;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SDK_VERSION } from '@firebase/app';\nimport { querystring } from '@firebase/util';\nimport { DefaultConfig } from '../../../internal';\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert, _createError } from '../../core/util/assert';\nimport { Delay } from '../../core/util/delay';\nimport { _emulatorUrl } from '../../core/util/emulator';\nimport { AuthInternal } from '../../model/auth';\nimport { _window } from '../auth_window';\nimport * as gapiLoader from './gapi';\n\nconst PING_TIMEOUT = new Delay(5000, 15000);\nconst IFRAME_PATH = '__/auth/iframe';\nconst EMULATED_IFRAME_PATH = 'emulator/auth/iframe';\n\nconst IFRAME_ATTRIBUTES = {\n style: {\n position: 'absolute',\n top: '-100px',\n width: '1px',\n height: '1px'\n },\n 'aria-hidden': 'true',\n tabindex: '-1'\n};\n\n// Map from apiHost to endpoint ID for passing into iframe. In current SDK, apiHost can be set to\n// anything (not from a list of endpoints with IDs as in legacy), so this is the closest we can get.\nconst EID_FROM_APIHOST = new Map([\n [DefaultConfig.API_HOST, 'p'], // production\n ['staging-identitytoolkit.sandbox.googleapis.com', 's'], // staging\n ['test-identitytoolkit.sandbox.googleapis.com', 't'] // test\n]);\n\nfunction getIframeUrl(auth: AuthInternal): string {\n const config = auth.config;\n _assert(config.authDomain, auth, AuthErrorCode.MISSING_AUTH_DOMAIN);\n const url = config.emulator\n ? _emulatorUrl(config, EMULATED_IFRAME_PATH)\n : `https://${auth.config.authDomain}/${IFRAME_PATH}`;\n\n const params: Record = {\n apiKey: config.apiKey,\n appName: auth.name,\n v: SDK_VERSION\n };\n const eid = EID_FROM_APIHOST.get(auth.config.apiHost);\n if (eid) {\n params.eid = eid;\n }\n const frameworks = auth._getFrameworks();\n if (frameworks.length) {\n params.fw = frameworks.join(',');\n }\n return `${url}?${querystring(params).slice(1)}`;\n}\n\nexport async function _openIframe(\n auth: AuthInternal\n): Promise {\n const context = await gapiLoader._loadGapi(auth);\n const gapi = _window().gapi;\n _assert(gapi, auth, AuthErrorCode.INTERNAL_ERROR);\n return context.open(\n {\n where: document.body,\n url: getIframeUrl(auth),\n messageHandlersFilter: gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER,\n attributes: IFRAME_ATTRIBUTES,\n dontclear: true\n },\n (iframe: gapi.iframes.Iframe) =>\n new Promise(async (resolve, reject) => {\n await iframe.restyle({\n // Prevent iframe from closing on mouse out.\n setHideOnLeave: false\n });\n\n const networkError = _createError(\n auth,\n AuthErrorCode.NETWORK_REQUEST_FAILED\n );\n // Confirm iframe is correctly loaded.\n // To fallback on failure, set a timeout.\n const networkErrorTimer = _window().setTimeout(() => {\n reject(networkError);\n }, PING_TIMEOUT.get());\n // Clear timer and resolve pending iframe ready promise.\n function clearTimerAndResolve(): void {\n _window().clearTimeout(networkErrorTimer);\n resolve(iframe);\n }\n // This returns an IThenable. However the reject part does not call\n // when the iframe is not loaded.\n iframe.ping(clearTimerAndResolve).then(clearTimerAndResolve, () => {\n reject(networkError);\n });\n })\n );\n}\n","/**\n * @license\n * Copyright 2020 Google LLC.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getUA } from '@firebase/util';\n\nimport { AuthErrorCode } from '../../core/errors';\nimport { _assert } from '../../core/util/assert';\nimport {\n _isChromeIOS,\n _isFirefox,\n _isIOSStandalone\n} from '../../core/util/browser';\nimport { AuthInternal } from '../../model/auth';\n\nconst BASE_POPUP_OPTIONS = {\n location: 'yes',\n resizable: 'yes',\n statusbar: 'yes',\n toolbar: 'no'\n};\n\nconst DEFAULT_WIDTH = 500;\nconst DEFAULT_HEIGHT = 600;\nconst TARGET_BLANK = '_blank';\n\nconst FIREFOX_EMPTY_URL = 'http://localhost';\n\nexport class AuthPopup {\n associatedEvent: string | null = null;\n\n constructor(readonly window: Window | null) {}\n\n close(): void {\n if (this.window) {\n try {\n this.window.close();\n } catch (e) {}\n }\n }\n}\n\nexport function _open(\n auth: AuthInternal,\n url?: string,\n name?: string,\n width = DEFAULT_WIDTH,\n height = DEFAULT_HEIGHT\n): AuthPopup {\n const top = Math.max((window.screen.availHeight - height) / 2, 0).toString();\n const left = Math.max((window.screen.availWidth - width) / 2, 0).toString();\n let target = '';\n\n const options: { [key: string]: string } = {\n ...BASE_POPUP_OPTIONS,\n width: width.toString(),\n height: height.toString(),\n top,\n left\n };\n\n // Chrome iOS 7 and 8 is returning an undefined popup win when target is\n // specified, even though the popup is not necessarily blocked.\n const ua = getUA().toLowerCase();\n\n if (name) {\n target = _isChromeIOS(ua) ? TARGET_BLANK : name;\n }\n\n if (_isFirefox(ua)) {\n // Firefox complains when invalid URLs are popped out. Hacky way to bypass.\n url = url || FIREFOX_EMPTY_URL;\n // Firefox disables by default scrolling on popup windows, which can create\n // issues when the user has many Google accounts, for instance.\n options.scrollbars = 'yes';\n }\n\n const optionsString = Object.entries(options).reduce(\n (accum, [key, value]) => `${accum}${key}=${value},`,\n ''\n );\n\n if (_isIOSStandalone(ua) && target !== '_self') {\n openAsNewWindowIOS(url || '', target);\n return new AuthPopup(null);\n }\n\n // about:blank getting sanitized causing browsers like IE/Edge to display\n // brief error message before redirecting to handler.\n const newWin = window.open(url || '', target, optionsString);\n _assert(newWin, auth, AuthErrorCode.POPUP_BLOCKED);\n\n // Flaky on IE edge, encapsulate with a try and catch.\n try {\n newWin.focus();\n } catch (e) {}\n\n return new AuthPopup(newWin);\n}\n\nfunction openAsNewWindowIOS(url: string, target: string): void {\n const el = document.createElement('a');\n el.href = url;\n el.target = target;\n const click = document.createEvent('MouseEvent');\n click.initMouseEvent(\n 'click',\n true,\n true,\n window,\n 1,\n 0,\n 0,\n 0,\n 0,\n false,\n false,\n false,\n false,\n 1,\n null\n );\n el.dispatchEvent(click);\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SDK_VERSION } from '@firebase/app';\nimport { AuthProvider } from '../../model/public_types';\nimport { ApiKey, AppName, AuthInternal } from '../../model/auth';\nimport { AuthEventType } from '../../model/popup_redirect';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from './assert';\nimport { isEmpty, querystring } from '@firebase/util';\nimport { _emulatorUrl } from './emulator';\nimport { FederatedAuthProvider } from '../providers/federated';\nimport { BaseOAuthProvider } from '../providers/oauth';\n\n/**\n * URL for Authentication widget which will initiate the OAuth handshake\n *\n * @internal\n */\nconst WIDGET_PATH = '__/auth/handler';\n\n/**\n * URL for emulated environment\n *\n * @internal\n */\nconst EMULATOR_WIDGET_PATH = 'emulator/auth/handler';\n\n/**\n * Fragment name for the App Check token that gets passed to the widget\n *\n * @internal\n */\nconst FIREBASE_APP_CHECK_FRAGMENT_ID = encodeURIComponent('fac');\n\n// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\ntype WidgetParams = {\n apiKey: ApiKey;\n appName: AppName;\n authType: AuthEventType;\n redirectUrl?: string;\n v: string;\n providerId?: string;\n scopes?: string;\n customParameters?: string;\n eventId?: string;\n tid?: string;\n} & { [key: string]: string | undefined };\n\nexport async function _getRedirectUrl(\n auth: AuthInternal,\n provider: AuthProvider,\n authType: AuthEventType,\n redirectUrl?: string,\n eventId?: string,\n additionalParams?: Record\n): Promise {\n _assert(auth.config.authDomain, auth, AuthErrorCode.MISSING_AUTH_DOMAIN);\n _assert(auth.config.apiKey, auth, AuthErrorCode.INVALID_API_KEY);\n\n const params: WidgetParams = {\n apiKey: auth.config.apiKey,\n appName: auth.name,\n authType,\n redirectUrl,\n v: SDK_VERSION,\n eventId\n };\n\n if (provider instanceof FederatedAuthProvider) {\n provider.setDefaultLanguage(auth.languageCode);\n params.providerId = provider.providerId || '';\n if (!isEmpty(provider.getCustomParameters())) {\n params.customParameters = JSON.stringify(provider.getCustomParameters());\n }\n\n // TODO set additionalParams from the provider as well?\n for (const [key, value] of Object.entries(additionalParams || {})) {\n params[key] = value;\n }\n }\n\n if (provider instanceof BaseOAuthProvider) {\n const scopes = provider.getScopes().filter(scope => scope !== '');\n if (scopes.length > 0) {\n params.scopes = scopes.join(',');\n }\n }\n\n if (auth.tenantId) {\n params.tid = auth.tenantId;\n }\n\n // TODO: maybe set eid as endipointId\n // TODO: maybe set fw as Frameworks.join(\",\")\n\n const paramsDict = params as Record;\n for (const key of Object.keys(paramsDict)) {\n if (paramsDict[key] === undefined) {\n delete paramsDict[key];\n }\n }\n\n // Sets the App Check token to pass to the widget\n const appCheckToken = await auth._getAppCheckToken();\n const appCheckTokenFragment = appCheckToken\n ? `#${FIREBASE_APP_CHECK_FRAGMENT_ID}=${encodeURIComponent(appCheckToken)}`\n : '';\n\n // Start at index 1 to skip the leading '&' in the query string\n return `${getHandlerBase(auth)}?${querystring(paramsDict).slice(\n 1\n )}${appCheckTokenFragment}`;\n}\n\nfunction getHandlerBase({ config }: AuthInternal): string {\n if (!config.emulator) {\n return `https://${config.authDomain}/${WIDGET_PATH}`;\n }\n\n return _emulatorUrl(config, EMULATOR_WIDGET_PATH);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthProvider, PopupRedirectResolver } from '../model/public_types';\n\nimport { AuthEventManager } from '../core/auth/auth_event_manager';\nimport { AuthErrorCode } from '../core/errors';\nimport { _assert, debugAssert, _fail } from '../core/util/assert';\nimport { _generateEventId } from '../core/util/event_id';\nimport { _getCurrentUrl } from '../core/util/location';\nimport { _validateOrigin } from '../core/util/validate_origin';\nimport { AuthInternal } from '../model/auth';\nimport {\n AuthEventType,\n EventManager,\n GapiAuthEvent,\n GapiOutcome,\n PopupRedirectResolverInternal\n} from '../model/popup_redirect';\nimport { _setWindowLocation } from './auth_window';\nimport { _openIframe } from './iframe/iframe';\nimport { browserSessionPersistence } from './persistence/session_storage';\nimport { _open, AuthPopup } from './util/popup';\nimport { _getRedirectResult } from './strategies/redirect';\nimport { _getRedirectUrl } from '../core/util/handler';\nimport { _isIOS, _isMobileBrowser, _isSafari } from '../core/util/browser';\nimport { _overrideRedirectResult } from '../core/strategies/redirect';\n\n/**\n * The special web storage event\n *\n */\nconst WEB_STORAGE_SUPPORT_KEY = 'webStorageSupport';\n\ninterface WebStorageSupportMessage extends gapi.iframes.Message {\n [index: number]: Record;\n}\n\ninterface ManagerOrPromise {\n manager?: EventManager;\n promise?: Promise;\n}\n\nclass BrowserPopupRedirectResolver implements PopupRedirectResolverInternal {\n private readonly eventManagers: Record = {};\n private readonly iframes: Record = {};\n private readonly originValidationPromises: Record> = {};\n\n readonly _redirectPersistence = browserSessionPersistence;\n\n // Wrapping in async even though we don't await anywhere in order\n // to make sure errors are raised as promise rejections\n async _openPopup(\n auth: AuthInternal,\n provider: AuthProvider,\n authType: AuthEventType,\n eventId?: string\n ): Promise {\n debugAssert(\n this.eventManagers[auth._key()]?.manager,\n '_initialize() not called before _openPopup()'\n );\n\n const url = await _getRedirectUrl(\n auth,\n provider,\n authType,\n _getCurrentUrl(),\n eventId\n );\n return _open(auth, url, _generateEventId());\n }\n\n async _openRedirect(\n auth: AuthInternal,\n provider: AuthProvider,\n authType: AuthEventType,\n eventId?: string\n ): Promise {\n await this._originValidation(auth);\n const url = await _getRedirectUrl(\n auth,\n provider,\n authType,\n _getCurrentUrl(),\n eventId\n );\n _setWindowLocation(url);\n return new Promise(() => {});\n }\n\n _initialize(auth: AuthInternal): Promise {\n const key = auth._key();\n if (this.eventManagers[key]) {\n const { manager, promise } = this.eventManagers[key];\n if (manager) {\n return Promise.resolve(manager);\n } else {\n debugAssert(promise, 'If manager is not set, promise should be');\n return promise;\n }\n }\n\n const promise = this.initAndGetManager(auth);\n this.eventManagers[key] = { promise };\n\n // If the promise is rejected, the key should be removed so that the\n // operation can be retried later.\n promise.catch(() => {\n delete this.eventManagers[key];\n });\n\n return promise;\n }\n\n private async initAndGetManager(auth: AuthInternal): Promise {\n const iframe = await _openIframe(auth);\n const manager = new AuthEventManager(auth);\n iframe.register(\n 'authEvent',\n (iframeEvent: GapiAuthEvent | null) => {\n _assert(iframeEvent?.authEvent, auth, AuthErrorCode.INVALID_AUTH_EVENT);\n // TODO: Consider splitting redirect and popup events earlier on\n\n const handled = manager.onEvent(iframeEvent.authEvent);\n return { status: handled ? GapiOutcome.ACK : GapiOutcome.ERROR };\n },\n gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER\n );\n\n this.eventManagers[auth._key()] = { manager };\n this.iframes[auth._key()] = iframe;\n return manager;\n }\n\n _isIframeWebStorageSupported(\n auth: AuthInternal,\n cb: (supported: boolean) => unknown\n ): void {\n const iframe = this.iframes[auth._key()];\n iframe.send(\n WEB_STORAGE_SUPPORT_KEY,\n { type: WEB_STORAGE_SUPPORT_KEY },\n result => {\n const isSupported = result?.[0]?.[WEB_STORAGE_SUPPORT_KEY];\n if (isSupported !== undefined) {\n cb(!!isSupported);\n }\n\n _fail(auth, AuthErrorCode.INTERNAL_ERROR);\n },\n gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER\n );\n }\n\n _originValidation(auth: AuthInternal): Promise {\n const key = auth._key();\n if (!this.originValidationPromises[key]) {\n this.originValidationPromises[key] = _validateOrigin(auth);\n }\n\n return this.originValidationPromises[key];\n }\n\n get _shouldInitProactively(): boolean {\n // Mobile browsers and Safari need to optimistically initialize\n return _isMobileBrowser() || _isSafari() || _isIOS();\n }\n\n _completeRedirectFn = _getRedirectResult;\n\n _overrideRedirectResult = _overrideRedirectResult;\n}\n\n/**\n * An implementation of {@link PopupRedirectResolver} suitable for browser\n * based applications.\n *\n * @remarks\n * This method does not work in a Node.js environment.\n *\n * @public\n */\nexport const browserPopupRedirectResolver: PopupRedirectResolver =\n BrowserPopupRedirectResolver;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { FactorId, MultiFactorAssertion } from '../model/public_types';\nimport { debugFail } from '../core/util/assert';\nimport { MultiFactorSessionImpl, MultiFactorSessionType } from './mfa_session';\nimport { FinalizeMfaResponse } from '../api/authentication/mfa';\nimport { AuthInternal } from '../model/auth';\n\nexport abstract class MultiFactorAssertionImpl implements MultiFactorAssertion {\n protected constructor(readonly factorId: FactorId) {}\n\n _process(\n auth: AuthInternal,\n session: MultiFactorSessionImpl,\n displayName?: string | null\n ): Promise {\n switch (session.type) {\n case MultiFactorSessionType.ENROLL:\n return this._finalizeEnroll(auth, session.credential, displayName);\n case MultiFactorSessionType.SIGN_IN:\n return this._finalizeSignIn(auth, session.credential);\n default:\n return debugFail('unexpected MultiFactorSessionType');\n }\n }\n\n abstract _finalizeEnroll(\n auth: AuthInternal,\n idToken: string,\n displayName?: string | null\n ): Promise;\n abstract _finalizeSignIn(\n auth: AuthInternal,\n mfaPendingCredential: string\n ): Promise;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n FactorId,\n PhoneMultiFactorAssertion\n} from '../../../model/public_types';\n\nimport { MultiFactorAssertionImpl } from '../../../mfa/mfa_assertion';\nimport { AuthInternal } from '../../../model/auth';\nimport { finalizeEnrollPhoneMfa } from '../../../api/account_management/mfa';\nimport { PhoneAuthCredential } from '../../../core/credentials/phone';\nimport {\n finalizeSignInPhoneMfa,\n FinalizeMfaResponse\n} from '../../../api/authentication/mfa';\n\n/**\n * {@inheritdoc PhoneMultiFactorAssertion}\n *\n * @public\n */\nexport class PhoneMultiFactorAssertionImpl\n extends MultiFactorAssertionImpl\n implements PhoneMultiFactorAssertion\n{\n private constructor(private readonly credential: PhoneAuthCredential) {\n super(FactorId.PHONE);\n }\n\n /** @internal */\n static _fromCredential(\n credential: PhoneAuthCredential\n ): PhoneMultiFactorAssertionImpl {\n return new PhoneMultiFactorAssertionImpl(credential);\n }\n\n /** @internal */\n _finalizeEnroll(\n auth: AuthInternal,\n idToken: string,\n displayName?: string | null\n ): Promise {\n return finalizeEnrollPhoneMfa(auth, {\n idToken,\n displayName,\n phoneVerificationInfo: this.credential._makeVerificationRequest()\n });\n }\n\n /** @internal */\n _finalizeSignIn(\n auth: AuthInternal,\n mfaPendingCredential: string\n ): Promise {\n return finalizeSignInPhoneMfa(auth, {\n mfaPendingCredential,\n phoneVerificationInfo: this.credential._makeVerificationRequest()\n });\n }\n}\n\n/**\n * Provider for generating a {@link PhoneMultiFactorAssertion}.\n *\n * @public\n */\nexport class PhoneMultiFactorGenerator {\n private constructor() {}\n\n /**\n * Provides a {@link PhoneMultiFactorAssertion} to confirm ownership of the phone second factor.\n *\n * @remarks\n * This method does not work in a Node.js environment.\n *\n * @param phoneAuthCredential - A credential provided by {@link PhoneAuthProvider.credential}.\n * @returns A {@link PhoneMultiFactorAssertion} which can be used with\n * {@link MultiFactorResolver.resolveSignIn}\n */\n static assertion(credential: PhoneAuthCredential): PhoneMultiFactorAssertion {\n return PhoneMultiFactorAssertionImpl._fromCredential(credential);\n }\n\n /**\n * The identifier of the phone second factor: `phone`.\n */\n static FACTOR_ID = 'phone';\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Unsubscribe } from '@firebase/util';\nimport { FirebaseAuthInternal } from '@firebase/auth-interop-types';\n\nimport { AuthInternal } from '../../model/auth';\nimport { UserInternal } from '../../model/user';\nimport { _assert } from '../util/assert';\nimport { AuthErrorCode } from '../errors';\n\ninterface TokenListener {\n (tok: string | null): unknown;\n}\n\nexport class AuthInterop implements FirebaseAuthInternal {\n private readonly internalListeners: Map =\n new Map();\n\n constructor(private readonly auth: AuthInternal) {}\n\n getUid(): string | null {\n this.assertAuthConfigured();\n return this.auth.currentUser?.uid || null;\n }\n\n async getToken(\n forceRefresh?: boolean\n ): Promise<{ accessToken: string } | null> {\n this.assertAuthConfigured();\n await this.auth._initializationPromise;\n if (!this.auth.currentUser) {\n return null;\n }\n\n const accessToken = await this.auth.currentUser.getIdToken(forceRefresh);\n return { accessToken };\n }\n\n addAuthTokenListener(listener: TokenListener): void {\n this.assertAuthConfigured();\n if (this.internalListeners.has(listener)) {\n return;\n }\n\n const unsubscribe = this.auth.onIdTokenChanged(user => {\n listener(\n (user as UserInternal | null)?.stsTokenManager.accessToken || null\n );\n });\n this.internalListeners.set(listener, unsubscribe);\n this.updateProactiveRefresh();\n }\n\n removeAuthTokenListener(listener: TokenListener): void {\n this.assertAuthConfigured();\n const unsubscribe = this.internalListeners.get(listener);\n if (!unsubscribe) {\n return;\n }\n\n this.internalListeners.delete(listener);\n unsubscribe();\n this.updateProactiveRefresh();\n }\n\n private assertAuthConfigured(): void {\n _assert(\n this.auth._initializationPromise,\n AuthErrorCode.DEPENDENT_SDK_INIT_BEFORE_AUTH\n );\n }\n\n private updateProactiveRefresh(): void {\n if (this.internalListeners.size > 0) {\n this.auth._startProactiveRefresh();\n } else {\n this.auth._stopProactiveRefresh();\n }\n }\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseApp, getApp, _getProvider } from '@firebase/app';\n\nimport {\n initializeAuth,\n beforeAuthStateChanged,\n onIdTokenChanged,\n connectAuthEmulator\n} from '..';\nimport { registerAuth } from '../core/auth/register';\nimport { ClientPlatform } from '../core/util/version';\nimport { browserLocalPersistence } from './persistence/local_storage';\nimport { browserSessionPersistence } from './persistence/session_storage';\nimport { indexedDBLocalPersistence } from './persistence/indexed_db';\nimport { browserPopupRedirectResolver } from './popup_redirect';\nimport { Auth, User } from '../model/public_types';\nimport { getDefaultEmulatorHost, getExperimentalSetting } from '@firebase/util';\n\nconst DEFAULT_ID_TOKEN_MAX_AGE = 5 * 60;\nconst authIdTokenMaxAge =\n getExperimentalSetting('authIdTokenMaxAge') || DEFAULT_ID_TOKEN_MAX_AGE;\n\nlet lastPostedIdToken: string | undefined | null = null;\n\nconst mintCookieFactory = (url: string) => async (user: User | null) => {\n const idTokenResult = user && (await user.getIdTokenResult());\n const idTokenAge =\n idTokenResult &&\n (new Date().getTime() - Date.parse(idTokenResult.issuedAtTime)) / 1_000;\n if (idTokenAge && idTokenAge > authIdTokenMaxAge) {\n return;\n }\n // Specifically trip null => undefined when logged out, to delete any existing cookie\n const idToken = idTokenResult?.token;\n if (lastPostedIdToken === idToken) {\n return;\n }\n lastPostedIdToken = idToken;\n await fetch(url, {\n method: idToken ? 'POST' : 'DELETE',\n headers: idToken\n ? {\n 'Authorization': `Bearer ${idToken}`\n }\n : {}\n });\n};\n\n/**\n * Returns the Auth instance associated with the provided {@link @firebase/app#FirebaseApp}.\n * If no instance exists, initializes an Auth instance with platform-specific default dependencies.\n *\n * @param app - The Firebase App.\n *\n * @public\n */\nexport function getAuth(app: FirebaseApp = getApp()): Auth {\n const provider = _getProvider(app, 'auth');\n\n if (provider.isInitialized()) {\n return provider.getImmediate();\n }\n\n const auth = initializeAuth(app, {\n popupRedirectResolver: browserPopupRedirectResolver,\n persistence: [\n indexedDBLocalPersistence,\n browserLocalPersistence,\n browserSessionPersistence\n ]\n });\n\n const authTokenSyncUrl = getExperimentalSetting('authTokenSyncURL');\n if (authTokenSyncUrl) {\n const mintCookie = mintCookieFactory(authTokenSyncUrl);\n beforeAuthStateChanged(auth, mintCookie, () =>\n mintCookie(auth.currentUser)\n );\n onIdTokenChanged(auth, user => mintCookie(user));\n }\n\n const authEmulatorHost = getDefaultEmulatorHost('auth');\n if (authEmulatorHost) {\n connectAuthEmulator(auth, `http://${authEmulatorHost}`);\n }\n\n return auth;\n}\n\nregisterAuth(ClientPlatform.BROWSER);\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _getProvider, FirebaseApp } from '@firebase/app';\nimport { deepEqual } from '@firebase/util';\nimport { Auth, Dependencies } from '../../model/public_types';\n\nimport { AuthErrorCode } from '../errors';\nimport { PersistenceInternal } from '../persistence';\nimport { _fail } from '../util/assert';\nimport { _getInstance } from '../util/instantiator';\nimport { AuthImpl } from './auth_impl';\n\n/**\n * Initializes an {@link Auth} instance with fine-grained control over\n * {@link Dependencies}.\n *\n * @remarks\n *\n * This function allows more control over the {@link Auth} instance than\n * {@link getAuth}. `getAuth` uses platform-specific defaults to supply\n * the {@link Dependencies}. In general, `getAuth` is the easiest way to\n * initialize Auth and works for most use cases. Use `initializeAuth` if you\n * need control over which persistence layer is used, or to minimize bundle\n * size if you're not using either `signInWithPopup` or `signInWithRedirect`.\n *\n * For example, if your app only uses anonymous accounts and you only want\n * accounts saved for the current session, initialize `Auth` with:\n *\n * ```js\n * const auth = initializeAuth(app, {\n * persistence: browserSessionPersistence,\n * popupRedirectResolver: undefined,\n * });\n * ```\n *\n * @public\n */\nexport function initializeAuth(app: FirebaseApp, deps?: Dependencies): Auth {\n const provider = _getProvider(app, 'auth');\n\n if (provider.isInitialized()) {\n const auth = provider.getImmediate() as AuthImpl;\n const initialOptions = provider.getOptions() as Dependencies;\n if (deepEqual(initialOptions, deps ?? {})) {\n return auth;\n } else {\n _fail(auth, AuthErrorCode.ALREADY_INITIALIZED);\n }\n }\n\n const auth = provider.initialize({ options: deps }) as AuthImpl;\n\n return auth;\n}\n\nexport function _initializeAuthInstance(\n auth: AuthImpl,\n deps?: Dependencies\n): void {\n const persistence = deps?.persistence || [];\n const hierarchy = (\n Array.isArray(persistence) ? persistence : [persistence]\n ).map(_getInstance);\n if (deps?.errorMap) {\n auth._updateErrorMap(deps.errorMap);\n }\n\n // This promise is intended to float; auth initialization happens in the\n // background, meanwhile the auth object may be used by the app.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n auth._initializeWithPersistence(hierarchy, deps?.popupRedirectResolver);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getModularInstance } from '@firebase/util';\nimport {\n Auth,\n NextOrObserver,\n Persistence,\n User,\n CompleteFn,\n ErrorFn,\n Unsubscribe\n} from '../model/public_types';\nimport { _castAuth } from '../core/auth/auth_impl';\n\nexport {\n debugErrorMap,\n prodErrorMap,\n AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY as AuthErrorCodes\n} from './errors';\n\n// Non-optional auth methods.\n/**\n * Changes the type of persistence on the {@link Auth} instance for the currently saved\n * `Auth` session and applies this type of persistence for future sign-in requests, including\n * sign-in with redirect requests.\n *\n * @remarks\n * This makes it easy for a user signing in to specify whether their session should be\n * remembered or not. It also makes it easier to never persist the `Auth` state for applications\n * that are shared by other users or have sensitive data.\n *\n * This method does not work in a Node.js environment.\n *\n * @example\n * ```javascript\n * setPersistence(auth, browserSessionPersistence);\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param persistence - The {@link Persistence} to use.\n * @returns A `Promise` that resolves once the persistence change has completed\n *\n * @public\n */\nexport function setPersistence(\n auth: Auth,\n persistence: Persistence\n): Promise {\n return getModularInstance(auth).setPersistence(persistence);\n}\n\n/**\n * Loads the reCAPTCHA configuration into the `Auth` instance.\n *\n * @remarks\n * This will load the reCAPTCHA config, which indicates whether the reCAPTCHA\n * verification flow should be triggered for each auth provider, into the\n * current Auth session.\n *\n * If initializeRecaptchaConfig() is not invoked, the auth flow will always start\n * without reCAPTCHA verification. If the provider is configured to require reCAPTCHA\n * verification, the SDK will transparently load the reCAPTCHA config and restart the\n * auth flows.\n *\n * Thus, by calling this optional method, you will reduce the latency of future auth flows.\n * Loading the reCAPTCHA config early will also enhance the signal collected by reCAPTCHA.\n *\n * This method does not work in a Node.js environment.\n *\n * @example\n * ```javascript\n * initializeRecaptchaConfig(auth);\n * ```\n *\n * @param auth - The {@link Auth} instance.\n *\n * @public\n */\nexport function initializeRecaptchaConfig(auth: Auth): Promise {\n const authInternal = _castAuth(auth);\n return authInternal.initializeRecaptchaConfig();\n}\n\n/**\n * Adds an observer for changes to the signed-in user's ID token.\n *\n * @remarks\n * This includes sign-in, sign-out, and token refresh events.\n * This will not be triggered automatically upon ID token expiration. Use {@link User.getIdToken} to refresh the ID token.\n *\n * @param auth - The {@link Auth} instance.\n * @param nextOrObserver - callback triggered on change.\n * @param error - Deprecated. This callback is never triggered. Errors\n * on signing in/out can be caught in promises returned from\n * sign-in/sign-out functions.\n * @param completed - Deprecated. This callback is never triggered.\n *\n * @public\n */\nexport function onIdTokenChanged(\n auth: Auth,\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n): Unsubscribe {\n return getModularInstance(auth).onIdTokenChanged(\n nextOrObserver,\n error,\n completed\n );\n}\n/**\n * Adds a blocking callback that runs before an auth state change\n * sets a new user.\n *\n * @param auth - The {@link Auth} instance.\n * @param callback - callback triggered before new user value is set.\n * If this throws, it blocks the user from being set.\n * @param onAbort - callback triggered if a later `beforeAuthStateChanged()`\n * callback throws, allowing you to undo any side effects.\n */\nexport function beforeAuthStateChanged(\n auth: Auth,\n callback: (user: User | null) => void | Promise,\n onAbort?: () => void\n): Unsubscribe {\n return getModularInstance(auth).beforeAuthStateChanged(callback, onAbort);\n}\n/**\n * Adds an observer for changes to the user's sign-in state.\n *\n * @remarks\n * To keep the old behavior, see {@link onIdTokenChanged}.\n *\n * @param auth - The {@link Auth} instance.\n * @param nextOrObserver - callback triggered on change.\n * @param error - Deprecated. This callback is never triggered. Errors\n * on signing in/out can be caught in promises returned from\n * sign-in/sign-out functions.\n * @param completed - Deprecated. This callback is never triggered.\n *\n * @public\n */\nexport function onAuthStateChanged(\n auth: Auth,\n nextOrObserver: NextOrObserver,\n error?: ErrorFn,\n completed?: CompleteFn\n): Unsubscribe {\n return getModularInstance(auth).onAuthStateChanged(\n nextOrObserver,\n error,\n completed\n );\n}\n/**\n * Sets the current language to the default device/browser preference.\n *\n * @param auth - The {@link Auth} instance.\n *\n * @public\n */\nexport function useDeviceLanguage(auth: Auth): void {\n getModularInstance(auth).useDeviceLanguage();\n}\n/**\n * Asynchronously sets the provided user as {@link Auth.currentUser} on the\n * {@link Auth} instance.\n *\n * @remarks\n * A new instance copy of the user provided will be made and set as currentUser.\n *\n * This will trigger {@link onAuthStateChanged} and {@link onIdTokenChanged} listeners\n * like other sign in methods.\n *\n * The operation fails with an error if the user to be updated belongs to a different Firebase\n * project.\n *\n * @param auth - The {@link Auth} instance.\n * @param user - The new {@link User}.\n *\n * @public\n */\nexport function updateCurrentUser(\n auth: Auth,\n user: User | null\n): Promise {\n return getModularInstance(auth).updateCurrentUser(user);\n}\n/**\n * Signs out the current user.\n *\n * @param auth - The {@link Auth} instance.\n *\n * @public\n */\nexport function signOut(auth: Auth): Promise {\n return getModularInstance(auth).signOut();\n}\n\nexport { initializeAuth } from './auth/initialize';\nexport { connectAuthEmulator } from './auth/emulator';\n\n// credentials\nexport { AuthCredential } from './credentials';\nexport { EmailAuthCredential } from './credentials/email';\nexport { OAuthCredential } from './credentials/oauth';\nexport { PhoneAuthCredential } from './credentials/phone';\n\n// persistence\nexport { inMemoryPersistence } from './persistence/in_memory';\n\n// providers\nexport { EmailAuthProvider } from './providers/email';\nexport { FacebookAuthProvider } from './providers/facebook';\nexport { CustomParameters } from './providers/federated';\nexport { GoogleAuthProvider } from './providers/google';\nexport { GithubAuthProvider } from './providers/github';\nexport { OAuthProvider, OAuthCredentialOptions } from './providers/oauth';\nexport { SAMLAuthProvider } from './providers/saml';\nexport { TwitterAuthProvider } from './providers/twitter';\n\n// strategies\nexport { signInAnonymously } from './strategies/anonymous';\nexport {\n signInWithCredential,\n linkWithCredential,\n reauthenticateWithCredential\n} from './strategies/credential';\nexport { signInWithCustomToken } from './strategies/custom_token';\nexport {\n sendPasswordResetEmail,\n confirmPasswordReset,\n applyActionCode,\n checkActionCode,\n verifyPasswordResetCode,\n createUserWithEmailAndPassword,\n signInWithEmailAndPassword\n} from './strategies/email_and_password';\nexport {\n sendSignInLinkToEmail,\n isSignInWithEmailLink,\n signInWithEmailLink\n} from './strategies/email_link';\nexport {\n fetchSignInMethodsForEmail,\n sendEmailVerification,\n verifyBeforeUpdateEmail\n} from './strategies/email';\n\n// core\nexport { ActionCodeURL, parseActionCodeURL } from './action_code_url';\n\n// user\nexport {\n updateProfile,\n updateEmail,\n updatePassword\n} from './user/account_info';\nexport { getIdToken, getIdTokenResult } from './user/id_token_result';\nexport { unlink } from './user/link_unlink';\nexport { getAdditionalUserInfo } from './user/additional_user_info';\n\n// Non-optional user methods.\nexport { reload } from './user/reload';\n/**\n * Deletes and signs out the user.\n *\n * @remarks\n * Important: this is a security-sensitive operation that requires the user to have recently\n * signed in. If this requirement isn't met, ask the user to authenticate again and then call\n * {@link reauthenticateWithCredential}.\n *\n * @param user - The user.\n *\n * @public\n */\nexport async function deleteUser(user: User): Promise {\n return getModularInstance(user).delete();\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _registerComponent, registerVersion } from '@firebase/app';\nimport {\n Component,\n ComponentType,\n InstantiationMode\n} from '@firebase/component';\n\nimport { name, version } from '../../../package.json';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { _getClientVersion, ClientPlatform } from '../util/version';\nimport { _castAuth, AuthImpl, DefaultConfig } from './auth_impl';\nimport { AuthInterop } from './firebase_internal';\nimport { ConfigInternal } from '../../model/auth';\nimport { Dependencies } from '../../model/public_types';\nimport { _initializeAuthInstance } from './initialize';\n\nexport const enum _ComponentName {\n AUTH = 'auth',\n AUTH_INTERNAL = 'auth-internal'\n}\n\nfunction getVersionForPlatform(\n clientPlatform: ClientPlatform\n): string | undefined {\n switch (clientPlatform) {\n case ClientPlatform.NODE:\n return 'node';\n case ClientPlatform.REACT_NATIVE:\n return 'rn';\n case ClientPlatform.WORKER:\n return 'webworker';\n case ClientPlatform.CORDOVA:\n return 'cordova';\n default:\n return undefined;\n }\n}\n\n/** @internal */\nexport function registerAuth(clientPlatform: ClientPlatform): void {\n _registerComponent(\n new Component(\n _ComponentName.AUTH,\n (container, { options: deps }: { options?: Dependencies }) => {\n const app = container.getProvider('app').getImmediate()!;\n const heartbeatServiceProvider =\n container.getProvider<'heartbeat'>('heartbeat');\n const appCheckServiceProvider =\n container.getProvider<'app-check-internal'>('app-check-internal');\n const { apiKey, authDomain } = app.options;\n\n _assert(\n apiKey && !apiKey.includes(':'),\n AuthErrorCode.INVALID_API_KEY,\n { appName: app.name }\n );\n\n const config: ConfigInternal = {\n apiKey,\n authDomain,\n clientPlatform,\n apiHost: DefaultConfig.API_HOST,\n tokenApiHost: DefaultConfig.TOKEN_API_HOST,\n apiScheme: DefaultConfig.API_SCHEME,\n sdkClientVersion: _getClientVersion(clientPlatform)\n };\n\n const authInstance = new AuthImpl(\n app,\n heartbeatServiceProvider,\n appCheckServiceProvider,\n config\n );\n _initializeAuthInstance(authInstance, deps);\n\n return authInstance;\n },\n ComponentType.PUBLIC\n )\n /**\n * Auth can only be initialized by explicitly calling getAuth() or initializeAuth()\n * For why we do this, See go/firebase-next-auth-init\n */\n .setInstantiationMode(InstantiationMode.EXPLICIT)\n /**\n * Because all firebase products that depend on auth depend on auth-internal directly,\n * we need to initialize auth-internal after auth is initialized to make it available to other firebase products.\n */\n .setInstanceCreatedCallback(\n (container, _instanceIdentifier, _instance) => {\n const authInternalProvider = container.getProvider(\n _ComponentName.AUTH_INTERNAL\n );\n authInternalProvider.initialize();\n }\n )\n );\n\n _registerComponent(\n new Component(\n _ComponentName.AUTH_INTERNAL,\n container => {\n const auth = _castAuth(\n container.getProvider(_ComponentName.AUTH).getImmediate()!\n );\n return (auth => new AuthInterop(auth))(auth);\n },\n ComponentType.PRIVATE\n ).setInstantiationMode(InstantiationMode.EXPLICIT)\n );\n\n registerVersion(name, version, getVersionForPlatform(clientPlatform));\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\n registerVersion(name, version, '__BUILD_TARGET__');\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseOptions } from './public-types';\nimport {\n Component,\n ComponentContainer,\n ComponentType,\n InstantiationMode,\n Name\n} from '@firebase/component';\nimport {\n deleteApp,\n _addComponent,\n _addOrOverwriteComponent,\n _DEFAULT_ENTRY_NAME,\n _FirebaseAppInternal as _FirebaseAppExp\n} from '@firebase/app';\nimport { _FirebaseService, _FirebaseNamespace } from './types';\nimport { Compat } from '@firebase/util';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface _FirebaseApp {\n /**\n * The (read-only) name (identifier) for this App. '[DEFAULT]' is the default\n * App.\n */\n name: string;\n\n /**\n * The (read-only) configuration options from the app initialization.\n */\n options: FirebaseOptions;\n\n /**\n * The settable config flag for GDPR opt-in/opt-out\n */\n automaticDataCollectionEnabled: boolean;\n\n /**\n * Make the given App unusable and free resources.\n */\n delete(): Promise;\n}\n/**\n * Global context object for a collection of services using\n * a shared authentication state.\n *\n * marked as internal because it references internal types exported from @firebase/app\n * @internal\n */\nexport class FirebaseAppImpl implements Compat<_FirebaseAppExp>, _FirebaseApp {\n private container: ComponentContainer;\n\n constructor(\n readonly _delegate: _FirebaseAppExp,\n private readonly firebase: _FirebaseNamespace\n ) {\n // add itself to container\n _addComponent(\n _delegate,\n new Component('app-compat', () => this, ComponentType.PUBLIC)\n );\n\n this.container = _delegate.container;\n }\n\n get automaticDataCollectionEnabled(): boolean {\n return this._delegate.automaticDataCollectionEnabled;\n }\n\n set automaticDataCollectionEnabled(val) {\n this._delegate.automaticDataCollectionEnabled = val;\n }\n\n get name(): string {\n return this._delegate.name;\n }\n\n get options(): FirebaseOptions {\n return this._delegate.options;\n }\n\n delete(): Promise {\n return new Promise(resolve => {\n this._delegate.checkDestroyed();\n resolve();\n }).then(() => {\n this.firebase.INTERNAL.removeApp(this.name);\n return deleteApp(this._delegate);\n });\n }\n\n /**\n * Return a service instance associated with this app (creating it\n * on demand), identified by the passed instanceIdentifier.\n *\n * NOTE: Currently storage and functions are the only ones that are leveraging this\n * functionality. They invoke it by calling:\n *\n * ```javascript\n * firebase.app().storage('STORAGE BUCKET ID')\n * ```\n *\n * The service name is passed to this already\n * @internal\n */\n _getService(\n name: string,\n instanceIdentifier: string = _DEFAULT_ENTRY_NAME\n ): _FirebaseService {\n this._delegate.checkDestroyed();\n\n // Initialize instance if InstatiationMode is `EXPLICIT`.\n const provider = this._delegate.container.getProvider(name as Name);\n if (\n !provider.isInitialized() &&\n provider.getComponent()?.instantiationMode === InstantiationMode.EXPLICIT\n ) {\n provider.initialize();\n }\n\n // getImmediate will always succeed because _getService is only called for registered components.\n return provider.getImmediate({\n identifier: instanceIdentifier\n }) as unknown as _FirebaseService;\n }\n\n /**\n * Remove a service instance from the cache, so we will create a new instance for this service\n * when people try to get it again.\n *\n * NOTE: currently only firestore uses this functionality to support firestore shutdown.\n *\n * @param name The service name\n * @param instanceIdentifier instance identifier in case multiple instances are allowed\n * @internal\n */\n _removeServiceInstance(\n name: string,\n instanceIdentifier: string = _DEFAULT_ENTRY_NAME\n ): void {\n this._delegate.container\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .getProvider(name as any)\n .clearInstance(instanceIdentifier);\n }\n\n /**\n * @param component the component being added to this app's container\n * @internal\n */\n _addComponent(component: Component): void {\n _addComponent(this._delegate, component);\n }\n\n _addOrOverwriteComponent(component: Component): void {\n _addOrOverwriteComponent(this._delegate, component);\n }\n\n toJSON(): object {\n return {\n name: this.name,\n automaticDataCollectionEnabled: this.automaticDataCollectionEnabled,\n options: this.options\n };\n }\n}\n\n// TODO: investigate why the following needs to be commented out\n// Prevent dead-code elimination of these methods w/o invalid property\n// copying.\n// (FirebaseAppImpl.prototype.name && FirebaseAppImpl.prototype.options) ||\n// FirebaseAppImpl.prototype.delete ||\n// console.log('dc');\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ErrorFactory, ErrorMap } from '@firebase/util';\n\nexport const enum AppError {\n NO_APP = 'no-app',\n INVALID_APP_ARGUMENT = 'invalid-app-argument'\n}\n\nconst ERRORS: ErrorMap = {\n [AppError.NO_APP]:\n \"No Firebase App '{$appName}' has been created - \" +\n 'call Firebase App.initializeApp()',\n [AppError.INVALID_APP_ARGUMENT]:\n 'firebase.{$appName}() takes either no argument or a ' +\n 'Firebase App instance.'\n};\n\ntype ErrorParams = { [key in AppError]: { appName: string } };\n\nexport const ERROR_FACTORY = new ErrorFactory(\n 'app-compat',\n 'Firebase',\n ERRORS\n);\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseNamespace } from './public-types';\nimport { createSubscribe, deepExtend, ErrorFactory } from '@firebase/util';\nimport { FirebaseAppImpl } from './firebaseApp';\nimport { createFirebaseNamespaceCore } from './firebaseNamespaceCore';\n\n/**\n * Return a firebase namespace object.\n *\n * In production, this will be called exactly once and the result\n * assigned to the 'firebase' global. It may be called multiple times\n * in unit tests.\n */\nexport function createFirebaseNamespace(): FirebaseNamespace {\n const namespace = createFirebaseNamespaceCore(FirebaseAppImpl);\n namespace.INTERNAL = {\n ...namespace.INTERNAL,\n createFirebaseNamespace,\n extendNamespace,\n createSubscribe,\n ErrorFactory,\n deepExtend\n };\n\n /**\n * Patch the top-level firebase namespace with additional properties.\n *\n * firebase.INTERNAL.extendNamespace()\n */\n function extendNamespace(props: { [prop: string]: unknown }): void {\n deepExtend(namespace, props);\n }\n\n return namespace;\n}\n\nexport const firebase = createFirebaseNamespace();\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseApp, FirebaseOptions } from './public-types';\nimport {\n _FirebaseNamespace,\n _FirebaseService,\n FirebaseServiceNamespace\n} from './types';\nimport * as modularAPIs from '@firebase/app';\nimport { _FirebaseAppInternal as _FirebaseAppExp } from '@firebase/app';\nimport { Component, ComponentType, Name } from '@firebase/component';\n\nimport { deepExtend, contains } from '@firebase/util';\nimport { FirebaseAppImpl } from './firebaseApp';\nimport { ERROR_FACTORY, AppError } from './errors';\nimport { FirebaseAppLiteImpl } from './lite/firebaseAppLite';\n\n/**\n * Because auth can't share code with other components, we attach the utility functions\n * in an internal namespace to share code.\n * This function return a firebase namespace object without\n * any utility functions, so it can be shared between the regular firebaseNamespace and\n * the lite version.\n */\nexport function createFirebaseNamespaceCore(\n firebaseAppImpl: typeof FirebaseAppImpl | typeof FirebaseAppLiteImpl\n): _FirebaseNamespace {\n const apps: { [name: string]: FirebaseApp } = {};\n // // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // const components = new Map>();\n\n // A namespace is a plain JavaScript Object.\n const namespace: _FirebaseNamespace = {\n // Hack to prevent Babel from modifying the object returned\n // as the firebase namespace.\n // @ts-ignore\n __esModule: true,\n initializeApp: initializeAppCompat,\n // @ts-ignore\n app,\n registerVersion: modularAPIs.registerVersion,\n setLogLevel: modularAPIs.setLogLevel,\n onLog: modularAPIs.onLog,\n // @ts-ignore\n apps: null,\n SDK_VERSION: modularAPIs.SDK_VERSION,\n INTERNAL: {\n registerComponent: registerComponentCompat,\n removeApp,\n useAsService,\n modularAPIs\n }\n };\n\n // Inject a circular default export to allow Babel users who were previously\n // using:\n //\n // import firebase from 'firebase';\n // which becomes: var firebase = require('firebase').default;\n //\n // instead of\n //\n // import * as firebase from 'firebase';\n // which becomes: var firebase = require('firebase');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (namespace as any)['default'] = namespace;\n\n // firebase.apps is a read-only getter.\n Object.defineProperty(namespace, 'apps', {\n get: getApps\n });\n\n /**\n * Called by App.delete() - but before any services associated with the App\n * are deleted.\n */\n function removeApp(name: string): void {\n delete apps[name];\n }\n\n /**\n * Get the App object for a given name (or DEFAULT).\n */\n function app(name?: string): FirebaseApp {\n name = name || modularAPIs._DEFAULT_ENTRY_NAME;\n if (!contains(apps, name)) {\n throw ERROR_FACTORY.create(AppError.NO_APP, { appName: name });\n }\n return apps[name];\n }\n\n // @ts-ignore\n app['App'] = firebaseAppImpl;\n\n /**\n * Create a new App instance (name must be unique).\n *\n * This function is idempotent. It can be called more than once and return the same instance using the same options and config.\n */\n function initializeAppCompat(\n options: FirebaseOptions,\n rawConfig = {}\n ): FirebaseApp {\n const app = modularAPIs.initializeApp(\n options,\n rawConfig\n ) as _FirebaseAppExp;\n\n if (contains(apps, app.name)) {\n return apps[app.name];\n }\n\n const appCompat = new firebaseAppImpl(app, namespace);\n apps[app.name] = appCompat;\n return appCompat;\n }\n\n /*\n * Return an array of all the non-deleted FirebaseApps.\n */\n function getApps(): FirebaseApp[] {\n // Make a copy so caller cannot mutate the apps list.\n return Object.keys(apps).map(name => apps[name]);\n }\n\n function registerComponentCompat(\n component: Component\n ): FirebaseServiceNamespace<_FirebaseService> | null {\n const componentName = component.name;\n const componentNameWithoutCompat = componentName.replace('-compat', '');\n if (\n modularAPIs._registerComponent(component) &&\n component.type === ComponentType.PUBLIC\n ) {\n // create service namespace for public components\n // The Service namespace is an accessor function ...\n const serviceNamespace = (\n appArg: FirebaseApp = app()\n ): _FirebaseService => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (typeof (appArg as any)[componentNameWithoutCompat] !== 'function') {\n // Invalid argument.\n // This happens in the following case: firebase.storage('gs:/')\n throw ERROR_FACTORY.create(AppError.INVALID_APP_ARGUMENT, {\n appName: componentName\n });\n }\n\n // Forward service instance lookup to the FirebaseApp.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (appArg as any)[componentNameWithoutCompat]();\n };\n\n // ... and a container for service-level properties.\n if (component.serviceProps !== undefined) {\n deepExtend(serviceNamespace, component.serviceProps);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (namespace as any)[componentNameWithoutCompat] = serviceNamespace;\n\n // Patch the FirebaseAppImpl prototype\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (firebaseAppImpl.prototype as any)[componentNameWithoutCompat] =\n // TODO: The eslint disable can be removed and the 'ignoreRestArgs'\n // option added to the no-explicit-any rule when ESlint releases it.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function (...args: any) {\n const serviceFxn = this._getService.bind(this, componentName);\n return serviceFxn.apply(\n this,\n component.multipleInstances ? args : []\n );\n };\n }\n\n return component.type === ComponentType.PUBLIC\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (namespace as any)[componentNameWithoutCompat]\n : null;\n }\n\n // Map the requested service to a registered service name\n // (used to map auth to serverAuth service when needed).\n function useAsService(app: FirebaseApp, name: string): string | null {\n if (name === 'serverAuth') {\n return null;\n }\n\n const useService = name;\n\n return useService;\n }\n\n return namespace;\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Logger } from '@firebase/logger';\n\nexport const logger = new Logger('@firebase/app-compat');\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseNamespace } from './public-types';\nimport { isBrowser } from '@firebase/util';\nimport { firebase as firebaseNamespace } from './firebaseNamespace';\nimport { logger } from './logger';\nimport { registerCoreComponents } from './registerCoreComponents';\n\n// Firebase Lite detection\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nif (isBrowser() && (self as any).firebase !== undefined) {\n logger.warn(`\n Warning: Firebase is already defined in the global scope. Please make sure\n Firebase library is only loaded once.\n `);\n\n // eslint-disable-next-line\n const sdkVersion = ((self as any).firebase as FirebaseNamespace).SDK_VERSION;\n if (sdkVersion && sdkVersion.indexOf('LITE') >= 0) {\n logger.warn(`\n Warning: You are trying to load Firebase while using Firebase Performance standalone script.\n You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code.\n `);\n }\n}\n\nconst firebase = firebaseNamespace;\n\nregisterCoreComponents();\n\n// eslint-disable-next-line import/no-default-export\nexport default firebase;\n\nexport { _FirebaseNamespace, _FirebaseService } from './types';\nexport { FirebaseApp, FirebaseNamespace } from './public-types';\n","/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { registerVersion } from '@firebase/app';\n\nimport { name, version } from '../package.json';\n\nexport function registerCoreComponents(variant?: string): void {\n // Register `app` package.\n registerVersion(name, version, variant);\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface CordovaWindow extends Window {\n cordova: {\n plugins: {\n browsertab: {\n isAvailable(cb: (available: boolean) => void): void;\n openUrl(url: string): void;\n close(): void;\n };\n };\n\n InAppBrowser: {\n open(url: string, target: string, options: string): InAppBrowserRef;\n };\n };\n\n universalLinks: {\n subscribe(\n n: null,\n cb: (event: Record | null) => void\n ): void;\n };\n\n BuildInfo: {\n readonly packageName: string;\n readonly displayName: string;\n };\n\n handleOpenURL(url: string): void;\n}\n\nexport interface InAppBrowserRef {\n close?: () => void;\n}\n\nexport function _cordovaWindow(): CordovaWindow {\n return window as unknown as CordovaWindow;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport firebase from '@firebase/app-compat';\nimport { name, version } from '../../package.json';\n\nfirebase.registerVersion(name, version, 'app-compat');\n\nexport default firebase;\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthProvider } from '../../model/public_types';\nimport { AuthErrorCode } from '../../core/errors';\nimport {\n debugAssert,\n _assert,\n _createError,\n _fail\n} from '../../core/util/assert';\nimport { _isAndroid, _isIOS, _isIOS7Or8 } from '../../core/util/browser';\nimport { _getRedirectUrl } from '../../core/util/handler';\nimport { AuthInternal } from '../../model/auth';\nimport { AuthEvent } from '../../model/popup_redirect';\nimport { InAppBrowserRef, _cordovaWindow } from '../plugins';\nimport {\n GetProjectConfigRequest,\n _getProjectConfig\n} from '../../api/project_config/get_project_config';\n\n/**\n * How long to wait after the app comes back into focus before concluding that\n * the user closed the sign in tab.\n */\nconst REDIRECT_TIMEOUT_MS = 2000;\n\n/**\n * Generates the URL for the OAuth handler.\n */\nexport async function _generateHandlerUrl(\n auth: AuthInternal,\n event: AuthEvent,\n provider: AuthProvider\n): Promise {\n // Get the cordova plugins\n const { BuildInfo } = _cordovaWindow();\n debugAssert(event.sessionId, 'AuthEvent did not contain a session ID');\n const sessionDigest = await computeSha256(event.sessionId);\n\n const additionalParams: Record = {};\n if (_isIOS()) {\n // iOS app identifier\n additionalParams['ibi'] = BuildInfo.packageName;\n } else if (_isAndroid()) {\n // Android app identifier\n additionalParams['apn'] = BuildInfo.packageName;\n } else {\n _fail(auth, AuthErrorCode.OPERATION_NOT_SUPPORTED);\n }\n\n // Add the display name if available\n if (BuildInfo.displayName) {\n additionalParams['appDisplayName'] = BuildInfo.displayName;\n }\n\n // Attached the hashed session ID\n additionalParams['sessionId'] = sessionDigest;\n return _getRedirectUrl(\n auth,\n provider,\n event.type,\n undefined,\n event.eventId ?? undefined,\n additionalParams\n );\n}\n\n/**\n * Validates that this app is valid for this project configuration\n */\nexport async function _validateOrigin(auth: AuthInternal): Promise {\n const { BuildInfo } = _cordovaWindow();\n const request: GetProjectConfigRequest = {};\n if (_isIOS()) {\n request.iosBundleId = BuildInfo.packageName;\n } else if (_isAndroid()) {\n request.androidPackageName = BuildInfo.packageName;\n } else {\n _fail(auth, AuthErrorCode.OPERATION_NOT_SUPPORTED);\n }\n\n // Will fail automatically if package name is not authorized\n await _getProjectConfig(auth, request);\n}\n\nexport function _performRedirect(\n handlerUrl: string\n): Promise {\n // Get the cordova plugins\n const { cordova } = _cordovaWindow();\n\n return new Promise(resolve => {\n cordova.plugins.browsertab.isAvailable(browserTabIsAvailable => {\n let iabRef: InAppBrowserRef | null = null;\n if (browserTabIsAvailable) {\n cordova.plugins.browsertab.openUrl(handlerUrl);\n } else {\n // TODO: Return the inappbrowser ref that's returned from the open call\n iabRef = cordova.InAppBrowser.open(\n handlerUrl,\n _isIOS7Or8() ? '_blank' : '_system',\n 'location=yes'\n );\n }\n resolve(iabRef);\n });\n });\n}\n\n// Thin interface wrapper to avoid circular dependency with ./events module\ninterface PassiveAuthEventListener {\n addPassiveListener(cb: () => void): void;\n removePassiveListener(cb: () => void): void;\n}\n\n/**\n * This function waits for app activity to be seen before resolving. It does\n * this by attaching listeners to various dom events. Once the app is determined\n * to be visible, this promise resolves. AFTER that resolution, the listeners\n * are detached and any browser tabs left open will be closed.\n */\nexport async function _waitForAppResume(\n auth: AuthInternal,\n eventListener: PassiveAuthEventListener,\n iabRef: InAppBrowserRef | null\n): Promise {\n // Get the cordova plugins\n const { cordova } = _cordovaWindow();\n\n let cleanup = (): void => {};\n try {\n await new Promise((resolve, reject) => {\n let onCloseTimer: number | null = null;\n\n // DEFINE ALL THE CALLBACKS =====\n function authEventSeen(): void {\n // Auth event was detected. Resolve this promise and close the extra\n // window if it's still open.\n resolve();\n const closeBrowserTab = cordova.plugins.browsertab?.close;\n if (typeof closeBrowserTab === 'function') {\n closeBrowserTab();\n }\n // Close inappbrowser emebedded webview in iOS7 and 8 case if still\n // open.\n if (typeof iabRef?.close === 'function') {\n iabRef.close();\n }\n }\n\n function resumed(): void {\n if (onCloseTimer) {\n // This code already ran; do not rerun.\n return;\n }\n\n onCloseTimer = window.setTimeout(() => {\n // Wait two seeconds after resume then reject.\n reject(_createError(auth, AuthErrorCode.REDIRECT_CANCELLED_BY_USER));\n }, REDIRECT_TIMEOUT_MS);\n }\n\n function visibilityChanged(): void {\n if (document?.visibilityState === 'visible') {\n resumed();\n }\n }\n\n // ATTACH ALL THE LISTENERS =====\n // Listen for the auth event\n eventListener.addPassiveListener(authEventSeen);\n\n // Listen for resume and visibility events\n document.addEventListener('resume', resumed, false);\n if (_isAndroid()) {\n document.addEventListener('visibilitychange', visibilityChanged, false);\n }\n\n // SETUP THE CLEANUP FUNCTION =====\n cleanup = () => {\n eventListener.removePassiveListener(authEventSeen);\n document.removeEventListener('resume', resumed, false);\n document.removeEventListener(\n 'visibilitychange',\n visibilityChanged,\n false\n );\n if (onCloseTimer) {\n window.clearTimeout(onCloseTimer);\n }\n };\n });\n } finally {\n cleanup();\n }\n}\n\n/**\n * Checks the configuration of the Cordova environment. This has no side effect\n * if the configuration is correct; otherwise it throws an error with the\n * missing plugin.\n */\nexport function _checkCordovaConfiguration(auth: AuthInternal): void {\n const win = _cordovaWindow();\n // Check all dependencies installed.\n // https://github.com/nordnet/cordova-universal-links-plugin\n // Note that cordova-universal-links-plugin has been abandoned.\n // A fork with latest fixes is available at:\n // https://www.npmjs.com/package/cordova-universal-links-plugin-fix\n _assert(\n typeof win?.universalLinks?.subscribe === 'function',\n auth,\n AuthErrorCode.INVALID_CORDOVA_CONFIGURATION,\n {\n missingPlugin: 'cordova-universal-links-plugin-fix'\n }\n );\n\n // https://www.npmjs.com/package/cordova-plugin-buildinfo\n _assert(\n typeof win?.BuildInfo?.packageName !== 'undefined',\n auth,\n AuthErrorCode.INVALID_CORDOVA_CONFIGURATION,\n {\n missingPlugin: 'cordova-plugin-buildInfo'\n }\n );\n\n // https://github.com/google/cordova-plugin-browsertab\n _assert(\n typeof win?.cordova?.plugins?.browsertab?.openUrl === 'function',\n auth,\n AuthErrorCode.INVALID_CORDOVA_CONFIGURATION,\n {\n missingPlugin: 'cordova-plugin-browsertab'\n }\n );\n _assert(\n typeof win?.cordova?.plugins?.browsertab?.isAvailable === 'function',\n auth,\n AuthErrorCode.INVALID_CORDOVA_CONFIGURATION,\n {\n missingPlugin: 'cordova-plugin-browsertab'\n }\n );\n\n // https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-inappbrowser/\n _assert(\n typeof win?.cordova?.InAppBrowser?.open === 'function',\n auth,\n AuthErrorCode.INVALID_CORDOVA_CONFIGURATION,\n {\n missingPlugin: 'cordova-plugin-inappbrowser'\n }\n );\n}\n\n/**\n * Computes the SHA-256 of a session ID. The SubtleCrypto interface is only\n * available in \"secure\" contexts, which covers Cordova (which is served on a file\n * protocol).\n */\nasync function computeSha256(sessionId: string): Promise {\n const bytes = stringToArrayBuffer(sessionId);\n\n // TODO: For IE11 crypto has a different name and this operation comes back\n // as an object, not a promise. This is the old proposed standard that\n // is used by IE11:\n // https://www.w3.org/TR/2013/WD-WebCryptoAPI-20130108/#cryptooperation-interface\n const buf = await crypto.subtle.digest('SHA-256', bytes);\n const arr = Array.from(new Uint8Array(buf));\n return arr.map(num => num.toString(16).padStart(2, '0')).join('');\n}\n\nfunction stringToArrayBuffer(str: string): Uint8Array {\n // This function is only meant to deal with an ASCII charset and makes\n // certain simplifying assumptions.\n debugAssert(\n /[0-9a-zA-Z]+/.test(str),\n 'Can only convert alpha-numeric strings'\n );\n if (typeof TextEncoder !== 'undefined') {\n return new TextEncoder().encode(str);\n }\n\n const buff = new ArrayBuffer(str.length);\n const view = new Uint8Array(buff);\n for (let i = 0; i < str.length; i++) {\n view[i] = str.charCodeAt(i);\n }\n return view;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { querystringDecode } from '@firebase/util';\nimport { AuthEventManager } from '../../core/auth/auth_event_manager';\nimport { AuthErrorCode } from '../../core/errors';\nimport { PersistedBlob, PersistenceInternal } from '../../core/persistence';\nimport {\n KeyName,\n _persistenceKeyName\n} from '../../core/persistence/persistence_user_manager';\nimport { _createError } from '../../core/util/assert';\nimport { _getInstance } from '../../core/util/instantiator';\nimport { AuthInternal } from '../../model/auth';\nimport { AuthEvent, AuthEventType } from '../../model/popup_redirect';\nimport { browserLocalPersistence } from '../../platform_browser/persistence/local_storage';\n\nconst SESSION_ID_LENGTH = 20;\n\n/** Custom AuthEventManager that adds passive listeners to events */\nexport class CordovaAuthEventManager extends AuthEventManager {\n private readonly passiveListeners = new Set<(e: AuthEvent) => void>();\n private resolveInialized!: () => void;\n private initPromise = new Promise(resolve => {\n this.resolveInialized = resolve;\n });\n\n addPassiveListener(cb: (e: AuthEvent) => void): void {\n this.passiveListeners.add(cb);\n }\n\n removePassiveListener(cb: (e: AuthEvent) => void): void {\n this.passiveListeners.delete(cb);\n }\n\n // In a Cordova environment, this manager can live through multiple redirect\n // operations\n resetRedirect(): void {\n this.queuedRedirectEvent = null;\n this.hasHandledPotentialRedirect = false;\n }\n\n /** Override the onEvent method */\n onEvent(event: AuthEvent): boolean {\n this.resolveInialized();\n this.passiveListeners.forEach(cb => cb(event));\n return super.onEvent(event);\n }\n\n async initialized(): Promise {\n await this.initPromise;\n }\n}\n\n/**\n * Generates a (partial) {@link AuthEvent}.\n */\nexport function _generateNewEvent(\n auth: AuthInternal,\n type: AuthEventType,\n eventId: string | null = null\n): AuthEvent {\n return {\n type,\n eventId,\n urlResponse: null,\n sessionId: generateSessionId(),\n postBody: null,\n tenantId: auth.tenantId,\n error: _createError(auth, AuthErrorCode.NO_AUTH_EVENT)\n };\n}\n\nexport function _savePartialEvent(\n auth: AuthInternal,\n event: AuthEvent\n): Promise {\n return storage()._set(persistenceKey(auth), event as object as PersistedBlob);\n}\n\nexport async function _getAndRemoveEvent(\n auth: AuthInternal\n): Promise {\n const event = (await storage()._get(\n persistenceKey(auth)\n )) as AuthEvent | null;\n if (event) {\n await storage()._remove(persistenceKey(auth));\n }\n return event;\n}\n\nexport function _eventFromPartialAndUrl(\n partialEvent: AuthEvent,\n url: string\n): AuthEvent | null {\n // Parse the deep link within the dynamic link URL.\n const callbackUrl = _getDeepLinkFromCallback(url);\n // Confirm it is actually a callback URL.\n // Currently the universal link will be of this format:\n // https:///__/auth/callback\n // This is a fake URL but is not intended to take the user anywhere\n // and just redirect to the app.\n if (callbackUrl.includes('/__/auth/callback')) {\n // Check if there is an error in the URL.\n // This mechanism is also used to pass errors back to the app:\n // https:///__/auth/callback?firebaseError=\n const params = searchParamsOrEmpty(callbackUrl);\n // Get the error object corresponding to the stringified error if found.\n const errorObject = params['firebaseError']\n ? parseJsonOrNull(decodeURIComponent(params['firebaseError']))\n : null;\n const code = errorObject?.['code']?.split('auth/')?.[1];\n const error = code ? _createError(code) : null;\n if (error) {\n return {\n type: partialEvent.type,\n eventId: partialEvent.eventId,\n tenantId: partialEvent.tenantId,\n error,\n urlResponse: null,\n sessionId: null,\n postBody: null\n };\n } else {\n return {\n type: partialEvent.type,\n eventId: partialEvent.eventId,\n tenantId: partialEvent.tenantId,\n sessionId: partialEvent.sessionId,\n urlResponse: callbackUrl,\n postBody: null\n };\n }\n }\n\n return null;\n}\n\nfunction generateSessionId(): string {\n const chars = [];\n const allowedChars =\n '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n for (let i = 0; i < SESSION_ID_LENGTH; i++) {\n const idx = Math.floor(Math.random() * allowedChars.length);\n chars.push(allowedChars.charAt(idx));\n }\n return chars.join('');\n}\n\nfunction storage(): PersistenceInternal {\n return _getInstance(browserLocalPersistence);\n}\n\nfunction persistenceKey(auth: AuthInternal): string {\n return _persistenceKeyName(KeyName.AUTH_EVENT, auth.config.apiKey, auth.name);\n}\n\nfunction parseJsonOrNull(json: string): ReturnType | null {\n try {\n return JSON.parse(json);\n } catch (e) {\n return null;\n }\n}\n\n// Exported for testing\nexport function _getDeepLinkFromCallback(url: string): string {\n const params = searchParamsOrEmpty(url);\n const link = params['link'] ? decodeURIComponent(params['link']) : undefined;\n // Double link case (automatic redirect)\n const doubleDeepLink = searchParamsOrEmpty(link)['link'];\n // iOS custom scheme links.\n const iOSDeepLink = params['deep_link_id']\n ? decodeURIComponent(params['deep_link_id'])\n : undefined;\n const iOSDoubleDeepLink = searchParamsOrEmpty(iOSDeepLink)['link'];\n return iOSDoubleDeepLink || iOSDeepLink || doubleDeepLink || link || url;\n}\n\n/**\n * Optimistically tries to get search params from a string, or else returns an\n * empty search params object.\n */\nfunction searchParamsOrEmpty(url: string | undefined): Record {\n if (!url?.includes('?')) {\n return {};\n }\n\n const [_, ...rest] = url.split('?');\n return querystringDecode(rest.join('?')) as Record;\n}\n","/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AuthProvider, PopupRedirectResolver } from '../../model/public_types';\nimport { browserSessionPersistence } from '../../platform_browser/persistence/session_storage';\nimport { AuthInternal } from '../../model/auth';\nimport {\n AuthEvent,\n AuthEventType,\n PopupRedirectResolverInternal\n} from '../../model/popup_redirect';\nimport { AuthPopup } from '../../platform_browser/util/popup';\nimport { _createError, _fail } from '../../core/util/assert';\nimport { AuthErrorCode } from '../../core/errors';\nimport {\n _checkCordovaConfiguration,\n _generateHandlerUrl,\n _performRedirect,\n _validateOrigin,\n _waitForAppResume\n} from './utils';\nimport {\n CordovaAuthEventManager,\n _eventFromPartialAndUrl,\n _generateNewEvent,\n _getAndRemoveEvent,\n _savePartialEvent\n} from './events';\nimport { AuthEventManager } from '../../core/auth/auth_event_manager';\nimport { _getRedirectResult } from '../../platform_browser/strategies/redirect';\nimport {\n _clearRedirectOutcomes,\n _overrideRedirectResult\n} from '../../core/strategies/redirect';\nimport { _cordovaWindow } from '../plugins';\n\n/**\n * How long to wait for the initial auth event before concluding no\n * redirect pending\n */\nconst INITIAL_EVENT_TIMEOUT_MS = 500;\n\nclass CordovaPopupRedirectResolver implements PopupRedirectResolverInternal {\n readonly _redirectPersistence = browserSessionPersistence;\n readonly _shouldInitProactively = true; // This is lightweight for Cordova\n private readonly eventManagers = new Map();\n private readonly originValidationPromises: Record> = {};\n\n _completeRedirectFn = _getRedirectResult;\n _overrideRedirectResult = _overrideRedirectResult;\n\n async _initialize(auth: AuthInternal): Promise {\n const key = auth._key();\n let manager = this.eventManagers.get(key);\n if (!manager) {\n manager = new CordovaAuthEventManager(auth);\n this.eventManagers.set(key, manager);\n this.attachCallbackListeners(auth, manager);\n }\n return manager;\n }\n\n _openPopup(auth: AuthInternal): Promise {\n _fail(auth, AuthErrorCode.OPERATION_NOT_SUPPORTED);\n }\n\n async _openRedirect(\n auth: AuthInternal,\n provider: AuthProvider,\n authType: AuthEventType,\n eventId?: string\n ): Promise {\n _checkCordovaConfiguration(auth);\n const manager = await this._initialize(auth);\n await manager.initialized();\n\n // Reset the persisted redirect states. This does not matter on Web where\n // the redirect always blows away application state entirely. On Cordova,\n // the app maintains control flow through the redirect.\n manager.resetRedirect();\n _clearRedirectOutcomes();\n\n await this._originValidation(auth);\n\n const event = _generateNewEvent(auth, authType, eventId);\n await _savePartialEvent(auth, event);\n const url = await _generateHandlerUrl(auth, event, provider);\n const iabRef = await _performRedirect(url);\n return _waitForAppResume(auth, manager, iabRef);\n }\n\n _isIframeWebStorageSupported(\n _auth: AuthInternal,\n _cb: (support: boolean) => unknown\n ): void {\n throw new Error('Method not implemented.');\n }\n\n _originValidation(auth: AuthInternal): Promise {\n const key = auth._key();\n if (!this.originValidationPromises[key]) {\n this.originValidationPromises[key] = _validateOrigin(auth);\n }\n\n return this.originValidationPromises[key];\n }\n\n private attachCallbackListeners(\n auth: AuthInternal,\n manager: AuthEventManager\n ): void {\n // Get the global plugins\n const { universalLinks, handleOpenURL, BuildInfo } = _cordovaWindow();\n\n const noEventTimeout = setTimeout(async () => {\n // We didn't see that initial event. Clear any pending object and\n // dispatch no event\n await _getAndRemoveEvent(auth);\n manager.onEvent(generateNoEvent());\n }, INITIAL_EVENT_TIMEOUT_MS);\n\n const universalLinksCb = async (\n eventData: Record | null\n ): Promise => {\n // We have an event so we can clear the no event timeout\n clearTimeout(noEventTimeout);\n\n const partialEvent = await _getAndRemoveEvent(auth);\n let finalEvent: AuthEvent | null = null;\n if (partialEvent && eventData?.['url']) {\n finalEvent = _eventFromPartialAndUrl(partialEvent, eventData['url']);\n }\n\n // If finalEvent is never filled, trigger with no event\n manager.onEvent(finalEvent || generateNoEvent());\n };\n\n // Universal links subscriber doesn't exist for iOS, so we need to check\n if (\n typeof universalLinks !== 'undefined' &&\n typeof universalLinks.subscribe === 'function'\n ) {\n universalLinks.subscribe(null, universalLinksCb);\n }\n\n // iOS 7 or 8 custom URL schemes.\n // This is also the current default behavior for iOS 9+.\n // For this to work, cordova-plugin-customurlscheme needs to be installed.\n // https://github.com/EddyVerbruggen/Custom-URL-scheme\n // Do not overwrite the existing developer's URL handler.\n const existingHandleOpenURL = handleOpenURL;\n const packagePrefix = `${BuildInfo.packageName.toLowerCase()}://`;\n _cordovaWindow().handleOpenURL = async url => {\n if (url.toLowerCase().startsWith(packagePrefix)) {\n // We want this intentionally to float\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n universalLinksCb({ url });\n }\n // Call the developer's handler if it is present.\n if (typeof existingHandleOpenURL === 'function') {\n try {\n existingHandleOpenURL(url);\n } catch (e) {\n // This is a developer error. Don't stop the flow of the SDK.\n console.error(e);\n }\n }\n };\n }\n}\n\n/**\n * An implementation of {@link PopupRedirectResolver} suitable for Cordova\n * based applications.\n *\n * @public\n */\nexport const cordovaPopupRedirectResolver: PopupRedirectResolver =\n CordovaPopupRedirectResolver;\n\nfunction generateNoEvent(): AuthEvent {\n return {\n type: AuthEventType.UNKNOWN,\n eventId: null,\n sessionId: null,\n urlResponse: null,\n postBody: null,\n tenantId: null,\n error: _createError(AuthErrorCode.NO_AUTH_EVENT)\n };\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as impl from '@firebase/auth/internal';\nimport {\n getUA,\n isBrowserExtension,\n isReactNative,\n isNode,\n isIE,\n isIndexedDBAvailable\n} from '@firebase/util';\n\ndeclare global {\n interface Document {\n documentMode?: number;\n }\n}\n\nconst CORDOVA_ONDEVICEREADY_TIMEOUT_MS = 1000;\n\nfunction _getCurrentScheme(): string | null {\n return self?.location?.protocol || null;\n}\n\n/**\n * @return {boolean} Whether the current environment is http or https.\n */\nfunction _isHttpOrHttps(): boolean {\n return _getCurrentScheme() === 'http:' || _getCurrentScheme() === 'https:';\n}\n\n/**\n * @param {?string=} ua The user agent.\n * @return {boolean} Whether the app is rendered in a mobile iOS or Android\n * Cordova environment.\n */\nexport function _isAndroidOrIosCordovaScheme(ua: string = getUA()): boolean {\n return !!(\n (_getCurrentScheme() === 'file:' ||\n _getCurrentScheme() === 'ionic:' ||\n _getCurrentScheme() === 'capacitor:') &&\n ua.toLowerCase().match(/iphone|ipad|ipod|android/)\n );\n}\n\n/**\n * @return {boolean} Whether the environment is a native environment, where\n * CORS checks do not apply.\n */\nfunction _isNativeEnvironment(): boolean {\n return isReactNative() || isNode();\n}\n\n/**\n * Checks whether the user agent is IE11.\n * @return {boolean} True if it is IE11.\n */\nfunction _isIe11(): boolean {\n return isIE() && document?.documentMode === 11;\n}\n\n/**\n * Checks whether the user agent is Edge.\n * @param {string} userAgent The browser user agent string.\n * @return {boolean} True if it is Edge.\n */\nfunction _isEdge(ua: string = getUA()): boolean {\n return /Edge\\/\\d+/.test(ua);\n}\n\n/**\n * @param {?string=} opt_userAgent The navigator user agent.\n * @return {boolean} Whether local storage is not synchronized between an iframe\n * and a popup of the same domain.\n */\nfunction _isLocalStorageNotSynchronized(ua: string = getUA()): boolean {\n return _isIe11() || _isEdge(ua);\n}\n\n/** @return {boolean} Whether web storage is supported. */\nexport function _isWebStorageSupported(): boolean {\n try {\n const storage = self.localStorage;\n const key = impl._generateEventId();\n if (storage) {\n // setItem will throw an exception if we cannot access WebStorage (e.g.,\n // Safari in private mode).\n storage['setItem'](key, '1');\n storage['removeItem'](key);\n // For browsers where iframe web storage does not synchronize with a popup\n // of the same domain, indexedDB is used for persistent storage. These\n // browsers include IE11 and Edge.\n // Make sure it is supported (IE11 and Edge private mode does not support\n // that).\n if (_isLocalStorageNotSynchronized()) {\n // In such browsers, if indexedDB is not supported, an iframe cannot be\n // notified of the popup sign in result.\n return isIndexedDBAvailable();\n }\n return true;\n }\n } catch (e) {\n // localStorage is not available from a worker. Test availability of\n // indexedDB.\n return _isWorker() && isIndexedDBAvailable();\n }\n return false;\n}\n\n/**\n * @param {?Object=} global The optional global scope.\n * @return {boolean} Whether current environment is a worker.\n */\nexport function _isWorker(): boolean {\n // WorkerGlobalScope only defined in worker environment.\n return (\n typeof global !== 'undefined' &&\n 'WorkerGlobalScope' in global &&\n 'importScripts' in global\n );\n}\n\nexport function _isPopupRedirectSupported(): boolean {\n return (\n (_isHttpOrHttps() ||\n isBrowserExtension() ||\n _isAndroidOrIosCordovaScheme()) &&\n // React Native with remote debugging reports its location.protocol as\n // http.\n !_isNativeEnvironment() &&\n // Local storage has to be supported for browser popup and redirect\n // operations to work.\n _isWebStorageSupported() &&\n // DOM, popups and redirects are not supported within a worker.\n !_isWorker()\n );\n}\n\n/** Quick check that indicates the platform *may* be Cordova */\nexport function _isLikelyCordova(): boolean {\n return _isAndroidOrIosCordovaScheme() && typeof document !== 'undefined';\n}\n\nexport async function _isCordova(): Promise {\n if (!_isLikelyCordova()) {\n return false;\n }\n\n return new Promise(resolve => {\n const timeoutId = setTimeout(() => {\n // We've waited long enough; the telltale Cordova event didn't happen\n resolve(false);\n }, CORDOVA_ONDEVICEREADY_TIMEOUT_MS);\n\n document.addEventListener('deviceready', () => {\n clearTimeout(timeoutId);\n resolve(true);\n });\n });\n}\n\nexport function _getSelfWindow(): Window | null {\n return typeof window !== 'undefined' ? window : null;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as exp from '@firebase/auth/internal';\nimport { isIndexedDBAvailable, isNode, isReactNative } from '@firebase/util';\nimport { _getSelfWindow, _isWebStorageSupported, _isWorker } from './platform';\n\nexport const Persistence = {\n LOCAL: 'local',\n NONE: 'none',\n SESSION: 'session'\n};\n\nconst _assert: typeof exp._assert = exp._assert;\n\nconst PERSISTENCE_KEY = 'persistence';\n\n/**\n * Validates that an argument is a valid persistence value. If an invalid type\n * is specified, an error is thrown synchronously.\n */\nexport function _validatePersistenceArgument(\n auth: exp.Auth,\n persistence: string\n): void {\n _assert(\n Object.values(Persistence).includes(persistence),\n auth,\n exp.AuthErrorCode.INVALID_PERSISTENCE\n );\n // Validate if the specified type is supported in the current environment.\n if (isReactNative()) {\n // This is only supported in a browser.\n _assert(\n persistence !== Persistence.SESSION,\n auth,\n exp.AuthErrorCode.UNSUPPORTED_PERSISTENCE\n );\n return;\n }\n if (isNode()) {\n // Only none is supported in Node.js.\n _assert(\n persistence === Persistence.NONE,\n auth,\n exp.AuthErrorCode.UNSUPPORTED_PERSISTENCE\n );\n return;\n }\n if (_isWorker()) {\n // In a worker environment, either LOCAL or NONE are supported.\n // If indexedDB not supported and LOCAL provided, throw an error\n _assert(\n persistence === Persistence.NONE ||\n (persistence === Persistence.LOCAL && isIndexedDBAvailable()),\n auth,\n exp.AuthErrorCode.UNSUPPORTED_PERSISTENCE\n );\n return;\n }\n // This is restricted by what the browser supports.\n _assert(\n persistence === Persistence.NONE || _isWebStorageSupported(),\n auth,\n exp.AuthErrorCode.UNSUPPORTED_PERSISTENCE\n );\n}\n\nexport async function _savePersistenceForRedirect(\n auth: exp.AuthInternal\n): Promise {\n await auth._initializationPromise;\n const session = getSessionStorageIfAvailable();\n const key = exp._persistenceKeyName(\n PERSISTENCE_KEY,\n auth.config.apiKey,\n auth.name\n );\n if (session) {\n session.setItem(key, auth._getPersistence());\n }\n}\n\nexport function _getPersistencesFromRedirect(\n apiKey: string,\n appName: string\n): exp.Persistence[] {\n const session = getSessionStorageIfAvailable();\n if (!session) {\n return [];\n }\n\n const key = exp._persistenceKeyName(PERSISTENCE_KEY, apiKey, appName);\n const persistence = session.getItem(key);\n\n switch (persistence) {\n case Persistence.NONE:\n return [exp.inMemoryPersistence];\n case Persistence.LOCAL:\n return [exp.indexedDBLocalPersistence, exp.browserSessionPersistence];\n case Persistence.SESSION:\n return [exp.browserSessionPersistence];\n default:\n return [];\n }\n}\n\n/** Returns session storage, or null if the property access errors */\nfunction getSessionStorageIfAvailable(): Storage | null {\n try {\n return _getSelfWindow()?.sessionStorage || null;\n } catch (e) {\n return null;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as exp from '@firebase/auth/internal';\nimport { _isCordova, _isLikelyCordova } from './platform';\n\nconst _assert: typeof exp._assert = exp._assert;\n\n/** Platform-agnostic popup-redirect resolver */\nexport class CompatPopupRedirectResolver\n implements exp.PopupRedirectResolverInternal\n{\n // Create both resolvers for dynamic resolution later\n private readonly browserResolver: exp.PopupRedirectResolverInternal =\n exp._getInstance(exp.browserPopupRedirectResolver);\n private readonly cordovaResolver: exp.PopupRedirectResolverInternal =\n exp._getInstance(exp.cordovaPopupRedirectResolver);\n // The actual resolver in use: either browserResolver or cordovaResolver.\n private underlyingResolver: exp.PopupRedirectResolverInternal | null = null;\n _redirectPersistence = exp.browserSessionPersistence;\n\n _completeRedirectFn: (\n auth: exp.Auth,\n resolver: exp.PopupRedirectResolver,\n bypassAuthState: boolean\n ) => Promise = exp._getRedirectResult;\n _overrideRedirectResult = exp._overrideRedirectResult;\n\n async _initialize(auth: exp.AuthImpl): Promise {\n await this.selectUnderlyingResolver();\n return this.assertedUnderlyingResolver._initialize(auth);\n }\n\n async _openPopup(\n auth: exp.AuthImpl,\n provider: exp.AuthProvider,\n authType: exp.AuthEventType,\n eventId?: string\n ): Promise {\n await this.selectUnderlyingResolver();\n return this.assertedUnderlyingResolver._openPopup(\n auth,\n provider,\n authType,\n eventId\n );\n }\n\n async _openRedirect(\n auth: exp.AuthImpl,\n provider: exp.AuthProvider,\n authType: exp.AuthEventType,\n eventId?: string\n ): Promise {\n await this.selectUnderlyingResolver();\n return this.assertedUnderlyingResolver._openRedirect(\n auth,\n provider,\n authType,\n eventId\n );\n }\n\n _isIframeWebStorageSupported(\n auth: exp.AuthImpl,\n cb: (support: boolean) => unknown\n ): void {\n this.assertedUnderlyingResolver._isIframeWebStorageSupported(auth, cb);\n }\n\n _originValidation(auth: exp.Auth): Promise {\n return this.assertedUnderlyingResolver._originValidation(auth);\n }\n\n get _shouldInitProactively(): boolean {\n return _isLikelyCordova() || this.browserResolver._shouldInitProactively;\n }\n\n private get assertedUnderlyingResolver(): exp.PopupRedirectResolverInternal {\n _assert(this.underlyingResolver, exp.AuthErrorCode.INTERNAL_ERROR);\n return this.underlyingResolver;\n }\n\n private async selectUnderlyingResolver(): Promise {\n if (this.underlyingResolver) {\n return;\n }\n\n // We haven't yet determined whether or not we're in Cordova; go ahead\n // and determine that state now.\n const isCordova = await _isCordova();\n this.underlyingResolver = isCordova\n ? this.cordovaResolver\n : this.browserResolver;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** Forward direction wrapper from Compat --unwrap-> Exp */\nexport interface Wrapper {\n unwrap(): T;\n}\n\n/** Reverse direction wrapper from Exp --wrapped--> Compat */\nexport interface ReverseWrapper {\n wrapped(): T;\n}\n\nexport function unwrap(object: unknown): T {\n return (object as Wrapper).unwrap();\n}\n\nexport function wrapped(object: unknown): T {\n return (object as ReverseWrapper).wrapped();\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as exp from '@firebase/auth/internal';\nimport * as compat from '@firebase/auth-types';\nimport { FirebaseError } from '@firebase/util';\nimport { Auth } from './auth';\nimport { User } from './user';\nimport { unwrap, wrapped } from './wrap';\n\nfunction credentialFromResponse(\n userCredential: exp.UserCredentialInternal\n): exp.AuthCredential | null {\n return credentialFromObject(userCredential);\n}\n\nfunction attachExtraErrorFields(auth: exp.Auth, e: FirebaseError): void {\n // The response contains all fields from the server which may or may not\n // actually match the underlying type\n const response = (e.customData as exp.TaggedWithTokenResponse | undefined)\n ?._tokenResponse as unknown as Record;\n if ((e as FirebaseError)?.code === 'auth/multi-factor-auth-required') {\n const mfaErr = e as compat.MultiFactorError;\n mfaErr.resolver = new MultiFactorResolver(\n auth,\n exp.getMultiFactorResolver(auth, e as exp.MultiFactorError)\n );\n } else if (response) {\n const credential = credentialFromObject(e);\n const credErr = e as compat.AuthError;\n if (credential) {\n credErr.credential = credential;\n credErr.tenantId = response.tenantId || undefined;\n credErr.email = response.email || undefined;\n credErr.phoneNumber = response.phoneNumber || undefined;\n }\n }\n}\n\nfunction credentialFromObject(\n object: FirebaseError | exp.UserCredential\n): exp.AuthCredential | null {\n const { _tokenResponse } = (\n object instanceof FirebaseError ? object.customData : object\n ) as exp.TaggedWithTokenResponse;\n if (!_tokenResponse) {\n return null;\n }\n\n // Handle phone Auth credential responses, as they have a different format\n // from other backend responses (i.e. no providerId). This is also only the\n // case for user credentials (does not work for errors).\n if (!(object instanceof FirebaseError)) {\n if ('temporaryProof' in _tokenResponse && 'phoneNumber' in _tokenResponse) {\n return exp.PhoneAuthProvider.credentialFromResult(object);\n }\n }\n\n const providerId = _tokenResponse.providerId;\n\n // Email and password is not supported as there is no situation where the\n // server would return the password to the client.\n if (!providerId || providerId === exp.ProviderId.PASSWORD) {\n return null;\n }\n\n let provider: Pick<\n typeof exp.OAuthProvider,\n 'credentialFromResult' | 'credentialFromError'\n >;\n switch (providerId) {\n case exp.ProviderId.GOOGLE:\n provider = exp.GoogleAuthProvider;\n break;\n case exp.ProviderId.FACEBOOK:\n provider = exp.FacebookAuthProvider;\n break;\n case exp.ProviderId.GITHUB:\n provider = exp.GithubAuthProvider;\n break;\n case exp.ProviderId.TWITTER:\n provider = exp.TwitterAuthProvider;\n break;\n default:\n const {\n oauthIdToken,\n oauthAccessToken,\n oauthTokenSecret,\n pendingToken,\n nonce\n } = _tokenResponse as exp.SignInWithIdpResponse;\n if (\n !oauthAccessToken &&\n !oauthTokenSecret &&\n !oauthIdToken &&\n !pendingToken\n ) {\n return null;\n }\n // TODO(avolkovi): uncomment this and get it working with SAML & OIDC\n if (pendingToken) {\n if (providerId.startsWith('saml.')) {\n return exp.SAMLAuthCredential._create(providerId, pendingToken);\n } else {\n // OIDC and non-default providers excluding Twitter.\n return exp.OAuthCredential._fromParams({\n providerId,\n signInMethod: providerId,\n pendingToken,\n idToken: oauthIdToken,\n accessToken: oauthAccessToken\n });\n }\n }\n return new exp.OAuthProvider(providerId).credential({\n idToken: oauthIdToken,\n accessToken: oauthAccessToken,\n rawNonce: nonce\n });\n }\n\n return object instanceof FirebaseError\n ? provider.credentialFromError(object)\n : provider.credentialFromResult(object);\n}\n\nexport function convertCredential(\n auth: exp.Auth,\n credentialPromise: Promise\n): Promise {\n return credentialPromise\n .catch(e => {\n if (e instanceof FirebaseError) {\n attachExtraErrorFields(auth, e);\n }\n throw e;\n })\n .then(credential => {\n const operationType = credential.operationType;\n const user = credential.user;\n\n return {\n operationType,\n credential: credentialFromResponse(\n credential as exp.UserCredentialInternal\n ),\n additionalUserInfo: exp.getAdditionalUserInfo(\n credential as exp.UserCredential\n ),\n user: User.getOrCreate(user)\n };\n });\n}\n\nexport async function convertConfirmationResult(\n auth: exp.Auth,\n confirmationResultPromise: Promise\n): Promise {\n const confirmationResultExp = await confirmationResultPromise;\n return {\n verificationId: confirmationResultExp.verificationId,\n confirm: (verificationCode: string) =>\n convertCredential(auth, confirmationResultExp.confirm(verificationCode))\n };\n}\n\nclass MultiFactorResolver implements compat.MultiFactorResolver {\n readonly auth: Auth;\n constructor(\n auth: exp.Auth,\n private readonly resolver: exp.MultiFactorResolver\n ) {\n this.auth = wrapped(auth);\n }\n\n get session(): compat.MultiFactorSession {\n return this.resolver.session;\n }\n\n get hints(): compat.MultiFactorInfo[] {\n return this.resolver.hints;\n }\n\n resolveSignIn(\n assertion: compat.MultiFactorAssertion\n ): Promise {\n return convertCredential(\n unwrap(this.auth),\n this.resolver.resolveSignIn(assertion as exp.MultiFactorAssertion)\n );\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as exp from '@firebase/auth/internal';\nimport * as compat from '@firebase/auth-types';\nimport { Compat } from '@firebase/util';\nimport { _savePersistenceForRedirect } from './persistence';\nimport { CompatPopupRedirectResolver } from './popup_redirect';\nimport {\n convertConfirmationResult,\n convertCredential\n} from './user_credential';\n\nexport class User implements compat.User, Compat {\n // Maintain a map so that there's always a 1:1 mapping between new User and\n // legacy compat users\n private static readonly USER_MAP = new WeakMap();\n\n readonly multiFactor: compat.MultiFactorUser;\n\n private constructor(readonly _delegate: exp.User) {\n this.multiFactor = exp.multiFactor(_delegate);\n }\n\n static getOrCreate(user: exp.User): User {\n if (!User.USER_MAP.has(user)) {\n User.USER_MAP.set(user, new User(user));\n }\n\n return User.USER_MAP.get(user)!;\n }\n\n delete(): Promise {\n return this._delegate.delete();\n }\n reload(): Promise {\n return this._delegate.reload();\n }\n toJSON(): object {\n return this._delegate.toJSON();\n }\n getIdTokenResult(forceRefresh?: boolean): Promise {\n return this._delegate.getIdTokenResult(forceRefresh);\n }\n getIdToken(forceRefresh?: boolean): Promise {\n return this._delegate.getIdToken(forceRefresh);\n }\n linkAndRetrieveDataWithCredential(\n credential: compat.AuthCredential\n ): Promise {\n return this.linkWithCredential(credential);\n }\n async linkWithCredential(\n credential: compat.AuthCredential\n ): Promise {\n return convertCredential(\n this.auth,\n exp.linkWithCredential(this._delegate, credential as exp.AuthCredential)\n );\n }\n async linkWithPhoneNumber(\n phoneNumber: string,\n applicationVerifier: compat.ApplicationVerifier\n ): Promise {\n return convertConfirmationResult(\n this.auth,\n exp.linkWithPhoneNumber(this._delegate, phoneNumber, applicationVerifier)\n );\n }\n async linkWithPopup(\n provider: compat.AuthProvider\n ): Promise {\n return convertCredential(\n this.auth,\n exp.linkWithPopup(\n this._delegate,\n provider as exp.AuthProvider,\n CompatPopupRedirectResolver\n )\n );\n }\n async linkWithRedirect(provider: compat.AuthProvider): Promise {\n await _savePersistenceForRedirect(exp._castAuth(this.auth));\n return exp.linkWithRedirect(\n this._delegate,\n provider as exp.AuthProvider,\n CompatPopupRedirectResolver\n );\n }\n reauthenticateAndRetrieveDataWithCredential(\n credential: compat.AuthCredential\n ): Promise {\n return this.reauthenticateWithCredential(credential);\n }\n async reauthenticateWithCredential(\n credential: compat.AuthCredential\n ): Promise {\n return convertCredential(\n this.auth as unknown as exp.Auth,\n exp.reauthenticateWithCredential(\n this._delegate,\n credential as exp.AuthCredential\n )\n );\n }\n reauthenticateWithPhoneNumber(\n phoneNumber: string,\n applicationVerifier: compat.ApplicationVerifier\n ): Promise {\n return convertConfirmationResult(\n this.auth,\n exp.reauthenticateWithPhoneNumber(\n this._delegate,\n phoneNumber,\n applicationVerifier\n )\n );\n }\n reauthenticateWithPopup(\n provider: compat.AuthProvider\n ): Promise {\n return convertCredential(\n this.auth,\n exp.reauthenticateWithPopup(\n this._delegate,\n provider as exp.AuthProvider,\n CompatPopupRedirectResolver\n )\n );\n }\n async reauthenticateWithRedirect(\n provider: compat.AuthProvider\n ): Promise {\n await _savePersistenceForRedirect(exp._castAuth(this.auth));\n return exp.reauthenticateWithRedirect(\n this._delegate,\n provider as exp.AuthProvider,\n CompatPopupRedirectResolver\n );\n }\n sendEmailVerification(\n actionCodeSettings?: compat.ActionCodeSettings | null\n ): Promise {\n return exp.sendEmailVerification(this._delegate, actionCodeSettings);\n }\n async unlink(providerId: string): Promise {\n await exp.unlink(this._delegate, providerId);\n return this;\n }\n updateEmail(newEmail: string): Promise {\n return exp.updateEmail(this._delegate, newEmail);\n }\n updatePassword(newPassword: string): Promise {\n return exp.updatePassword(this._delegate, newPassword);\n }\n updatePhoneNumber(phoneCredential: compat.AuthCredential): Promise {\n return exp.updatePhoneNumber(\n this._delegate,\n phoneCredential as exp.PhoneAuthCredential\n );\n }\n updateProfile(profile: {\n displayName?: string | null;\n photoURL?: string | null;\n }): Promise {\n return exp.updateProfile(this._delegate, profile);\n }\n verifyBeforeUpdateEmail(\n newEmail: string,\n actionCodeSettings?: compat.ActionCodeSettings | null\n ): Promise {\n return exp.verifyBeforeUpdateEmail(\n this._delegate,\n newEmail,\n actionCodeSettings\n );\n }\n get emailVerified(): boolean {\n return this._delegate.emailVerified;\n }\n get isAnonymous(): boolean {\n return this._delegate.isAnonymous;\n }\n get metadata(): compat.UserMetadata {\n return this._delegate.metadata;\n }\n get phoneNumber(): string | null {\n return this._delegate.phoneNumber;\n }\n get providerData(): Array {\n return this._delegate.providerData;\n }\n get refreshToken(): string {\n return this._delegate.refreshToken;\n }\n get tenantId(): string | null {\n return this._delegate.tenantId;\n }\n get displayName(): string | null {\n return this._delegate.displayName;\n }\n get email(): string | null {\n return this._delegate.email;\n }\n get photoURL(): string | null {\n return this._delegate.photoURL;\n }\n get providerId(): string {\n return this._delegate.providerId;\n }\n get uid(): string {\n return this._delegate.uid;\n }\n private get auth(): exp.Auth {\n return (this._delegate as exp.UserImpl).auth as unknown as exp.Auth;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FirebaseApp, _FirebaseService } from '@firebase/app-compat';\nimport * as exp from '@firebase/auth/internal';\nimport * as compat from '@firebase/auth-types';\nimport { Provider } from '@firebase/component';\nimport { ErrorFn, Observer, Unsubscribe } from '@firebase/util';\n\nimport {\n _validatePersistenceArgument,\n Persistence,\n _getPersistencesFromRedirect,\n _savePersistenceForRedirect\n} from './persistence';\nimport { _isPopupRedirectSupported } from './platform';\nimport { CompatPopupRedirectResolver } from './popup_redirect';\nimport { User } from './user';\nimport {\n convertConfirmationResult,\n convertCredential\n} from './user_credential';\nimport { ReverseWrapper, Wrapper } from './wrap';\n\nconst _assert: typeof exp._assert = exp._assert;\n\nexport class Auth\n implements compat.FirebaseAuth, Wrapper, _FirebaseService\n{\n static Persistence = Persistence;\n readonly _delegate: exp.AuthImpl;\n\n constructor(readonly app: FirebaseApp, provider: Provider<'auth'>) {\n if (provider.isInitialized()) {\n this._delegate = provider.getImmediate() as exp.AuthImpl;\n this.linkUnderlyingAuth();\n return;\n }\n\n const { apiKey } = app.options;\n // TODO: platform needs to be determined using heuristics\n _assert(apiKey, exp.AuthErrorCode.INVALID_API_KEY, {\n appName: app.name\n });\n\n // TODO: platform needs to be determined using heuristics\n _assert(apiKey, exp.AuthErrorCode.INVALID_API_KEY, {\n appName: app.name\n });\n\n // Only use a popup/redirect resolver in browser environments\n const resolver =\n typeof window !== 'undefined' ? CompatPopupRedirectResolver : undefined;\n this._delegate = provider.initialize({\n options: {\n persistence: buildPersistenceHierarchy(apiKey, app.name),\n popupRedirectResolver: resolver\n }\n }) as exp.AuthImpl;\n\n this._delegate._updateErrorMap(exp.debugErrorMap);\n this.linkUnderlyingAuth();\n }\n\n get emulatorConfig(): compat.EmulatorConfig | null {\n return this._delegate.emulatorConfig;\n }\n\n get currentUser(): compat.User | null {\n if (!this._delegate.currentUser) {\n return null;\n }\n\n return User.getOrCreate(this._delegate.currentUser);\n }\n get languageCode(): string | null {\n return this._delegate.languageCode;\n }\n set languageCode(languageCode: string | null) {\n this._delegate.languageCode = languageCode;\n }\n get settings(): compat.AuthSettings {\n return this._delegate.settings;\n }\n get tenantId(): string | null {\n return this._delegate.tenantId;\n }\n set tenantId(tid: string | null) {\n this._delegate.tenantId = tid;\n }\n useDeviceLanguage(): void {\n this._delegate.useDeviceLanguage();\n }\n signOut(): Promise {\n return this._delegate.signOut();\n }\n useEmulator(url: string, options?: { disableWarnings: boolean }): void {\n exp.connectAuthEmulator(this._delegate, url, options);\n }\n applyActionCode(code: string): Promise {\n return exp.applyActionCode(this._delegate, code);\n }\n\n checkActionCode(code: string): Promise {\n return exp.checkActionCode(this._delegate, code);\n }\n\n confirmPasswordReset(code: string, newPassword: string): Promise {\n return exp.confirmPasswordReset(this._delegate, code, newPassword);\n }\n\n async createUserWithEmailAndPassword(\n email: string,\n password: string\n ): Promise {\n return convertCredential(\n this._delegate,\n exp.createUserWithEmailAndPassword(this._delegate, email, password)\n );\n }\n fetchProvidersForEmail(email: string): Promise {\n return this.fetchSignInMethodsForEmail(email);\n }\n fetchSignInMethodsForEmail(email: string): Promise {\n return exp.fetchSignInMethodsForEmail(this._delegate, email);\n }\n isSignInWithEmailLink(emailLink: string): boolean {\n return exp.isSignInWithEmailLink(this._delegate, emailLink);\n }\n async getRedirectResult(): Promise {\n _assert(\n _isPopupRedirectSupported(),\n this._delegate,\n exp.AuthErrorCode.OPERATION_NOT_SUPPORTED\n );\n const credential = await exp.getRedirectResult(\n this._delegate,\n CompatPopupRedirectResolver\n );\n if (!credential) {\n return {\n credential: null,\n user: null\n };\n }\n return convertCredential(this._delegate, Promise.resolve(credential));\n }\n\n // This function should only be called by frameworks (e.g. FirebaseUI-web) to log their usage.\n // It is not intended for direct use by developer apps. NO jsdoc here to intentionally leave it\n // out of autogenerated documentation pages to reduce accidental misuse.\n addFrameworkForLogging(framework: string): void {\n exp.addFrameworkForLogging(this._delegate, framework);\n }\n\n onAuthStateChanged(\n nextOrObserver: Observer | ((a: compat.User | null) => unknown),\n errorFn?: (error: compat.Error) => unknown,\n completed?: Unsubscribe\n ): Unsubscribe {\n const { next, error, complete } = wrapObservers(\n nextOrObserver,\n errorFn,\n completed\n );\n return this._delegate.onAuthStateChanged(next!, error, complete);\n }\n onIdTokenChanged(\n nextOrObserver: Observer | ((a: compat.User | null) => unknown),\n errorFn?: (error: compat.Error) => unknown,\n completed?: Unsubscribe\n ): Unsubscribe {\n const { next, error, complete } = wrapObservers(\n nextOrObserver,\n errorFn,\n completed\n );\n return this._delegate.onIdTokenChanged(next!, error, complete);\n }\n sendSignInLinkToEmail(\n email: string,\n actionCodeSettings: compat.ActionCodeSettings\n ): Promise {\n return exp.sendSignInLinkToEmail(this._delegate, email, actionCodeSettings);\n }\n sendPasswordResetEmail(\n email: string,\n actionCodeSettings?: compat.ActionCodeSettings | null\n ): Promise {\n return exp.sendPasswordResetEmail(\n this._delegate,\n email,\n actionCodeSettings || undefined\n );\n }\n async setPersistence(persistence: string): Promise {\n _validatePersistenceArgument(this._delegate, persistence);\n let converted;\n switch (persistence) {\n case Persistence.SESSION:\n converted = exp.browserSessionPersistence;\n break;\n case Persistence.LOCAL:\n // Not using isIndexedDBAvailable() since it only checks if indexedDB is defined.\n const isIndexedDBFullySupported = await exp\n ._getInstance(exp.indexedDBLocalPersistence)\n ._isAvailable();\n converted = isIndexedDBFullySupported\n ? exp.indexedDBLocalPersistence\n : exp.browserLocalPersistence;\n break;\n case Persistence.NONE:\n converted = exp.inMemoryPersistence;\n break;\n default:\n return exp._fail(exp.AuthErrorCode.ARGUMENT_ERROR, {\n appName: this._delegate.name\n });\n }\n\n return this._delegate.setPersistence(converted);\n }\n\n signInAndRetrieveDataWithCredential(\n credential: compat.AuthCredential\n ): Promise {\n return this.signInWithCredential(credential);\n }\n signInAnonymously(): Promise {\n return convertCredential(\n this._delegate,\n exp.signInAnonymously(this._delegate)\n );\n }\n signInWithCredential(\n credential: compat.AuthCredential\n ): Promise {\n return convertCredential(\n this._delegate,\n exp.signInWithCredential(this._delegate, credential as exp.AuthCredential)\n );\n }\n signInWithCustomToken(token: string): Promise {\n return convertCredential(\n this._delegate,\n exp.signInWithCustomToken(this._delegate, token)\n );\n }\n signInWithEmailAndPassword(\n email: string,\n password: string\n ): Promise {\n return convertCredential(\n this._delegate,\n exp.signInWithEmailAndPassword(this._delegate, email, password)\n );\n }\n signInWithEmailLink(\n email: string,\n emailLink?: string\n ): Promise {\n return convertCredential(\n this._delegate,\n exp.signInWithEmailLink(this._delegate, email, emailLink)\n );\n }\n signInWithPhoneNumber(\n phoneNumber: string,\n applicationVerifier: compat.ApplicationVerifier\n ): Promise {\n return convertConfirmationResult(\n this._delegate,\n exp.signInWithPhoneNumber(\n this._delegate,\n phoneNumber,\n applicationVerifier\n )\n );\n }\n async signInWithPopup(\n provider: compat.AuthProvider\n ): Promise {\n _assert(\n _isPopupRedirectSupported(),\n this._delegate,\n exp.AuthErrorCode.OPERATION_NOT_SUPPORTED\n );\n return convertCredential(\n this._delegate,\n exp.signInWithPopup(\n this._delegate,\n provider as exp.AuthProvider,\n CompatPopupRedirectResolver\n )\n );\n }\n async signInWithRedirect(provider: compat.AuthProvider): Promise {\n _assert(\n _isPopupRedirectSupported(),\n this._delegate,\n exp.AuthErrorCode.OPERATION_NOT_SUPPORTED\n );\n\n await _savePersistenceForRedirect(this._delegate);\n return exp.signInWithRedirect(\n this._delegate,\n provider as exp.AuthProvider,\n CompatPopupRedirectResolver\n );\n }\n updateCurrentUser(user: compat.User | null): Promise {\n // remove ts-ignore once overloads are defined for exp functions to accept compat objects\n // @ts-ignore\n return this._delegate.updateCurrentUser(user);\n }\n verifyPasswordResetCode(code: string): Promise {\n return exp.verifyPasswordResetCode(this._delegate, code);\n }\n unwrap(): exp.Auth {\n return this._delegate;\n }\n _delete(): Promise {\n return this._delegate._delete();\n }\n private linkUnderlyingAuth(): void {\n (this._delegate as unknown as ReverseWrapper).wrapped = () => this;\n }\n}\n\nfunction wrapObservers(\n nextOrObserver: Observer | ((a: compat.User | null) => unknown),\n error?: (error: compat.Error) => unknown,\n complete?: Unsubscribe\n): Partial> {\n let next = nextOrObserver;\n if (typeof nextOrObserver !== 'function') {\n ({ next, error, complete } = nextOrObserver);\n }\n\n // We know 'next' is now a function\n const oldNext = next as (a: compat.User | null) => unknown;\n\n const newNext = (user: exp.User | null): unknown =>\n oldNext(user && User.getOrCreate(user as exp.User));\n return {\n next: newNext,\n error: error as ErrorFn,\n complete\n };\n}\n\nfunction buildPersistenceHierarchy(\n apiKey: string,\n appName: string\n): exp.Persistence[] {\n // Note this is slightly different behavior: in this case, the stored\n // persistence is checked *first* rather than last. This is because we want\n // to prefer stored persistence type in the hierarchy. This is an empty\n // array if window is not available or there is no pending redirect\n const persistences = _getPersistencesFromRedirect(apiKey, appName);\n\n // If \"self\" is available, add indexedDB\n if (\n typeof self !== 'undefined' &&\n !persistences.includes(exp.indexedDBLocalPersistence)\n ) {\n persistences.push(exp.indexedDBLocalPersistence);\n }\n\n // If \"window\" is available, add HTML Storage persistences\n if (typeof window !== 'undefined') {\n for (const persistence of [\n exp.browserLocalPersistence,\n exp.browserSessionPersistence\n ]) {\n if (!persistences.includes(persistence)) {\n persistences.push(persistence);\n }\n }\n }\n\n // Add in-memory as a final fallback\n if (!persistences.includes(exp.inMemoryPersistence)) {\n persistences.push(exp.inMemoryPersistence);\n }\n\n return persistences;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ActionCodeOperation,\n ActionCodeSettings,\n Auth,\n UserCredential\n} from '../../model/public_types';\n\nimport * as api from '../../api/authentication/email_and_password';\nimport { ActionCodeURL } from '../action_code_url';\nimport { EmailAuthProvider } from '../providers/email';\nimport { _getCurrentUrl } from '../util/location';\nimport { _setActionCodeSettingsOnRequest } from './action_code_settings';\nimport { signInWithCredential } from './credential';\nimport { AuthErrorCode } from '../errors';\nimport { _assert } from '../util/assert';\nimport { getModularInstance } from '@firebase/util';\nimport { _castAuth } from '../auth/auth_impl';\nimport { injectRecaptchaFields } from '../../platform_browser/recaptcha/recaptcha_enterprise_verifier';\nimport { RecaptchaActionName, RecaptchaClientType } from '../../api';\n\n/**\n * Sends a sign-in email link to the user with the specified email.\n *\n * @remarks\n * The sign-in operation has to always be completed in the app unlike other out of band email\n * actions (password reset and email verifications). This is because, at the end of the flow,\n * the user is expected to be signed in and their Auth state persisted within the app.\n *\n * To complete sign in with the email link, call {@link signInWithEmailLink} with the email\n * address and the email link supplied in the email sent to the user.\n *\n * @example\n * ```javascript\n * const actionCodeSettings = {\n * url: 'https://www.example.com/?email=user@example.com',\n * iOS: {\n * bundleId: 'com.example.ios'\n * },\n * android: {\n * packageName: 'com.example.android',\n * installApp: true,\n * minimumVersion: '12'\n * },\n * handleCodeInApp: true\n * };\n * await sendSignInLinkToEmail(auth, 'user@example.com', actionCodeSettings);\n * // Obtain emailLink from the user.\n * if(isSignInWithEmailLink(auth, emailLink)) {\n * await signInWithEmailLink(auth, 'user@example.com', emailLink);\n * }\n * ```\n *\n * @param authInternal - The {@link Auth} instance.\n * @param email - The user's email address.\n * @param actionCodeSettings - The {@link ActionCodeSettings}.\n *\n * @public\n */\nexport async function sendSignInLinkToEmail(\n auth: Auth,\n email: string,\n actionCodeSettings: ActionCodeSettings\n): Promise {\n const authInternal = _castAuth(auth);\n const request: api.EmailSignInRequest = {\n requestType: ActionCodeOperation.EMAIL_SIGNIN,\n email,\n clientType: RecaptchaClientType.WEB\n };\n function setActionCodeSettings(\n request: api.EmailSignInRequest,\n actionCodeSettings: ActionCodeSettings\n ): void {\n _assert(\n actionCodeSettings.handleCodeInApp,\n authInternal,\n AuthErrorCode.ARGUMENT_ERROR\n );\n if (actionCodeSettings) {\n _setActionCodeSettingsOnRequest(\n authInternal,\n request,\n actionCodeSettings\n );\n }\n }\n if (authInternal._getRecaptchaConfig()?.emailPasswordEnabled) {\n const requestWithRecaptcha = await injectRecaptchaFields(\n authInternal,\n request,\n RecaptchaActionName.GET_OOB_CODE,\n true\n );\n setActionCodeSettings(requestWithRecaptcha, actionCodeSettings);\n await api.sendSignInLinkToEmail(authInternal, requestWithRecaptcha);\n } else {\n setActionCodeSettings(request, actionCodeSettings);\n await api\n .sendSignInLinkToEmail(authInternal, request)\n .catch(async error => {\n if (error.code === `auth/${AuthErrorCode.MISSING_RECAPTCHA_TOKEN}`) {\n console.log(\n 'Email link sign-in is protected by reCAPTCHA for this project. Automatically triggering the reCAPTCHA flow and restarting the sign-in flow.'\n );\n const requestWithRecaptcha = await injectRecaptchaFields(\n authInternal,\n request,\n RecaptchaActionName.GET_OOB_CODE,\n true\n );\n setActionCodeSettings(requestWithRecaptcha, actionCodeSettings);\n await api.sendSignInLinkToEmail(authInternal, requestWithRecaptcha);\n } else {\n return Promise.reject(error);\n }\n });\n }\n}\n\n/**\n * Checks if an incoming link is a sign-in with email link suitable for {@link signInWithEmailLink}.\n *\n * @param auth - The {@link Auth} instance.\n * @param emailLink - The link sent to the user's email address.\n *\n * @public\n */\nexport function isSignInWithEmailLink(auth: Auth, emailLink: string): boolean {\n const actionCodeUrl = ActionCodeURL.parseLink(emailLink);\n return actionCodeUrl?.operation === ActionCodeOperation.EMAIL_SIGNIN;\n}\n\n/**\n * Asynchronously signs in using an email and sign-in email link.\n *\n * @remarks\n * If no link is passed, the link is inferred from the current URL.\n *\n * Fails with an error if the email address is invalid or OTP in email link expires.\n *\n * Note: Confirm the link is a sign-in email link before calling this method firebase.auth.Auth.isSignInWithEmailLink.\n *\n * @example\n * ```javascript\n * const actionCodeSettings = {\n * url: 'https://www.example.com/?email=user@example.com',\n * iOS: {\n * bundleId: 'com.example.ios'\n * },\n * android: {\n * packageName: 'com.example.android',\n * installApp: true,\n * minimumVersion: '12'\n * },\n * handleCodeInApp: true\n * };\n * await sendSignInLinkToEmail(auth, 'user@example.com', actionCodeSettings);\n * // Obtain emailLink from the user.\n * if(isSignInWithEmailLink(auth, emailLink)) {\n * await signInWithEmailLink(auth, 'user@example.com', emailLink);\n * }\n * ```\n *\n * @param auth - The {@link Auth} instance.\n * @param email - The user's email address.\n * @param emailLink - The link sent to the user's email address.\n *\n * @public\n */\nexport async function signInWithEmailLink(\n auth: Auth,\n email: string,\n emailLink?: string\n): Promise {\n const authModular = getModularInstance(auth);\n const credential = EmailAuthProvider.credentialWithLink(\n email,\n emailLink || _getCurrentUrl()\n );\n // Check if the tenant ID in the email link matches the tenant ID on Auth\n // instance.\n _assert(\n credential._tenantId === (authModular.tenantId || null),\n authModular,\n AuthErrorCode.TENANT_ID_MISMATCH\n );\n return signInWithCredential(authModular, credential);\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { _castAuth } from '../src/core/auth/auth_impl';\nimport { Auth } from '../src/model/public_types';\n\n/**\n * This interface is intended only for use by @firebase/auth-compat, do not use directly\n */\nexport * from '../index';\n\nexport { SignInWithIdpResponse } from '../src/api/authentication/idp';\nexport { AuthErrorCode } from '../src/core/errors';\nexport { PersistenceInternal } from '../src/core/persistence';\nexport { _persistenceKeyName } from '../src/core/persistence/persistence_user_manager';\nexport { UserImpl } from '../src/core/user/user_impl';\nexport { _getInstance } from '../src/core/util/instantiator';\nexport {\n PopupRedirectResolverInternal,\n EventManager,\n AuthEventType\n} from '../src/model/popup_redirect';\nexport { UserCredentialInternal, UserParameters } from '../src/model/user';\nexport { AuthInternal, ConfigInternal } from '../src/model/auth';\nexport { DefaultConfig, AuthImpl, _castAuth } from '../src/core/auth/auth_impl';\n\nexport { ClientPlatform, _getClientVersion } from '../src/core/util/version';\n\nexport { _generateEventId } from '../src/core/util/event_id';\nexport { TaggedWithTokenResponse } from '../src/model/id_token';\nexport { _fail, _assert } from '../src/core/util/assert';\nexport { AuthPopup } from '../src/platform_browser/util/popup';\nexport { _getRedirectResult } from '../src/platform_browser/strategies/redirect';\nexport { _overrideRedirectResult } from '../src/core/strategies/redirect';\nexport { cordovaPopupRedirectResolver } from '../src/platform_cordova/popup_redirect/popup_redirect';\nexport { FetchProvider } from '../src/core/util/fetch_provider';\nexport { SAMLAuthCredential } from '../src/core/credentials/saml';\n\n// This function should only be called by frameworks (e.g. FirebaseUI-web) to log their usage.\n// It is not intended for direct use by developer apps. NO jsdoc here to intentionally leave it out\n// of autogenerated documentation pages to reduce accidental misuse.\nexport function addFrameworkForLogging(auth: Auth, framework: string): void {\n _castAuth(auth)._logFramework(framework);\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Auth, UserCredential } from '../../model/public_types';\nimport { signUp } from '../../api/authentication/sign_up';\nimport { UserInternal } from '../../model/user';\nimport { UserCredentialImpl } from '../user/user_credential_impl';\nimport { _castAuth } from '../auth/auth_impl';\nimport { OperationType } from '../../model/enums';\n\n/**\n * Asynchronously signs in as an anonymous user.\n *\n * @remarks\n * If there is already an anonymous user signed in, that user will be returned; otherwise, a\n * new anonymous user identity will be created and returned.\n *\n * @param auth - The {@link Auth} instance.\n *\n * @public\n */\nexport async function signInAnonymously(auth: Auth): Promise {\n const authInternal = _castAuth(auth);\n await authInternal._initializationPromise;\n if (authInternal.currentUser?.isAnonymous) {\n // If an anonymous user is already signed in, no need to sign them in again.\n return new UserCredentialImpl({\n user: authInternal.currentUser as UserInternal,\n providerId: null,\n operationType: OperationType.SIGN_IN\n });\n }\n const response = await signUp(authInternal, {\n returnSecureToken: true\n });\n const userCredential = await UserCredentialImpl._fromIdTokenResponse(\n authInternal,\n OperationType.SIGN_IN,\n response,\n true\n );\n await authInternal._updateCurrentUser(userCredential.user);\n return userCredential;\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as exp from '@firebase/auth/internal';\nimport * as compat from '@firebase/auth-types';\nimport firebase from '@firebase/app-compat';\nimport { Compat } from '@firebase/util';\nimport { unwrap } from './wrap';\n\nexport class PhoneAuthProvider\n implements compat.PhoneAuthProvider, Compat\n{\n providerId = 'phone';\n readonly _delegate: exp.PhoneAuthProvider;\n\n static PHONE_SIGN_IN_METHOD = exp.PhoneAuthProvider.PHONE_SIGN_IN_METHOD;\n static PROVIDER_ID = exp.PhoneAuthProvider.PROVIDER_ID;\n\n static credential(\n verificationId: string,\n verificationCode: string\n ): compat.AuthCredential {\n return exp.PhoneAuthProvider.credential(verificationId, verificationCode);\n }\n\n constructor() {\n // TODO: remove ts-ignore when moving types from auth-types to auth-compat\n // @ts-ignore\n this._delegate = new exp.PhoneAuthProvider(unwrap(firebase.auth!()));\n }\n\n verifyPhoneNumber(\n phoneInfoOptions:\n | string\n | compat.PhoneSingleFactorInfoOptions\n | compat.PhoneMultiFactorEnrollInfoOptions\n | compat.PhoneMultiFactorSignInInfoOptions,\n applicationVerifier: compat.ApplicationVerifier\n ): Promise {\n return this._delegate.verifyPhoneNumber(\n // The implementation matches but the types are subtly incompatible\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n phoneInfoOptions as any,\n applicationVerifier\n );\n }\n\n unwrap(): exp.PhoneAuthProvider {\n return this._delegate;\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport firebase, { FirebaseApp } from '@firebase/app-compat';\nimport * as exp from '@firebase/auth/internal';\nimport * as compat from '@firebase/auth-types';\nimport { Compat } from '@firebase/util';\n\nconst _assert: typeof exp._assert = exp._assert;\n\nexport class RecaptchaVerifier\n implements compat.RecaptchaVerifier, Compat\n{\n readonly _delegate: exp.RecaptchaVerifier;\n type: string;\n constructor(\n container: HTMLElement | string,\n parameters?: object | null,\n app: FirebaseApp = firebase.app()\n ) {\n // API key is required for web client RPC calls.\n _assert(app.options?.apiKey, exp.AuthErrorCode.INVALID_API_KEY, {\n appName: app.name\n });\n this._delegate = new exp.RecaptchaVerifier(\n // TODO: remove ts-ignore when moving types from auth-types to auth-compat\n // @ts-ignore\n app.auth!(),\n container,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parameters as any\n );\n this.type = this._delegate.type;\n }\n clear(): void {\n this._delegate.clear();\n }\n render(): Promise {\n return this._delegate.render();\n }\n verify(): Promise {\n return this._delegate.verify();\n }\n}\n","/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable camelcase */\n\nimport firebase, { _FirebaseNamespace } from '@firebase/app-compat';\nimport * as impl from '@firebase/auth/internal';\nimport {\n Component,\n ComponentType,\n InstantiationMode\n} from '@firebase/component';\nimport { FirebaseError } from '@firebase/util';\n\nimport * as types from '@firebase/auth-types';\nimport { name, version } from './package.json';\nimport { Auth } from './src/auth';\nimport { PhoneAuthProvider as CompatAuthProvider } from './src/phone_auth_provider';\nimport { RecaptchaVerifier as CompatRecaptchaVerifier } from './src/recaptcha_verifier';\n\nconst AUTH_TYPE = 'auth-compat';\n\ndeclare module '@firebase/component' {\n interface NameServiceMapping {\n 'auth-compat': types.FirebaseAuth;\n }\n}\n\ndeclare module '@firebase/app-compat' {\n interface FirebaseNamespace {\n auth: {\n (app?: FirebaseApp): types.FirebaseAuth;\n Auth: typeof types.FirebaseAuth;\n EmailAuthProvider: typeof types.EmailAuthProvider;\n EmailAuthProvider_Instance: typeof types.EmailAuthProvider_Instance;\n FacebookAuthProvider: typeof types.FacebookAuthProvider;\n FacebookAuthProvider_Instance: typeof types.FacebookAuthProvider_Instance;\n GithubAuthProvider: typeof types.GithubAuthProvider;\n GithubAuthProvider_Instance: typeof types.GithubAuthProvider_Instance;\n GoogleAuthProvider: typeof types.GoogleAuthProvider;\n GoogleAuthProvider_Instance: typeof types.GoogleAuthProvider_Instance;\n OAuthProvider: typeof types.OAuthProvider;\n SAMLAuthProvider: typeof types.SAMLAuthProvider;\n PhoneAuthProvider: typeof types.PhoneAuthProvider;\n PhoneAuthProvider_Instance: typeof types.PhoneAuthProvider_Instance;\n PhoneMultiFactorGenerator: typeof types.PhoneMultiFactorGenerator;\n RecaptchaVerifier: typeof types.RecaptchaVerifier;\n RecaptchaVerifier_Instance: typeof types.RecaptchaVerifier_Instance;\n TwitterAuthProvider: typeof types.TwitterAuthProvider;\n TwitterAuthProvider_Instance: typeof types.TwitterAuthProvider_Instance;\n };\n }\n interface FirebaseApp {\n auth?(): types.FirebaseAuth;\n }\n}\n\n// Create auth components to register with firebase.\n// Provides Auth public APIs.\nfunction registerAuthCompat(instance: _FirebaseNamespace): void {\n instance.INTERNAL.registerComponent(\n new Component(\n AUTH_TYPE,\n container => {\n // getImmediate for FirebaseApp will always succeed\n const app = container.getProvider('app-compat').getImmediate();\n const authProvider = container.getProvider('auth');\n return new Auth(app, authProvider);\n },\n ComponentType.PUBLIC\n )\n .setServiceProps({\n ActionCodeInfo: {\n Operation: {\n EMAIL_SIGNIN: impl.ActionCodeOperation.EMAIL_SIGNIN,\n PASSWORD_RESET: impl.ActionCodeOperation.PASSWORD_RESET,\n RECOVER_EMAIL: impl.ActionCodeOperation.RECOVER_EMAIL,\n REVERT_SECOND_FACTOR_ADDITION:\n impl.ActionCodeOperation.REVERT_SECOND_FACTOR_ADDITION,\n VERIFY_AND_CHANGE_EMAIL:\n impl.ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL,\n VERIFY_EMAIL: impl.ActionCodeOperation.VERIFY_EMAIL\n }\n },\n EmailAuthProvider: impl.EmailAuthProvider,\n FacebookAuthProvider: impl.FacebookAuthProvider,\n GithubAuthProvider: impl.GithubAuthProvider,\n GoogleAuthProvider: impl.GoogleAuthProvider,\n OAuthProvider: impl.OAuthProvider,\n SAMLAuthProvider: impl.SAMLAuthProvider,\n PhoneAuthProvider: CompatAuthProvider,\n PhoneMultiFactorGenerator: impl.PhoneMultiFactorGenerator,\n RecaptchaVerifier: CompatRecaptchaVerifier,\n TwitterAuthProvider: impl.TwitterAuthProvider,\n Auth,\n AuthCredential: impl.AuthCredential,\n Error: FirebaseError\n })\n .setInstantiationMode(InstantiationMode.LAZY)\n .setMultipleInstances(false)\n );\n\n instance.registerVersion(name, version);\n}\n\nregisterAuthCompat(firebase as _FirebaseNamespace);\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { warning, invariant, parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on
,\n * useSubmit(), , etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\";\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport interface Submission {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n}\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise | DataFunctionValue;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise | DataFunctionValue;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n formData?: Submission[\"formData\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n const starParam = params[star];\n\n // Apply the splat\n return starParam;\n }\n\n const keyMatch = segment.match(/^:(\\w+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n\n if (optional === \"?\") {\n return param == null ? \"\" : param;\n }\n\n if (param == null) {\n invariant(false, `Missing \":${key}\" param`);\n }\n\n return param;\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, null, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n if (error) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n DataResult,\n DeferredData,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n DetectErrorBoundaryFunction,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n ShouldRevalidateFunction,\n RouteManifest,\n ImmutableRouteKey,\n ActionFunction,\n LoaderFunction,\n V7_MutationFormMethod,\n V7_FormMethod,\n HTMLFormMethod,\n MutationFormMethod,\n MapRoutePropertiesFunction,\n} from \"./utils\";\nimport {\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterNavigateOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key?: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key?: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_normalizeFormMethod: boolean;\n v7_prependBasename: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\ntype BaseNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n fromRouteId?: string;\n};\n\n/**\n * Options for a navigate() call for a Link navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a Form navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n formData: FormData;\n};\n\n/**\n * Options to pass to navigate() for either a Link or Form navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions =\n | Omit\n | Omit;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: FormMethod | V7_FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Loading: {\n state: \"loading\";\n formMethod: FormMethod | V7_FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_normalizeFormMethod: false,\n v7_prependBasename: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n !initialMatches.some((m) => m.route.lazy) &&\n // And we have to either have no loaders or have been provided hydrationData\n (!initialMatches.some((m) => m.route.loader) || init.hydrationData != null);\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(router.state.blockers) });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(newState: Partial): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n for (let [key] of blockerFunctions) {\n deleteBlocker(key);\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n updateState({\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers: new Map(state.blockers),\n });\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(state.blockers) });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change and not a mutation submission.\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\".\n // For example, on /page#hash and submit a which will\n // default to a navigation to /page\n if (\n state.initialized &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n ...opts.submission,\n };\n loadingNavigation = navigation;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts?: { replace?: boolean }\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n ...submission,\n };\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n if (!loadingNavigation) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n };\n loadingNavigation = navigation;\n }\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission || fetcherSubmission\n ? submission || fetcherSubmission\n : loadingNavigation.formMethod &&\n loadingNavigation.formAction &&\n loadingNavigation.formData &&\n loadingNavigation.formEncType\n ? {\n formMethod: loadingNavigation.formMethod,\n formAction: loadingNavigation.formAction,\n formData: loadingNavigation.formData,\n formEncType: loadingNavigation.formEncType,\n }\n : undefined;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach((rf) => {\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n await startRedirectNavigation(state, redirect, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getFetcher(key: string): Fetcher {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath })\n );\n return;\n }\n\n let { path, submission } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n ...submission,\n data: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n submission,\n isFetchActionRedirect: true,\n });\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: actionResult.data,\n ...submission,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n ...(didAbortFetchLoads ? { fetchers: new Map(state.fetchers) } : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n // Check if this an absolute external redirect that goes to a new origin\n if (\n ABSOLUTE_URL_REGEX.test(redirect.location) &&\n isBrowser &&\n typeof window?.location !== \"undefined\"\n ) {\n let url = init.history.createURL(redirect.location);\n let isDifferentBasename = stripBasename(url.pathname, basename) == null;\n\n if (window.location.origin !== url.origin || isDifferentBasename) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType, formData } = state.navigation;\n if (!submission && formMethod && formAction && formData && formEncType) {\n submission = {\n formMethod,\n formAction,\n formEncType,\n formData,\n };\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n submission &&\n isMutationMethod(submission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...submission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else if (isFetchActionRedirect) {\n // For a fetch action redirect, we kick off a new loading navigation\n // without the fetcher submission, but we send it along for shouldRevalidate\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n },\n fetcherSubmission: submission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: submission ? submission.formMethod : undefined,\n formAction: submission ? submission.formAction : undefined,\n formEncType: submission ? submission.formEncType : undefined,\n formData: submission ? submission.formData : undefined,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n state.blockers.set(key, newBlocker);\n updateState({ blockers: new Map(state.blockers) });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || ((location) => location.key);\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n true,\n isRouteRequest,\n requestContext\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n true,\n isRouteRequest,\n requestContext\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return opts != null && \"formData\" in opts;\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId != null && relative !== \"path\") {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route. When using relative:path,\n // fromRouteId is ignored since that is always relative to the current\n // location path\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getPathContributingMatches(contextualMatches).map((m) => m.pathnameBase),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: RouterNavigateOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n // Create a Submission on non-GET navigations\n let submission: Submission | undefined;\n if (opts.formData) {\n let formMethod = opts.formMethod || \"get\";\n submission = {\n formMethod: normalizeFormMethod\n ? (formMethod.toUpperCase() as V7_FormMethod)\n : (formMethod.toLowerCase() as FormMethod),\n formAction: stripHashFromPath(path),\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData: opts.formData,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n let searchParams = convertFormDataToSearchParams(opts.formData);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n fetchLoadMatches: Map,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (match.route.loader == null) {\n return false;\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate if fetcher won't be present in the subsequent render\n if (!matches.some((m) => m.route.id === f.routeId)) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // hit a static href, so they _always_ check shouldRevalidate and the\n // default is strictly if a revalidation is explicitly required (action\n // submissions, useRevalidator, X-Remix-Revalidate).\n let shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n defaultShouldRevalidate: isRevalidationRequired,\n });\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: Parameters[0]\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n isStaticRequest: boolean = false,\n isRouteRequest: boolean = false,\n requestContext?: unknown\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({ request, params: match.params, context: requestContext }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let values = await Promise.all([\n runHandler(handler),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location\n );\n } else if (!isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType, formData } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n init.body =\n formEncType === \"application/x-www-form-urlencoded\"\n ? convertFormDataToSearchParams(formData)\n : formData;\n }\n\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, value instanceof File ? value.name : value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponse(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n History,\n Location,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n LazyRouteFunction,\n} from \"@remix-run/router\";\nimport type { Action as NavigationType } from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n DataRouteMatch,\n} from \"./context\";\nimport {\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n AwaitContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement: React.ReactNode | null = null;\n if (dataRouterState) {\n errorElement = match.route.errorElement || defaultErrorElement;\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n };\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches() {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () =>\n matches.map((match) => {\n let { pathname, params } = match;\n // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id] as unknown,\n handle: match.route.handle as unknown,\n };\n }),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey] = React.useState(() => String(++blockerId));\n\n let blockerFunction = React.useCallback(\n (args) => {\n return typeof shouldBlock === \"function\"\n ? !!shouldBlock(args)\n : !!shouldBlock;\n },\n [shouldBlock]\n );\n\n let blocker = router.getBlocker(blockerKey, blockerFunction);\n\n // Cleanup on unmount\n React.useEffect(\n () => () => router.deleteBlocker(blockerKey),\n [router, blockerKey]\n );\n\n // Prefer the blocker from state since DataRouterContext is memoized so this\n // ensures we update on blocker state updates\n return state.blockers.get(blockerKey) || blocker;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import * as React from \"react\";\nimport type {\n TrackedPromise,\n InitialEntry,\n Location,\n MemoryHistory,\n Router as RemixRouter,\n To,\n LazyRouteFunction,\n RelativeRoutingType,\n RouterState,\n} from \"@remix-run/router\";\nimport {\n Action as NavigationType,\n AbortedDeferredError,\n createMemoryHistory,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n RouteMatch,\n RouteObject,\n Navigator,\n NonIndexRouteObject,\n} from \"./context\";\nimport {\n LocationContext,\n NavigationContext,\n DataRouterContext,\n DataRouterStateContext,\n AwaitContext,\n RouteContext,\n} from \"./context\";\nimport {\n useAsyncValue,\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n useRoutesImpl,\n useLocation,\n} from \"./hooks\";\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n}: RouterProviderProps): React.ReactElement {\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n let [state, setState] = React.useState(router.state);\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a