{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/react/index.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/prop-types/index.js","../node_modules/@mui/system/esm/style.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@mui/material/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@mui/material/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.browser.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@mui/system/esm/propsToClassKey.js","../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/system/esm/createStyled.js","../node_modules/@mui/material/styles/styled.js","../../modules/createNamedContext.js","../../modules/HistoryContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.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/@mui/system/esm/useThemeProps/getThemeProps.js","../node_modules/@mui/utils/esm/resolveProps.js","../node_modules/@mui/material/styles/useThemeProps.js","../node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","../node_modules/@mui/system/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@emotion/react/dist/emotion-element-cbed451f.browser.esm.js","../node_modules/@mui/system/esm/breakpoints.js","../node_modules/@mui/system/esm/spacing.js","../node_modules/@mui/system/esm/memoize.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/@mui/system/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@mui/system/esm/merge.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/react-dom/index.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../source/constants.js","../../source/ParseError.js","../../../source/tools/semver-compare.js","../../source/metadata.js","../../../source/helpers/extension/createExtensionPattern.js","../../../source/helpers/isViablePhoneNumber.js","../../../source/helpers/extension/extractExtension.js","../../../source/helpers/parseDigits.js","../../source/parseIncompletePhoneNumber.js","../../../source/helpers/checkNumberLength.js","../../../source/helpers/mergeArrays.js","../../source/isPossibleNumber_.js","../../../source/helpers/matchesEntirely.js","../../../source/helpers/getNumberType.js","../../../source/helpers/applyInternationalSeparatorStyle.js","../../../source/helpers/formatNationalNumberUsingFormat.js","../../../source/helpers/getIddPrefix.js","../../source/format_.js","../../../source/helpers/RFC3966.js","../../source/PhoneNumber.js","../../source/validate_.js","../../../source/helpers/stripIddPrefix.js","../../../source/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","../../../source/helpers/extractNationalNumber.js","../../../source/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","../../../source/helpers/extractCountryCallingCode.js","../../../source/helpers/getCountryByCallingCode.js","../../source/parse_.js","../../source/parsePhoneNumber_.js","../../source/parsePhoneNumber.js","../../source/parsePhoneNumberFromString_.js","../../source/parsePhoneNumberFromString.js","../../source/getCountries.js","../../source/PropTypes.js","../../source/helpers.js","../../source/closeBraces.js","../../source/format.js","../../source/templateFormatter.js","../../source/dom.js","../../source/inputControl.js","../../source/parse.js","../../source/edit.js","../../../source/react/Input.js","../../source/AsYouTypeState.js","../../source/AsYouTypeFormatter.util.js","../../source/AsYouTypeFormatter.complete.js","../../source/AsYouTypeFormatter.PatternMatcher.js","../../source/AsYouTypeFormatter.js","../../source/AsYouTypeParser.js","../../source/AsYouType.js","../../../source/helpers/inputValuePrefix.js","../../source/InputSmart.js","../../source/InputBasic.js","../../source/formatIncompletePhoneNumber.js","../../source/unicode.js","../../source/CountrySelect.js","../../source/Flag.js","../../source/InternationalIcon.js","../../../source/helpers/countries.js","../../source/CountryIcon.js","../../../source/helpers/getInternationalPhoneNumberPrefix.js","../../../source/helpers/phoneInputHelpers.js","../../source/PhoneInputWithCountry.js","../../../source/helpers/getPhoneInputWithCountryStateUpdateFromNewProps.js","../../source/PhoneInputWithCountryDefault.js","../node_modules/react-phone-number-input/min/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/react-select/dist/index-d8fed9ee.esm.js","../node_modules/react-select/dist/useStateManager-18181353.esm.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/react-select/dist/Select-8612393a.esm.js","../node_modules/react-select/dist/react-select.esm.js","../node_modules/classnames/index.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/utils/esm/useEventCallback.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@mui/utils/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/material/colors/common.js","../node_modules/@mui/material/colors/grey.js","../node_modules/@mui/material/colors/purple.js","../node_modules/@mui/material/colors/red.js","../node_modules/@mui/material/colors/orange.js","../node_modules/@mui/material/colors/blue.js","../node_modules/@mui/material/colors/lightBlue.js","../node_modules/@mui/material/colors/green.js","../node_modules/@mui/material/styles/createPalette.js","../node_modules/@mui/material/styles/createTypography.js","../node_modules/@mui/material/styles/shadows.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/utils/esm/useForkRef.js","../node_modules/@mui/material/node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/@mui/icons-material/ExpandMore.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../../src/Enum.js","../../src/Utility.js","../../src/Tokenizer.js","../../src/Parser.js","../../src/Prefixer.js","../../src/Serializer.js","../../src/Middleware.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/utils/esm/useControlled.js","../node_modules/@mui/utils/esm/useIsFocusVisible.js","../node_modules/@mui/material/utils/useIsFocusVisible.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/Accordion/AccordionContext.js","../node_modules/@mui/system/esm/compose.js","../node_modules/@mui/system/esm/borders.js","../node_modules/@mui/system/esm/display.js","../node_modules/@mui/system/esm/flexbox.js","../node_modules/@mui/system/esm/grid.js","../node_modules/@mui/system/esm/positions.js","../node_modules/@mui/system/esm/palette.js","../node_modules/@mui/system/esm/shadows.js","../node_modules/@mui/system/esm/sizing.js","../node_modules/@mui/system/esm/typography.js","../node_modules/@mui/system/esm/getThemeValue.js","../node_modules/@mui/material/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@mui/material/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@mui/utils/esm/formatMuiErrorMessage.js","../node_modules/object-assign/index.js","../node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js","../node_modules/path-to-regexp/index.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/@mui/utils/esm/setRef.js","../node_modules/react-is/index.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/@mui/material/utils/createChainedFunction.js","../node_modules/@mui/utils/esm/createChainedFunction.js","../node_modules/@mui/material/SvgIcon/svgIconClasses.js","../node_modules/@mui/material/SvgIcon/SvgIcon.js","../node_modules/@mui/material/utils/createSvgIcon.js","../node_modules/@mui/material/utils/debounce.js","../node_modules/@mui/utils/esm/debounce.js","../node_modules/@mui/material/utils/deprecatedPropType.js","../node_modules/@mui/utils/esm/deprecatedPropType.js","../node_modules/@mui/material/utils/isMuiElement.js","../node_modules/@mui/utils/esm/isMuiElement.js","../node_modules/@mui/utils/esm/ownerDocument.js","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/utils/esm/ownerWindow.js","../node_modules/@mui/material/utils/requirePropFactory.js","../node_modules/@mui/utils/esm/requirePropFactory.js","../node_modules/@mui/material/utils/setRef.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/utils/esm/useId.js","../node_modules/@mui/material/utils/useId.js","../node_modules/@mui/material/utils/unsupportedProp.js","../node_modules/@mui/utils/esm/unsupportedProp.js","../node_modules/@mui/material/utils/index.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@mui/base/className/ClassNameGenerator.js","../node_modules/@mui/utils/esm/useEnhancedEffect.js","../node_modules/react-filepond/dist/react-filepond.js","../node_modules/@mui/private-theming/useTheme/ThemeContext.js","../node_modules/@mui/private-theming/useTheme/useTheme.js","../node_modules/@mui/system/esm/useThemeWithoutDefault.js","../node_modules/@mui/system/esm/useTheme.js","../node_modules/@mui/utils/esm/capitalize.js","../node_modules/@mui/utils/esm/deepmerge.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/webpack/buildin/global.js","../node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/@mui/material/node_modules/react-is/index.js","../node_modules/@mui/material/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/@mui/icons-material/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@mui/icons-material/utils/createSvgIcon.js","../node_modules/filepond/dist/filepond.js","../node_modules/@mui/base/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/base/composeClasses/composeClasses.js","../node_modules/@mui/base/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/system/esm/colorManipulator.js","../node_modules/@mui/material/node_modules/react-transition-group/esm/config.js","../node_modules/@mui/material/node_modules/react-transition-group/esm/Transition.js","../node_modules/@mui/material/transitions/utils.js","../node_modules/@mui/material/Collapse/collapseClasses.js","../node_modules/@mui/material/Collapse/Collapse.js","../node_modules/@mui/material/styles/useTheme.js","../node_modules/@mui/material/Paper/paperClasses.js","../node_modules/@mui/material/Paper/Paper.js","../node_modules/@mui/material/Accordion/accordionClasses.js","../node_modules/@mui/material/Accordion/Accordion.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@mui/material/node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/@mui/material/node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@mui/material/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@mui/material/ButtonBase/Ripple.js","../node_modules/@mui/material/ButtonBase/touchRippleClasses.js","../node_modules/@mui/material/ButtonBase/TouchRipple.js","../node_modules/@mui/material/ButtonBase/buttonBaseClasses.js","../node_modules/@mui/material/ButtonBase/ButtonBase.js","../node_modules/@mui/material/AccordionSummary/accordionSummaryClasses.js","../node_modules/@mui/material/AccordionSummary/AccordionSummary.js","../node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/@mui/material/Typography/typographyClasses.js","../node_modules/@mui/material/Typography/Typography.js","../node_modules/@mui/material/AccordionDetails/accordionDetailsClasses.js","../node_modules/@mui/material/AccordionDetails/AccordionDetails.js"],"names":["module","exports","require","_slicedToArray","arr","i","arrayWithHoles","_i","Symbol","iterator","_s","_e","_arr","_n","_d","call","next","done","push","value","length","err","unsupportedIterableToArray","nonIterableRest","React","Component","HashRouter","history","createHistory","render","this","children","props","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","C","forwardRef","LinkAnchor","innerRef","navigate","onClick","rest","target","event","ex","isModifiedEvent","forwardedRef","Link","component","replace","RouterContext","context","location","href","isDuplicateNavigation","createPath","method","ariaCurrent","activeClassName","activeStyle","classNameProp","className","exact","isActiveProp","isActive","locationProp","sensitive","strict","styleProp","style","toLocation","path","escapedPath","match","matchPath","classnames","joinClassnames","getPath","obj","vars","val","split","reduce","acc","item","getValue","themeMapping","transform","propValueFinal","userValue","Array","isArray","options","prop","cssProperty","themeKey","fn","propValue","theme","handleBreakpoints","capitalize","propTypes","filterProps","_extends","Object","assign","arguments","source","key","prototype","hasOwnProperty","apply","jsx","type","args","createElement","undefined","argsLength","createElementArgArray","Emotion","createEmotionProps","useLayoutEffect","css","_len","_key","serializeStyles","keyframes","insertable","name","styles","anim","toString","len","cls","arg","toAdd","k","merge","registered","registeredStyles","rawClassName","getRegisteredStyles","Insertion","_ref","cache","serializedArr","useInsertionEffectMaybe","insertStyles","ClassNames","withEmotionCache","serialized","registerStyles","content","cx","_len2","_key2","useContext","ThemeContext","ele","Fragment","_defineProperty","defineProperty","enumerable","configurable","writable","_objectWithoutPropertiesLoose","excluded","sourceKeys","keys","indexOf","toVal","mix","y","str","tmp","x","reactPropsRegex","isPropValid","memoize","test","charCodeAt","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","tag","composeShouldForwardProps","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","propName","useInsertionEffect","create","isStringTag","createStyled","identifierName","targetClassName","__emotion_real","baseTag","__emotion_base","label","defaultShouldForwardProp","shouldUseAs","__emotion_styles","slice","raw","process","Styled","ref","FinalTag","as","classInterpolations","mergedProps","concat","finalShouldForwardProp","newProps","displayName","defaultProps","withComponent","nextTag","nextOptions","newStyled","bind","forEach","tagName","styled","emStyled","_excluded","isEmpty","string","propsToClassKey","variant","other","classKey","sort","objectsHaveSameKeys","objects","allKeys","object","union","Set","every","size","callIfFn","maybeFn","styleFunctionSx","styleFunctionMapping","defaultStyleFunctionMapping","propToStyleFunction","styleFnName","getThemeValue","inputProps","styleFunction","sx","traverse","sxInput","sxObject","emptyBreakpoints","createEmptyBreakpointObject","breakpoints","breakpointsKeys","styleKey","breakpointsValues","removeUnusedBreakpoints","map","unstable_createStyleFunctionSx","_excluded2","_excluded3","getStyleOverrides","components","styleOverrides","getVariantStyles","variants","variantsStyles","definition","variantsResolver","_theme$components","_theme$components$nam","ownerState","themeVariants","themeVariant","isMatch","systemDefaultTheme","createTheme","input","defaultTheme","rootShouldForwardProp","slotShouldForwardProp","defaultStyleFunctionSx","inputOptions","componentName","componentSlot","slot","inputSkipVariantsResolver","skipVariantsResolver","inputSkipSx","skipSx","overridesResolver","shouldForwardPropOption","defaultStyledResolver","styledEngineStyled","muiStyledResolver","styleArg","expressions","expressionsWithDefaultTheme","stylesArg","themeInput","transformedStyleArg","resolvedStyleOverrides","entries","slotKey","slotStyle","numOfCustomFnsApplied","placeholders","fill","_ref2","withConfig","createNamedContext","createContext","historyContext","Router","computeRootMatch","url","params","isExact","pathname","componentDidMount","_pendingLocation","componentWillUnmount","state","staticContext","HistoryContext","cacheCount","matched","cacheKey","pathCache","result","regexp","pathToRegexp","compilePath","end","values","memo","Route","isEmptyChildren","addLeadingSlash","stripBasename","basename","base","createURL","staticHandler","methodName","invariant","noop","Switch","child","element","computedMatch","useHistory","useLocation","useParams","_toConsumableArray","arrayLikeToArray","iterableToArray","TypeError","getThemeProps","output","resolveProps","useThemeProps","useTheme","systemUseThemeProps","EmotionCacheContext","HTMLElement","createCache","CacheProvider","Provider","func","typePropName","cssProp","WrappedComponent","xs","sm","md","lg","xl","defaultBreakpoints","up","styleFromPropValue","themeBreakpoints","index","breakpoint","cssKey","_breakpointsInput$key","breakpointsInput","breakpointsInOrder","breakpointKeys","breakpointOutput","properties","m","p","directions","t","r","b","l","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","a","property","direction","dir","marginKeys","paddingKeys","spacingKeys","createUnaryUnit","defaultValue","_getPath","themeSpacing","abs","createUnarySpacing","transformer","transformed","Math","resolveCssProperty","cssProperties","getStyleFromPropValue","margin","padding","spacing","classNames","inserted","current","insert","sheet","isAbsolute","charAt","spliceOne","list","n","pop","resolvePathname","from","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","last","part","unshift","join","substr","valueOf","valueEqual","aValue","bValue","stripLeadingSlash","prefix","toLowerCase","hasBasename","stripTrailingSlash","search","hash","hashIndex","searchIndex","parsePath","decodeURI","e","URIError","locationsAreEqual","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","appendListener","listener","filter","notifyListeners","canUseDOM","window","document","getConfirmation","message","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","navigator","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","createKey","random","transitionManager","setState","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toIndex","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","min","max","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entry","nextIndex","nextEntries","splice","canGo","_inheritsLoose","subClass","superClass","constructor","condition","Error","deepmerge","clone","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","error","murmur2","h","unitlessKeys","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p1","p2","cursor","unitless","handleInterpolation","interpolation","interpolated","createStringFromObject","previousCursor","cached","labelPattern","stringMode","strings","lastIndex","exec","hashString","VALID_DIGITS","VALID_PUNCTUATION","ParseError","pa","pb","na","Number","nb","isNaN","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","metadata","is_object","type_of","validateMetadata","setVersion","_","countryCode","countries","v1","nonGeographic","country","getCountryMetadata","callingCode","getCountryCodesForCallingCode","countryCodes","countryCallingCodes","selectNumberingPlan","hasCountry","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","numberingPlan","globalMetadataObject","v2","formats","_getFormats","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","_getNationalPrefixIsOptionalWhenFormatting","types","hasTypes","getType","Type","_format","usesNationalPrefix","nationalPrefixFormattingRule","FIRST_GROUP_ONLY_PREFIX_PATTERN","getCountryCallingCode","isSupportedCountry","version","compare","getExtensionDigitsPattern","maxLength","createExtensionPattern","purpose","optionalExtnSuffix","rfcExtn","possibleSeparatorsBetweenNumberAndExtLabel","possibleSeparatorsNumberExtLabelNoComma","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","RegExp","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","isViablePhoneNumber","number","EXTN_PATTERN","DIGITS","parseDigit","character","parseDigits","digit","parseIncompletePhoneNumber","parsePhoneNumberCharacter","prevParsedCharacters","checkNumberLength","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","mobile_type","merged","mergeArrays","actual_length","minimum_length","isPossibleNumber","matchesEntirely","text","regular_expression","NON_FIXED_LINE_PHONE_TYPES","getNumberType","isNumberTypeEqualTo","applyInternationalSeparatorStyle","formattedNumber","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","useInternationalFormat","withNationalPrefix","carrierCode","format","SINGLE_IDD_PREFIX_REG_EXP","DEFAULT_OPTIONS","formatExtension","formatNumber","countryCallingCode","addExtension","formatNationalNumber","ext","formatRFC3966","fromCountry","iddPrefix","countryMetadata","getIddPrefix","formatIDD","formatAs","availableFormats","nationalNnumber","lastLeadingDigitsPattern","chooseFormatForNumber","PhoneNumber","_metadata","isCountryCode","phoneNumber","CAPTURING_DIGIT_PATTERN","stripIddPrefix","IDDPrefixPattern","matchedGroups","extractNationalNumberFromPossiblyIncompleteNumber","prefixPattern","prefixMatch","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","possiblePositionOfTheFirstCapturedGroup","nationalPrefix","extractNationalNumber","nationalSignificantNumber","shouldExtractNationalPrefix","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","possibleShorterNumber","possibleShorterNationalNumber","numberWithoutIDD","shorterNumber","getCountryByCallingCode","nationalPhoneNumber","possibleCountries","phone","selectCountryFromList","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","extract","parseRFC3966","throwOnError","startsAt","extractFormattedPhoneNumber","isViablePhoneNumberStart","withExtensionStripped","start","numberWithoutExtension","matches","extractExtension","parseInput","formattedPhoneNumber","extractCountryCallingCode","defaultCountry","defaultCallingCode","exactCountry","parsePhoneNumber","valid","possible","parseNumber","normalizeArguments","arg_1","arg_2","arg_3","arg_4","isObject","parsePhoneNumberFromString","parsePhoneNumberFromString_","getCountries","country_calling_codes","PropTypes","isRequired","labels","count_occurences","symbol","count","closeBraces","retained_template","template","placeholder","empty_placeholder","cut_before","opening_braces","closing_braces","dangling_braces","formatter","should_close_braces","characters_in_template","value_character_index","filled_in_template","close_braces","template_formatter","caret","found","possibly_last_input_character_index","isReadOnly","getSelection","selectionEnd","Keys","setCaretPosition","caret_position","ANDROID_USER_AGENT_REG_EXP","isAndroid","setTimeout","operation","getOperation","selection","eraseSelection","formatInputText","_parse","on_change","focused_input_character_index","parse_character","parse","newValueAndCaret","edit","formatted","InputComponent","inputComponent","onChange","onKeyDown","internalRef","useRef","setRef","useCallback","_onChange","_onKeyDown","onInputKeyDown","isEmptyValue","Input","onCut","onPaste","AsYouTypeState","onCountryChange","onCallingCodeChange","nextDigits","digits","IDDPrefix","DIGIT_PLACEHOLDER","DIGIT_PLACEHOLDER_MATCHER","repeat","times","cutAndStripNonPairedParens","cutBeforeIndex","cleared_string","stripNonPairedParens","formatCompleteNumber","shouldTryNationalPrefixFormattingRule","getSeparatorAfterNationalPrefix","matcher","useNationalPrefixFormattingRule","formatNationalNumberWithAndWithoutNationalPrefixFormattingRule","formattedNationalNumber","isValidFormattedNationalNumber","PatternMatcher","PatternParser","allowOverflow","tree","characters","overflow","characterString","matchedChars","partialMatch","restCharacters","JSON","char","OPERATOR","ILLEGAL_CHARACTER_REGEXP","pattern","or","instructions","branches","op","operator","before","rightPart","getContext","oneOfSet","parseOneOfSet","prevValue","nextValue","String","LONGEST_DUMMY_PHONE_NUMBER","NATIONAL_PREFIX_SEPARATORS_PATTERN","CREATE_CHARACTER_CLASS_PATTERN","CREATE_STANDALONE_DIGIT_PATTERN","NON_ALTERING_FORMAT_REG_EXP","AsYouTypeFormatter","international","formattedCompleteNumber","formatNationalNumberWithNextDigits","previouslyChosenFormat","newlyChosenFormat","chooseFormat","formatNextNationalNumberDigits","leadingDigits","leadingDigitsPatternIndex","matchingFormats","chosenFormat","leadingDigitsPatternsCount","leadingDigitsPattern","getTemplateForFormat","missingPlus","internationalPrefix","getInternationalPrefixBeforeCountryCallingCode","complexPrefixBeforeNationalSignificantNumber","strictPattern","nationalNumberDummyDigits","numberFormat","getFormatFormat","numberFormatWithNationalPrefix","nationalPrefixIncludedInTemplate","position","populateTemplateWithDigits","populatedNationalNumberTemplatePosition","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN","VALID_FORMATTED_PHONE_NUMBER_PART","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","COMPLEX_NATIONAL_PREFIX","AsYouTypeParser","onNationalSignificantNumberChange","extractedNumber","hasPlus","_extractFormattedDigitsAndPlus","formattedDigits","extractFormattedDigitsAndPlus","justLeadingPlus","hasReceivedThreeLeadingDigits","isWaitingForCountryCallingCode","nationalPrefixForParsing","nationalDigits","prevNationalSignificantNumber","extractNationalSignificantNumber","nationalSignificantNumberIndex","nationalSignificantNumberMatchesInput","extractAnotherNationalSignificantNumber","extractIddPrefix","fixMissingPlus","newCallingCode","AsYouType","getCountryAndCallingCode","optionsOrDefaultCountry","parser","reExtractNationalSignificantNumber","getFullNumber","isInternational","getTemplate","getInputValuePrefix","withCountryCallingCode","removeInputValuePrefix","createInput","defaultMetadata","InputSmart","newValue","newValueFormatted","InputBasic","formatIncompletePhoneNumber","getRegionalIndicatorSymbol","letter","CountrySelect","onChange_","useMemo","getSelectedOption","divider","disabled","DIVIDER_STYLE","bool","fontSize","backgroundColor","color","CountrySelectWithIcon","Icon","iconComponent","Arrow","getIconAspectRatio","arrowComponent","unicodeFlags","selectedOption","aspectRatio","option","countryName","flags","flagUrl","title","alt","role","src","InternationalIcon3x2","xmlns","viewBox","stroke","strokeLinecap","d","x1","y1","x2","y2","InternationalIcon1x1","isCountrySupportedWithError","getSupportedCountries","createCountryIconComponent","FlagComponent","flagComponent","InternationalIcon","internationalIcon","_aspectRatio","CountryIcon","DefaultInternationalIcon","ONLY_DIGITS_REGEXP","getInternationalPhoneNumberPrefix","parsePhoneNumber_","getPhoneDigitsForNewCountry","phoneDigits","prevCountry","newCountry","useNationalFormat","countryCallingCodePrefix","country_calling_code","stripCountryCallingCode","newCountryPrefix","e164","asYouType","partial_national_significant_number","getNationalSignificantNumberDigits","trimNumber","nationalSignificantNumberPart","overflowDigitsCount","getMaxNumberLength","getCountryForPartialE164Number","partialE164Number","required","derived_country","getCountryFromPossiblyIncompleteInternationalPhoneNumber","couldNumberBelongToCountry","convertInternationalPhoneDigitsToNational","compareStrings","locales","intlPhoneNumberPrefix","getInitialPhoneDigits","generateNationalNumberDigits","PhoneNumberInput_","focusInputOnCountrySelection","newPhoneDigits","hasUserSelectedACountry","addInternationalOption","limitMaxLength","countryCallingCodeEditable","prevPhoneDigits","countryRequired","getAnyCountry","onPhoneDigitsChange","_phoneDigits","stateUpdate","isFocused","onFocus","onBlur","countrySelectProps","displayInitialValueAsLocalNumber","initialValueFormat","preSelectedCountry","getPreSelectedCountry","prevProps","newDefaultCountry","newReset","prevDefaultCountry","prevReset","_getInitialPhoneDigits","parameters","isNewDefaultCountrySupported","noValueHasBeenEnteredByTheUser","supportedCountries","parsedCountry","hasUserSelectedACountryUpdate","getPhoneInputWithCountryStateUpdateFromNewProps","selectedCountry","prevState","generator","dependencies","countryOptionsOrder","optionsOnTop","optionsOnBottom","appendTo","sortCountryOptions","countryNames","compareStringsLocales","_compareStrings","countrySelectOptions","ZZ","getCountrySelectOptions","countryOptions","getSupportedCountryOptions","countrySelectOptionsMemoDependencies","areEqualArrays","countrySelectOptionsMemo","readOnly","autoComplete","numberInputProps","smartCaret","CountrySelectComponent","ContainerComponent","PureComponent","PhoneNumberInput","inputRef","labelsPropType","countrySelectComponent","containerComponent","metadataPropType","reset","createPhoneInput","PhoneInputDefault","_objectWithoutProperties","objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_typeof","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_inherits","setPrototypeOf","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","_getPrototypeOf","o","getPrototypeOf","__proto__","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","Super","NewTarget","_excluded$3","applyPrefixToName","trim","cleanValue","cleanCommonProps","clearValue","getStyles","hasValue","isMulti","isRtl","selectOption","selectProps","setValue","isDocumentElement","el","documentElement","body","getScrollTop","pageYOffset","scrollTop","scrollTo","top","easeOutCubic","c","animatedScrollTo","duration","change","increment","currentTime","animateScroll","requestAnimationFrame","isTouchCapable","createEvent","passiveOptionAccessed","passive","w","supportsPassiveEvents","notNullish","valueTernary","multiValue","singleValue","getMenuPlacement","maxHeight","menuEl","minHeight","placement","shouldScroll","isFixedPosition","scrollParent","getComputedStyle","excludeStaticParent","overflowRx","parent","parentElement","overflowY","overflowX","getScrollParent","defaultState","offsetParent","scrollHeight","getBoundingClientRect","height","_menuEl$getBoundingCl","menuBottom","bottom","menuHeight","menuTop","containerTop","viewHeight","innerHeight","marginBottom","parseInt","marginTop","viewSpaceAbove","viewSpaceBelow","scrollSpaceAbove","scrollSpaceBelow","scrollDown","scrollUp","scrollDuration","_constrainedHeight","spaceAbove","controlHeight","_constrainedHeight2","coercePlacement","PortalPlacementContext","getPortalPlacement","MenuPlacer","_Component","_super","_this","maxMenuHeight","getPlacement","_this$props","minMenuHeight","menuPlacement","menuPosition","menuShouldScrollIntoView","getUpdatedProps","placerProps","contextType","noticeCSS","_ref5","_ref5$theme","baseUnit","colors","neutral40","textAlign","noOptionsMessageCSS","loadingMessageCSS","NoOptionsMessage","innerProps","LoadingMessage","_templateObject","MenuPortal","_Component2","_super2","_this2","_ref7","_this$props2","controlElement","isFixed","rect","left","right","width","getBoundingClientObj","scrollDistance","offset","menuWrapper","createPortal","_excluded$2","Svg","focusable","CrossIcon","DownChevron","baseCSS","_ref3","_ref3$theme","neutral60","neutral20","display","transition","neutral80","dropdownIndicatorCSS","clearIndicatorCSS","loadingDotAnimations","_taggedTemplateLiteral","LoadingDot","_ref6","delay","css$2","animation","borderRadius","marginLeft","verticalAlign","LoadingIndicator","indicator","_excluded$1","spacingStyle","gridArea","font","minWidth","border","outline","containerStyle","gridTemplateColumns","visibility","whiteSpace","inputStyle","isHidden","background","MultiValueGeneric","_ref4","ClearIndicator","Control","isDisabled","menuIsOpen","control","DropdownIndicator","Group","Heading","headingProps","group","GroupHeading","_cleanCommonProps","data","IndicatorsContainer","indicators","IndicatorSeparator","inputClassName","Menu","menu","MenuList","MultiValue","removeProps","Container","Label","Remove","emotionCx","MultiValueContainer","MultiValueLabel","MultiValueRemove","Option","isSelected","Placeholder","SelectContainer","SingleValue","ValueContainer","safeIsNaN","areInputsEqual","newInputs","lastInputs","first","second","memoizeOne","resultFn","isEqual","lastThis","lastResult","lastArgs","calledOnce","newArgs","A11yText","defaultAriaLiveMessages","guidance","isSearchable","tabSelectsValue","_props$label","focused","_props$label2","selectValue","getArrayIndex","status","onFilter","inputValue","resultsMessage","LiveRegion","ariaSelection","focusedOption","focusedValue","focusableOptions","id","ariaLiveMessages","getOptionLabel","isOptionDisabled","screenReaderStatus","ariaLabel","ariaLive","messages","ariaSelected","selectedOptions","removedValue","removedValues","selected","multiSelected","onChangeProps","ariaFocused","focusMsg","includes","onFocusProps","ariaResults","resultsMsg","ariaGuidance","guidanceMsg","ariaContext","ScreenReaderText","isInitialFocus","diacritics","letters","anyDiacritic","diacriticToBase","diacritic","j","stripDiacritics","memoizedStripDiacriticsForInput","trimString","defaultStringify","DummyInput","filteredProps","propsObj","propsMap","caretColor","STYLE_KEYS","LOCK_STYLES","boxSizing","preventTouchMove","preventDefault","allowTouchMove","stopPropagation","preventInertiaScroll","totalScroll","currentScroll","offsetHeight","isTouchDevice","maxTouchPoints","activeScrollLocks","listenerOptions","capture","blurSelectInput","activeElement","blur","ScrollManager","lockEnabled","_ref$captureEnabled","captureEnabled","setScrollCaptureTarget","isEnabled","onBottomArrive","onBottomLeave","onTopArrive","onTopLeave","isBottom","isTop","touchStart","scrollTarget","handleEventDelta","_scrollTarget$current","clientHeight","isDeltaPositive","availableScroll","shouldCancelScroll","cancelScroll","onWheel","deltaY","onTouchStart","changedTouches","clientY","onTouchMove","startListening","notPassive","stopListening","useEffect","useScrollCapture","setScrollLockTarget","_ref$accountForScroll","accountForScrollbars","originalStyles","addScrollLock","touchScrollTarget","targetStyle","currentPadding","paddingRight","clientWidth","adjustedPadding","innerWidth","removeScrollLock","useScrollLock","defaultStyles","clearIndicator","container","pointerEvents","_ref$theme","alignItems","neutral5","neutral0","borderColor","neutral10","primary","borderStyle","borderWidth","boxShadow","flexWrap","justifyContent","neutral30","dropdownIndicator","paddingBottom","paddingTop","groupHeading","paddingLeft","textTransform","indicatorsContainer","alignSelf","indicatorSeparator","_ref4$theme","loadingIndicator","marginRight","loadingMessage","_ref2$theme","_defineProperty$1","alignToControl","menuGutter","menuList","WebkitOverflowScrolling","menuPortal","multiValueLabel","cropWithEllipsis","textOverflow","multiValueRemove","dangerLight","danger","noOptionsMessage","primary25","userSelect","WebkitTapHighlightColor","primary50","neutral50","maxWidth","valueContainer","controlShouldRenderValue","config","primary75","neutral70","neutral90","backspaceRemovesValue","blurInputOnSelect","captureMenuScroll","closeMenuOnSelect","closeMenuOnScroll","escapeClearsValue","filterOption","rawInput","__isNew__","_ignoreCase$ignoreAcc","ignoreCase","ignoreAccents","stringify","matchFrom","candidate","formatGroupLabel","getOptionValue","isLoading","menuShouldBlockScroll","isMobileDevice","openMenuOnFocus","openMenuOnClick","pageSize","tabIndex","toCategorizedOption","_isOptionDisabled","_isOptionSelected","buildCategorizedOptions","groupOrOption","groupOrOptionIndex","categorizedOptions","optionIndex","categorizedOption","isFocusable","buildFocusableOptionsFromCategorizedOptions","optionsAccumulator","_props$inputValue","shouldHideSelectedOptions","_filterOption","isOptionSelected","some","hideSelectedOptions","instanceId","Select","inputIsHidden","clearFocusValueOnUpdate","prevWasFocused","inputIsHiddenAfterUpdate","blockOptionHover","isComposing","commonProps","initialTouchX","initialTouchY","instancePrefix","openAfterFocus","scrollToFocusedOptionOnUpdate","userIsDragging","controlRef","getControlRef","focusedOptionRef","getFocusedOptionRef","menuListRef","getMenuListRef","getInputRef","focus","focusInput","blurInput","actionMeta","ariaOnChange","onInputChange","prevInputValue","onMenuClose","_this$props3","deselected","removeValue","newValueArray","popValue","lastSelectedValue","classNamePrefix","custom","getElementId","getComponents","getCategorizedOptions","buildFocusableOptions","getFocusableOptions","onMenuMouseDown","button","onMenuMouseMove","onControlMouseDown","defaultPrevented","openMenu","onDropdownIndicatorMouseDown","_this$props4","onClearIndicatorMouseDown","onScroll","onCompositionStart","onCompositionEnd","touches","touch","clientX","deltaX","onTouchEnd","contains","onControlTouchEnd","onClearIndicatorTouchEnd","onDropdownIndicatorTouchEnd","handleInputChange","currentTarget","onMenuOpen","onInputFocus","onInputBlur","onOptionHover","_this$props5","isClearable","_this$state","focusValue","shiftKey","keyCode","focusOption","startListeningComposition","startListeningToTouch","autoFocus","_this$props6","focusedEl","menuRect","focusedRect","overScroll","offsetTop","scrollIntoView","stopListeningComposition","stopListeningToTouch","_this$state2","openAtIndex","selectedIndex","_this$state3","focusedIndex","nextFocus","getTheme","_this$props7","formatOptionLabel","_inputValue","_selectValue","_this$props8","inputId","form","_this$state4","ariaAttributes","autoCapitalize","autoCorrect","spellCheck","inputMode","_this3","_this$getComponents2","_this$props9","_this$state5","opt","isOptionFocused","onMouseDown","_this$props10","_this$props11","_this$getComponents5","_this4","_this$getComponents7","_this$props12","menuPortalTarget","onMenuScrollToTop","onMenuScrollToBottom","menuUI","onHover","onSelect","optionId","onMouseMove","onMouseOver","hasOptions","_data","groupIndex","groupId","headingId","_message","menuPlacementProps","menuElement","_ref4$placerProps","scrollTargetRef","_this5","_this$props13","delimiter","_value","_this$state6","_this$getComponents8","_this$props14","getCommonProps","renderLiveRegion","renderPlaceholderOrValue","renderInput","renderClearIndicator","renderLoadingIndicator","renderIndicatorSeparator","renderDropdownIndicator","renderMenu","renderFormField","newMenuOptionsState","nextSelectValue","lastFocusedIndex","getNextFocusedValue","lastFocusedOption","getNextFocusedOption","newInputIsHiddenState","newAriaSelection","hasKeptFocus","StateManagedSelect","baseSelectProps","_ref$defaultInputValu","defaultInputValue","_ref$defaultMenuIsOpe","defaultMenuIsOpen","_ref$defaultValue","propsInputValue","propsMenuIsOpen","propsOnChange","propsOnInputChange","propsOnMenuClose","propsOnMenuOpen","propsValue","restSelectProps","_useState","useState","_useState2","stateInputValue","setStateInputValue","_useState3","_useState4","stateMenuIsOpen","setStateMenuIsOpen","_useState5","_useState6","stateValue","setStateValue","useStateManager","hasOwn","classes","argType","inner","default","useEventCallback","useEnhancedEffect","freeze","_unsupportedIterableToArray","minLen","createMixins","mixins","toolbar","common","black","white","grey","A100","A200","A400","A700","purple","red","orange","blue","lightBlue","green","light","secondary","paper","active","hover","hoverOpacity","selectedOpacity","disabledBackground","disabledOpacity","focusOpacity","activatedOpacity","dark","icon","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","lighten","main","darken","createPalette","palette","mode","contrastThreshold","getDefaultPrimary","getDefaultSecondary","getDefaultError","info","getDefaultInfo","success","getDefaultSuccess","warning","getDefaultWarning","getContrastText","getContrastRatio","augmentColor","mainShade","lightShade","darkShade","_formatMuiErrorMessage","contrastText","modes","caseAllCaps","defaultFontFamily","createTypography","typography","fontFamily","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem2","pxToRem","coef","buildVariant","letterSpacing","casing","round","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","overline","createShadow","shadows","mobileStepper","fab","speedDial","appBar","drawer","modal","snackbar","tooltip","mixinsInput","paletteInput","transitions","transitionsInput","typographyInput","systemTheme","systemCreateTheme","muiTheme","createTransitions","argument","useForkRef","refA","refB","refValue","_interopRequireDefault","_createSvgIcon","_jsxRuntime","_default","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","getOwnPropertyNames","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","weakMemoize","WeakMap","has","get","ret","set","StyleSheet","_insertTag","tags","insertionPoint","nextSibling","prepend","firstChild","insertBefore","isSpeedy","speedy","ctr","nonce","_proto","hydrate","nodes","rule","setAttribute","appendChild","createTextNode","createStyleElement","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","flush","parentNode","removeChild","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","KEYFRAMES","fromCharCode","replacement","indexof","charat","begin","strlen","sizeof","append","array","combine","line","column","node","root","return","copy","prev","peek","token","alloc","dealloc","delimit","whitespace","escaping","commenter","identifier","compile","rules","rulesets","pseudo","points","declarations","atrule","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","z","serialize","rulesheet","identifierWithPointTracking","getRules","parsed","toRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","defaultStylisPlugins","ssrStyles","querySelectorAll","head","stylisPlugins","_insert","nodesToHydrate","attrib","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","collection","middleware","selector","shouldCache","_arrayLikeToArray","arr2","useControlled","controlled","defaultProp","isControlled","valueState","hadFocusVisibleRecentlyTimeout","hadKeyboardEvent","hadFocusVisibleRecently","inputTypesWhitelist","tel","email","password","date","month","week","time","datetime","handleKeyDown","metaKey","altKey","ctrlKey","handlePointerDown","handleVisibilityChange","visibilityState","isFocusVisible","isContentEditable","focusTriggersKeyboardModality","useIsFocusVisible","doc","ownerDocument","isFocusVisibleRef","clearTimeout","_arrayWithHoles","_nonIterableRest","_setPrototypeOf","_iterableToArray","iter","easing","easeInOut","easeOut","easeIn","sharp","shortest","shorter","short","standard","complex","enteringScreen","leavingScreen","formatMs","milliseconds","getAutoHeightDuration","constant","inputTransitions","mergedEasing","mergedDuration","durationOption","easingOption","animatedProp","AccordionContext","compose","handlers","getBorder","borderTop","borderRight","borderBottom","borderLeft","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borders","flexbox","gap","columnGap","rowGap","grid","_props$theme","_props$theme$breakpoi","_props$theme$breakpoi2","sizing","fontStyle","filterPropsMapping","positions","formatMuiErrorMessage","code","encodeURIComponent","propIsEnumerable","toObject","test1","test2","test3","shouldUseNative","s","hoistNonReactStatics$1","isarray","tokensToFunction","tokensToRegExp","PATH_REGEXP","res","tokens","defaultDelimiter","escaped","modifier","asterisk","partial","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","toUpperCase","opts","encode","pretty","segment","attachKeys","re","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","__esModule","createChainedFunction","funcs","getSvgIconUtilityClass","generateUtilityClass","generateUtilityClasses","SvgIconRoot","_theme$transitions","_theme$transitions$cr","_theme$transitions2","_theme$transitions2$d","_theme$typography","_theme$typography$pxT","_theme$typography2","_theme$typography2$px","_theme$typography3","_theme$typography3$px","_theme$palette$ownerS","_theme$palette","_theme$palette$ownerS2","_theme$palette2","_theme$palette2$actio","_theme$palette3","_theme$palette3$actio","inherit","small","medium","large","SvgIcon","inProps","htmlColor","inheritViewBox","titleAccess","instanceFontSize","more","slots","composeClasses","useUtilityClasses","_jsxs","clsx","_jsx","muiName","createSvgIcon","debounce","timeout","wait","debounced","later","clear","deprecatedPropType","validator","reason","isMuiElement","muiNames","ownerWindow","defaultView","requirePropFactory","componentNameInError","globalId","maybeReactUseId","useId","idOverride","reactId","defaultId","setDefaultId","useGlobalId","unsupportedProp","propFullName","unstable_ClassNameGenerator","configure","warn","ClassNameGenerator","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","global","createEventEmitter","on","handler","off","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","emitter","getChildContext","componentWillReceiveProps","nextProps","oldValue","Consumer","onUpdate","observedBits","_proto2","asyncGeneratorStep","gen","resolve","reject","_next","_throw","Promise","then","_asyncToGenerator","defaultGenerator","generate","createClassNameGenerator","FilePond","FileStatus","registerPlugin","_react","_react2","_filepond","isSupported","supported","filteredMethods","_React$Component","allowFilesSync","onupdatefiles","cb","items","_pond","_element","destroy","setOptions","allowMultiple","captureMethod","acceptedFileTypes","accept","multiple","isObjectEmpty","contextTheme","muiUseTheme","useThemeWithoutDefault","isPlainObject","StrictMode","Profiler","q","Suspense","u","v","for","A","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","B","refs","updater","D","E","isReactComponent","forceUpdate","F","isPureReactComponent","G","H","I","__self","__source","J","g","f","$$typeof","_owner","L","M","N","escape","O","K","P","Q","_status","_result","R","S","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","Children","toArray","only","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","createRef","isValidElement","lazy","_payload","_init","useDebugValue","useImperativeHandle","useReducer","aa","ba","ca","da","ea","add","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","oa","qa","ma","la","removeAttribute","setAttributeNS","xlinkHref","ra","sa","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","stack","Oa","Pa","prepareStackTrace","Qa","_render","Ra","Sa","Ta","nodeName","Va","_valueTracker","stopTracking","Ua","Wa","checked","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","$a","ab","bb","eb","db","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","lb","mb","ob","namespaceURI","innerHTML","MSApp","execUnsafeLocalFunction","lastChild","nodeType","nodeValue","qb","lineClamp","rb","sb","tb","setProperty","ub","menuitem","area","br","col","embed","hr","img","keygen","link","meta","param","track","wbr","vb","wb","is","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","$b","memoizedState","dehydrated","ac","cc","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","Map","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","containerInfo","xc","yc","shift","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","log","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","nd","od","charCode","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","returnValue","isPropagationStopped","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","pageX","pageY","getModifierState","zd","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Meta","Shift","Pd","Qd","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","targetTouches","Xd","Yd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","range","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","Me","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","anchorNode","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","bf","cf","df","Nb","ef","ff","parentWindow","gf","hf","je","ke","jf","kf","lf","mf","nf","__html","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","firstContext","lanes","ug","vg","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","yg","zg","eventTime","lane","payload","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","Ng","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","hi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tail","tailMode","Ai","Fi","Gi","wasMultiple","onclick","createElementNS","V","Hi","Ii","W","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","ceil","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","hk","unstable_observedBits","unmount","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","supportsFiber","inject","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","performance","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","floor","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","jsxs","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","secret","getShim","ReactPropTypes","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","checkPropTypes","Function","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","iterableToArrayLimit","arrayWithoutHoles","nonIterableSpread","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","reverse","skipTempReset","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","_utils","isNode","createStore","initialState","queries","actions","actionQueue","dispatchQueue","processDispatchQueue","isBlocking","hidden","actionHandlers","query","_queryHandles","queryHandles","api","getState","processActionQueue","forin","createObject","attr","ns","svgElements","isSVGElement","attributes","appendChildView","childViews","removeChildView","IS_BROWSER","isBrowser","getChildCount","childNodes","getViewRect","elementRect","scale","outer","childView","isRectIgnored","childViewRect","expandRect","calculateRectSize","isNumber","thereYet","destination","velocity","errorMargin","spring","_ref$stiffness","stiffness","_ref$damping","damping","_ref$mass","mass","resting","interpolate","ts","skipToEndState","onupdate","oncomplete","easeInOutQuad","tween","_ref$duration","_ref$easing","_ref$delay","animator","createAnimator","category","def","addGetSet","overwrite","getter","setter","animations","mixinConfig","viewProps","viewInternalAPI","viewExternalAPI","initialProps","write","addEvent","removeEvent","viewState","events","remove","findIndex","isDefined","defaults","scaleX","scaleY","translateX","translateY","rotateX","rotateY","rotateZ","originX","originY","currentProps","getOffset","getScale","getRect","propsHaveChanged","applyStyles","perspective","transforms","elementCurrentStyle","cssText","Mixins","apis","updateRect","layoutCalculated","offsetLeft","offsetWidth","createView","_ref$tag","_ref$name","_ref$attributes","_ref$read","read","_ref$write","_ref$create","_ref$destroy","_ref$filterFrameActio","filterFrameActionsForChild","_ref$didCreateView","didCreateView","_ref$didWriteView","didWriteView","_ref$ignoreRect","ignoreRect","_ref$ignoreRectUpdate","ignoreRectUpdate","_ref$mixins","store","frameRect","isResting","activeMixins","writers","readers","destroyers","getElement","getChildViews","getReference","createChildView","_read","internalAPI","reader","_write","frameActions","shouldOptimize","writer","timestamp","mixin","_destroy","destroyer","sharedAPIDefinition","internalAPIDefinition","needle","linkView","unlinkView","registerWriter","registerReader","registerDestroyer","invalidateLayout","externalAPIDefinition","mixinAPIDefinition","mixinAPI","childCount","createPainter","fps","painter","interval","requestTick","cancelTick","setTimerType","tick","pause","createRoute","routes","_ref$actions","newNode","referenceNode","insertAfter","splitter","isBoolean","toBoolean","isString","toNumber","toInt","toFloat","parseFloat","isInt","isFinite","toBytes","naturalFileSize","isFunction","toFunctionReference","levels","level","methods","patch","revert","fetch","restore","load","createServerAPI","headers","createAction","withCredentials","onload","ondata","onerror","header","isNull","isAPI","replaceSingleQuotes","conversionTable","boolean","int","float","bytes","function","serverapi","convertTo","getValueByType","valueType","newValueType","convertedValue","createOption","currentValue","createOptions","optionDefinition","createInitialState","listUpdateTimeout","itemUpdateTimeout","processingQueue","fromCamels","separator","createOptionAPI","createOptionActions","createOptionQueries","InteractionMethod","API","DROP","BROWSE","PASTE","NONE","_AwaitValue","wrapped","_AsyncGenerator","front","back","send","request","resume","wrappedAwait","settle","_arrayWithoutHoles","_nonIterableSpread","throw","arrayRemove","run","sync","_fire","fireSync","fire","onOnce","_cb","copyObjectPropertiesToObject","PRIVATE","createItemAPI","removeReleasedItems","released","ItemStatus","INIT","IDLE","PROCESSING_QUEUED","PROCESSING","PROCESSING_COMPLETE","PROCESSING_ERROR","PROCESSING_REVERT_ERROR","LOADING","LOAD_ERROR","FileOrigin","INPUT","LIMBO","LOCAL","getNonNumeric","getDecimalSeparator","toLocaleString","getThousandsSeparator","decimalSeparator","thousandsStringWithSeparator","BOOLEAN","INT","NUMBER","STRING","ARRAY","OBJECT","FUNCTION","ACTION","SERVER_API","REGEX","filters","applyFilterChain","utils","matchingFilters","initialFilter","catch","applyFilters","addFilter","extendDefaultOptions","additionalOptions","defaultOptions","getOptions","allowSyncAcceptAttribute","allowDrop","allowBrowse","allowPaste","allowReplace","allowRevert","allowRemove","allowProcess","allowReorder","allowDirectoriesOnly","storeAsFile","forceRevert","maxFiles","checkValidity","itemInsertLocationFreedom","itemInsertLocation","itemInsertInterval","dropOnPage","dropOnElement","dropValidation","ignoredFiles","instantUpload","maxParallelUploads","allowMinimumUploadDuration","chunkUploads","chunkForce","chunkSize","chunkRetryDelays","server","fileSizeBase","labelFileSizeBytes","labelFileSizeKilobytes","labelFileSizeMegabytes","labelFileSizeGigabytes","labelDecimalSeparator","labelThousandsSeparator","labelIdle","labelInvalidField","labelFileWaitingForSize","labelFileSizeNotAvailable","labelFileCountSingular","labelFileCountPlural","labelFileLoading","labelFileAdded","labelFileLoadError","labelFileRemoved","labelFileRemoveError","labelFileProcessing","labelFileProcessingComplete","labelFileProcessingAborted","labelFileProcessingError","labelFileProcessingRevertError","labelTapToCancel","labelTapToRetry","labelTapToUndo","labelButtonRemoveItem","labelButtonAbortItemLoad","labelButtonRetryItemLoad","labelButtonAbortItemProcessing","labelButtonUndoItemProcessing","labelButtonRetryItemProcessing","labelButtonProcessItem","iconRemove","iconProcess","iconRetry","iconUndo","iconDone","oninit","onwarning","onactivatefile","oninitfile","onaddfilestart","onaddfileprogress","onaddfile","onprocessfilestart","onprocessfileprogress","onprocessfileabort","onprocessfilerevert","onprocessfile","onprocessfiles","onremovefile","onpreparefile","onreorderfiles","beforeDropFile","beforeAddFile","beforeRemoveFile","beforePrepareFile","stylePanelLayout","stylePanelAspectRatio","styleItemPanelAspectRatio","styleButtonRemoveItemPosition","styleButtonProcessItemPosition","styleLoadIndicatorPosition","styleProgressIndicatorPosition","styleButtonRemoveItemAlign","files","credits","getItemByQuery","find","getNumericAspectRatioFromString","getActiveItems","archived","Status","EMPTY","ERROR","BUSY","READY","canUpdateFileInput","DataTransfer","File","ITEM_ERROR","ITEM_BUSY","ITEM_READY","isItemInErrorState","isItemInBusyState","isItemInReadyState","isAsync","GET_STATUS","GET_ITEM","GET_ACTIVE_ITEM","GET_ACTIVE_ITEMS","GET_ITEMS","GET_ITEM_NAME","filename","GET_ITEM_SIZE","fileSize","GET_STYLES","GET_PANEL_ASPECT_RATIO","GET_ITEM_PANEL_ASPECT_RATIO","GET_ITEMS_BY_STATUS","GET_TOTAL_ITEMS","SHOULD_UPDATE_FILE_INPUT","IS_ASYNC","GET_FILE_SIZE_LABELS","labelBytes","labelKilobytes","labelMegabytes","labelGigabytes","hasRoomForItem","maxFileCount","limit","arrayInsert","insertItem","isBase64DataURI","getFilenameFromURL","getExtensionFromFilename","guesstimateExtension","subtype","leftPad","getDateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getFileFromBlob","blob","extension","file","lastModifiedDate","_relativePath","getBlobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","createBlob","arrayBuffer","mimeType","BB","getBlob","Blob","getBlobFromByteStringWithMimeType","byteString","ArrayBuffer","Uint8Array","getMimeTypeFromBase64DataURI","dataURI","getBase64DataFromBase64DataURI","getByteStringFromBase64DataURI","atob","getBlobFromBase64DataURI","getFileFromBase64DataURI","getFileNameFromHeader","getFileSizeFromHeader","getTranfserIdFromHeader","getFileInfoFromHeaders","rows","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","createFileLoader","fetchFn","progress","getProgress","abort","loadURL","response","computable","total","fileinfo","setSource","isGet","sendRequest","onheaders","onprogress","ontimeout","onabort","aborted","xhr","headersReceived","XMLHttpRequest","upload","lengthComputable","loaded","onreadystatechange","readyState","open","unescape","setRequestHeader","responseType","createResponse","createTimeoutResponse","getAllResponseHeaders","hasQS","buildURL","createFetchFunction","apiUrl","statusText","ChunkStatus","QUEUED","COMPLETE","WAITING","processFileChunked","transfer","chunks","chunkTransferId","chunkServer","serverId","getResponseHeader","requestTransferId","formData","FormData","requestParams","requestTransferOffset","requestUrl","lastChunkIndex","retries","completeProcessingChunks","canProcessChunk","chunk","processChunk","processChunks","updateTotalProgress","retryProcessChunk","totalBytesTransfered","totalSize","abortChunks","createFileProcessorFunction","canChunkUpload","shouldChunkUpload","willChunkUpload","createProcessorFunction","createRevertFunction","uniqueFileId","getRandomNumber","createPerceivedPerformanceUpdater","tickMin","tickMax","createFileProcessor","processFn","perceivedProgress","perceivedPerformanceUpdater","perceivedDuration","progressFn","completeFn","transferId","getDuration","getFilenameWithoutExtension","createFileStub","isFile","deepCloneObject","createItem","origin","serverFileReference","frozen","processingAborted","activeLoader","activeProcessor","abortProcessingRequestComplete","setStatus","getFileExtension","getFileType","getFileSize","getFile","loader","retryLoad","abortLoad","processor","onprocess","requestProcessing","abortProcessing","revertFileUpload","serverTransferId","_setMetadata","silent","getMetadata","filenameWithoutExtension","fileExtension","fileType","relativePath","setMetadata","itemAPI","release","archive","getItemIndexByQuery","getItemById","itemId","fetchBlob","getDomainFromURL","protocol","isExternalURL","dynamicLabel","isMockItem","listUpdated","optionalPromise","sortItems","getItemByQueryFromState","itemHandler","_ref$success","_ref$failure","failure","ABORT_ALL","DID_SET_FILES","_ref2$value","activeItems","interactionMethod","DID_UPDATE_ITEM_METADATA","doUpload","shouldPrepareOutput","MOVE_ITEM","currentIndex","SORT","ADD_ITEMS","_ref6$success","_ref6$failure","insertLocation","totalItems","isValidFile","promises","all","ADD_ITEM","_ref7$index","_ref7$success","_ref7$failure","_ref7$options","_item","mainStatus","sub","handleAdd","shouldAdd","loadComplete","_ref8","REQUEST_PREPARE_OUTPUT","_ref9","_ref9$failure","COMPLETE_LOAD_ITEM","_ref10","RETRY_ITEM_LOAD","REQUEST_ITEM_PREPARE","_success","REQUEST_ITEM_PROCESSING","processNow","PROCESS_ITEM","processNext","queueEntry","itemReference","RETRY_ITEM_PROCESSING","REQUEST_REMOVE_ITEM","shouldRemove","RELEASE_ITEM","REMOVE_ITEM","removeFromView","ABORT_ITEM_LOAD","ABORT_ITEM_PROCESSING","REQUEST_REVERT_ITEM_PROCESSING","handleRevert","shouldRevert","requestRemoveResult","REVERT_ITEM_PROCESSING","SET_OPTIONS","_ref11","optionKeys","prioritizedOptionKeys","PrioritizedOptions","formatFilename","createElement$1","textNode","polarToCartesian","centerX","centerY","radius","angleInDegrees","angleInRadians","PI","cos","sin","describeArc","startAngle","endAngle","arcSweep","percentageArc","spin","svg","align","dataset","ringStrokeWidth","ringFrom","ringTo","coordinates","progressIndicator","create$1","write$1","shouldDisable","fileActionButton","toNaturalFileSize","_options$labelBytes","_options$labelKilobyt","_options$labelMegabyt","_options$labelGigabyt","KB","MB","GB","removeDecimalsWhenZero","decimalCount","toFixed","create$2","fileName","updateFile","updateFileSizeOnError","fileInfo","DID_LOAD_ITEM","DID_UPDATE_ITEM_META","DID_THROW_ITEM_LOAD_ERROR","DID_THROW_ITEM_INVALID","toPercentage","create$3","didSetItemLoadProgress","didSetItemProcessProgress","didRequestItemProcessing","didAbortItemProcessing","didCompleteItemProcessing","fileStatus","DID_REVERT_ITEM_PROCESSING","DID_REQUEST_ITEM_PROCESSING","DID_ABORT_ITEM_PROCESSING","DID_COMPLETE_ITEM_PROCESSING","DID_UPDATE_ITEM_PROCESS_PROGRESS","DID_UPDATE_ITEM_LOAD_PROGRESS","DID_THROW_ITEM_PROCESSING_ERROR","DID_THROW_ITEM_PROCESSING_REVERT_ERROR","DID_THROW_ITEM_REMOVE_ERROR","Buttons","AbortItemLoad","RetryItemLoad","RemoveItem","ProcessItem","AbortItemProcessing","RetryItemProcessing","RevertItemProcessing","ButtonKeys","calculateFileInfoOffset","getRemoveIndicatorAligment","buttonRect","buttonRemoveItem","calculateButtonWidth","buttonAbortItemLoad","calculateFileVerticalCenterOffset","calculateFileHorizontalCenterOffset","getLoadIndicatorAlignment","getProcessIndicatorAlignment","DefaultStyle","buttonRetryItemLoad","buttonProcessItem","buttonAbortItemProcessing","buttonRetryItemProcessing","buttonRevertItemProcessing","loadProgressIndicator","processProgressIndicator","processingCompleteIndicator","IdleStyle","ProcessingStyle","StyleMap","DID_START_ITEM_LOAD","DID_START_ITEM_REMOVE","DID_LOAD_LOCAL_ITEM","DID_START_ITEM_PROCESSING","processingCompleteIndicatorView","create$4","buttonFilter","LocalButtons","curr","alignRemoveItemButton","enabledButtons","_map","buttonView","classList","loadIndicatorView","progressIndicatorView","activeStyles","write$2","stylesToApply","DID_SET_LABEL_BUTTON_ABORT_ITEM_PROCESSING","DID_SET_LABEL_BUTTON_ABORT_ITEM_LOAD","DID_SET_LABEL_BUTTON_ABORT_ITEM_REMOVAL","buttonAbortItemRemoval","_ref12","create$5","didLoadItem","fileWrapper","PANEL_SPRING_PROPS","create$6","section","createSection","scalable","viewConstructor","write$3","topRect","bottomRect","center","panel","heightCurrent","createDragHelper","itemIds","setIndex","getIndex","getItemIndex","ITEM_TRANSLATE_SPRING","ITEM_SCALE_SPRING","StateMap","create$7","handleClick","markedForRemoval","dragState","grab","removedActivateListener","dragOrigin","dragCenter","offsetX","offsetY","drag","dragOffset","drop","route$1","DID_UPDATE_PANEL_HEIGHT","write$4","DID_GRAB_ITEM","DID_DRAG_ITEM","DID_DROP_ITEM","currentState","filepondItemState","getItemsPerRow","horizontalSpace","itemWidth","getItemIndexByPosition","positionInView","itemRect","itemHorizontalMargin","itemsPerRow","childMid","itemVerticalMargin","itemHeight","_index","itemTop","itemRight","itemBottom","dropAreaDimensions","getHeight","setHeight","getWidth","setWidth","setDimensions","create$8","lastItemSpanwDate","addItemView","addIndex","spawnDate","cooldown","dist","moveItem","vx","vy","introItemView","removeItemView","getItemHeight","getItemWidth","dragItem","numItems","oldIndex","dragPosition","dragHeight","dragWidth","cols","getGridIndex","getColIndex","visibleChildren","idx","childBottom","childTop","route$2","DID_ADD_ITEM","DID_REMOVE_ITEM","write$5","dragCoordinates","dragIndex","dragIndexOffset","removeIndexOffset","addIndexOffset","childRect","visualHeight","prevX","prevY","visualIndex","indexX","indexY","vectorX","sign","vectorY","filterSetItemActions","create$9","overflowing","storeDragCoordinates","scopeLeft","scopeTop","route$3","DID_DRAG","DID_END_DRAG","write$6","newHeight","listScroller","attrToggle","resetFileInput","create$a","setAcceptedFileTypes","toggleAllowMultiple","toggleDirectoryFilter","toggleDisabled","toggleRequired","setCaptureMethod","handleChange","webkitRelativePath","doesAllowBrowse","disableField","updateRequiredStatus","setCustomValidity","updateFieldValidityStatus","browser","DID_SET_DISABLED","DID_SET_ALLOW_BROWSE","DID_SET_ALLOW_DIRECTORIES_ONLY","DID_SET_ALLOW_MULTIPLE","DID_SET_ACCEPTED_FILE_TYPES","DID_SET_CAPTURE_METHOD","DID_SET_REQUIRED","Key","ENTER","SPACE","create$b","click","updateLabelValue","clickable","dropLabel","DID_SET_LABEL_IDLE","addBlob","moveBlob","hideBlob","explodeBlob","write$7","route$4","DID_DROP","drip","setInputFiles","create$c","fields","getField","syncFieldPositionsWithItems","didReorderItems","didAddItem","shouldUseFileInput","dataContainer","didLoadItem$1","field","fileItem","didPrepareOutput","didSetDisabled","didRemoveItem","didDefineValue","write$8","DID_DEFINE_VALUE","DID_PREPARE_OUTPUT","DID_REORDER_ITEMS","DID_SORT_ITEMS","getRootNode","images","text$1","zip","epub","guesstimateMimeType","requestDataTransferItems","links","getLinks","hasFiles","getFiles","promisedFiles","isFileSystemItem","getFilesFromItem","returnedFileGroups","isEntry","getAsEntry","isDirectory","kind","isDirectoryEntry","getFilesInDirectory","getAsFile","dirCounter","fileCounter","resolveIfDone","readEntries","dirEntry","directoryReader","createReader","readBatch","correctedFile","correctMissingFileType","fullPath","webkitGetAsEntry","getLinksFromTransferMetaData","getLinksFromTransferURLData","getData","dragNDropObservers","eventPosition","pageLeft","pageTop","layerX","layerY","createDragNDropClient","scopeToObserve","filterElement","observer","getDragNDropObserver","client","ondrop","onenter","ondrag","onexit","allowdrop","addListener","newObserver","createDragNDropObserver","clients","dragenter","dragover","dragleave","createHandler","elementFromPoint","point","isEventTarget","elementAtPosition","pageXOffset","initialTarget","setDropEffect","effect","dropEffect","overDropTarget","allowsTransfer","createHopper","scope","validateItems","catchesDropsOnPage","requiresDropOnElement","_options$filterItems","filterItems","lastState","filteredItems","ondragend","ondragstart","updateHopperState","hopperState","listening","listeners$1","handlePaste","activeEl","inScope","createPaster","create$d","addFilesNotificationTimeout","notificationClearTimeout","filenames","assist","clear$1","listModified","isUsingFilePond","itemAdded","itemRemoved","itemProcessed","itemProcessedUndo","itemError","assistant","toCamels","immidiateOnly","MAX_FILES_LIMIT","prevent","create$e","measure","bounds","widthPrevious","widthUpdated","updateHistory","previousAspectRatio","canHover","matchMedia","hasPointerEvents","frag","tabindex","rel","write$9","route$5","calculateRootBoundingBoxHeight","_root$ref","hopper","isMultiItem","atMaxCapacity","addAction","listItemMargin","calculateListItemMargin","listHeight","calculateListHeight","labelHeight","currentLabelHeight","listMarginTop","listMarginBottom","visual","boundsHeight","MAX_BOUNCES","bounces","listAvailableHeight","fixedHeight","_listAvailableHeight","cappedHeight","isCappedHeight","panelHeight","_listAvailableHeight2","itemMargin","scrollList","itemList","newItem","removedItem","verticalItemCount","measureHeight","exceedsMaxFiles","maxItems","totalBrowseItems","getDragIndex","toggleDrop","isAllowed","enabled","toggleBrowse","togglePaste","paster","DID_SET_ALLOW_DROP","DID_SET_ALLOW_PASTE","createApp","initialOptions","originalElement","visibilityHandler","resizeDoneTimer","isResizing","isResizingHorizontally","initialWindowWidth","currentWindowWidth","resizeHandler","readWriteApi","routeActionsToEvents","eventRoutes","DID_DESTROY","DID_INIT","DID_THROW_MAX_FILES","DID_INIT_ITEM","DID_COMPLETE_ITEM_PROCESSING_ALL","DID_UPDATE_ITEMS","DID_ACTIVATE_ITEM","exposeEvent","pond","dispatchEvent","CustomEvent","composed","filtered","prepareFile","addFile","addFiles","isFilePondFile","removeFile","sources","lastArgument","processFile","prepareFiles","processFiles","_len3","_key3","removeFiles","_len4","_key4","moveFile","browse","replaceElement","restoreElement","isAttachedTo","createAppObject","customOptions","lowerCaseFirstLetter","attributeNameToPropertyName","mapObject","propertyMap","mapping","selectorRegExp","getAttributesAsObject","attributeMapping","attribute","createAppAtElement","mergedOptions","attributeOptions","app","createApp$1","PRIVATE_METHODS","createAppAPI","replaceInString","replacements","createWorker","workerBlob","workerURL","URL","createObjectURL","worker","Worker","transferList","terminate","revokeObjectURL","loadImage","Image","renameFile","renamedFile","copyFile","registeredPlugins","createAppPlugin","plugin","pluginOutline","views","isOperaMini","operamini","hasPromises","hasBlobSlice","hasCreateObjectURL","hasVisibility","hasTiming","hasCSSSupports","CSS","isIE11","apps","OptionTypes","updateOptionTypes","hook","indexToRemove","newHook","plugins","factory","globalStateClassesMapping","completed","expanded","focusVisible","getUtilityClass","decomposeColor","hexToRgb","marker","colorSpace","recomposeColor","getLuminance","rgb","hslToRgb","foreground","lumA","lumB","alpha","coefficient","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","nextCallback","updateStatus","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","performEnter","performExit","appearing","nodeRef","ReactDOM","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","onExit","onExiting","onExited","cancel","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","TransitionGroupContext","getTransitionProps","_style$transitionDura","_style$transitionTimi","transitionDuration","transitionTimingFunction","transitionDelay","getCollapseUtilityClass","CollapseRoot","orientation","entered","collapsedSize","CollapseWrapper","wrapper","CollapseWrapperInner","wrapperInner","Collapse","collapsedSizeProp","inProp","TransitionComponent","useThemeSystem","timer","wrapperRef","autoTransitionDuration","isHorizontal","handleRef","normalizedTransitionCallback","maybeIsAppearing","getWrapperSize","handleEnter","isAppearing","handleEntering","wrapperSize","duration2","handleEntered","handleExit","handleExited","handleExiting","muiSupportAuto","getPaperUtilityClass","getOverlayAlpha","elevation","PaperRoot","square","rounded","backgroundImage","Paper","getAccordionUtilityClass","accordionClasses","AccordionRoot","region","disableGutters","gutters","overflowAnchor","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","Accordion","childrenProp","defaultExpanded","expandedProp","TransitionProps","setExpandedState","summary","contextValue","toggle","getChildMapping","mapFn","mapper","getProp","getNextChildMapping","prevChildMapping","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","TransitionGroup","firstRender","mounted","currentChildMapping","childFactory","Ripple","pulsate","rippleX","rippleY","rippleSize","leaving","setLeaving","rippleClassName","ripple","rippleVisible","ripplePulsate","rippleStyles","childClassName","childLeaving","childPulsate","timeoutId","_t","_t2","_t3","_t4","touchRippleClasses","enterKeyframe","exitKeyframe","pulsateKeyframe","TouchRippleRoot","TouchRippleRipple","TouchRipple","centerProp","ripples","setRipples","rippleCallback","ignoringMouseDown","startTimer","startTimerCommit","startCommit","oldRipples","fakeElement","sqrt","sizeX","sizeY","getButtonBaseUtilityClass","buttonBaseClasses","ButtonBaseRoot","MozAppearance","WebkitAppearance","textDecoration","colorAdjust","ButtonBase","centerRipple","disableRipple","disableTouchRipple","focusRipple","LinkComponent","onContextMenu","onDragLeave","onFocusVisible","onKeyUp","onMouseLeave","onMouseUp","TouchRippleProps","touchRippleRef","buttonRef","rippleRef","handleRippleRef","handleFocusVisible","handleBlurVisible","focusVisibleRef","setFocusVisible","mountedState","setMountedState","enableTouchRipple","useRippleHandler","rippleAction","eventCallback","skipRippleAction","handleMouseDown","handleContextMenu","handleDragLeave","handleMouseUp","handleMouseLeave","handleTouchStart","handleTouchEnd","handleTouchMove","handleBlur","handleFocus","isNonNativeButton","keydownRef","handleKeyUp","ComponentProp","buttonProps","handleOwnRef","focusVisibleClassName","composedClasses","getAccordionSummaryUtilityClass","accordionSummaryClasses","AccordionSummaryRoot","AccordionSummaryContent","AccordionSummaryExpandIconWrapper","expandIconWrapper","AccordionSummary","expandIcon","createBreakpoints","unit","step","sortedValues","breakpointsAsArray","breakpoint1","breakpoint2","sortBreakpointsValues","down","between","endIndex","not","keyIndex","createSpacing","spacingInput","mui","argsInput","shapeInput","extendSxProp","finalSx","inSx","systemProps","otherProps","splitProps","getTypographyUtilityClass","TypographyRoot","noWrap","gutterBottom","paragraph","defaultVariantMapping","colorTransformations","textPrimary","textSecondary","Typography","themeProps","transformDeprecatedColors","variantMapping","getAccordionDetailsUtilityClass","AccordionDetailsRoot","AccordionDetails"],"mappings":";0GAGEA,EAAOC,QAAUC,EAAQ,K,6BCAzBF,EAAOC,QAAUC,EAAQ,K,+FCCZ,SAASC,EAAeC,EAAKC,GAC1C,OAAO,OAAAC,EAAA,GAAeF,ICLT,SAA+BA,EAAKC,GACjD,IAAIE,EAAY,MAAPH,EAAc,KAAyB,qBAAXI,QAA0BJ,EAAII,OAAOC,WAAaL,EAAI,cAE3F,GAAU,MAANG,EAAJ,CACA,IAIIG,EAAIC,EAJJC,EAAO,GACPC,GAAK,EACLC,GAAK,EAIT,IACE,IAAKP,EAAKA,EAAGQ,KAAKX,KAAQS,GAAMH,EAAKH,EAAGS,QAAQC,QAC9CL,EAAKM,KAAKR,EAAGS,QAETd,GAAKO,EAAKQ,SAAWf,GAH4BQ,GAAK,IAK5D,MAAOQ,GACPP,GAAK,EACLH,EAAKU,EACL,QACA,IACOR,GAAsB,MAAhBN,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAIO,EAAI,MAAMH,GAIlB,OAAOC,GDtBuB,CAAqBR,EAAKC,IAAM,OAAAiB,EAAA,GAA2BlB,EAAKC,IAAM,OAAAkB,EAAA,O,2KEI1EC,IAAMC,U,ICA5BC,c,wIACJC,QAAUC,YAAc,EAAD,O,sCAEvBC,kB,OACS,uBAAQF,QAASG,KAAjB,QAA+BC,SAAUD,KAAKE,MAAMD,Y,EAJzDL,CAAmBF,IAAMC,WCPxB,IAAMQ,EAAoB,SAACC,EAAIC,G,MACtB,oBAAPD,EAAoBA,EAA3B,GAD+B,GAGpBE,EAAsB,SAACF,EAAIC,G,MACjB,kBAAPD,EACVG,YAAeH,EAAI,KAAM,KADtB,GAAP,GCKII,EAAiB,SAAAC,G,OAAC,GAClBC,EAAehB,IAAfgB,WACN,qBAAWA,IACTA,KAOF,IAAMC,EAAaD,GACjB,c,IAEIE,EAMC,EANDA,SACAC,EAKC,EALDA,SACAC,EAIC,EAJDA,QACGC,EAGF,iDACKC,EAAWD,EADhB,OAGCb,EAAQ,OAAH,IAAG,CAAH,MAEPY,QAAS,SAAAG,G,IAEL,GAAaH,KACb,MAAOI,G,MACPD,mBACA,EAICA,EAAD,sBACAA,UACC,GAFD,UAEYD,GA7BtB,SAAyBC,G,SACbA,WAAiBA,EAAjBA,QAAiCA,EAAjCA,SAAkDA,EAA5D,UA6BSE,CAJH,KAMEF,mBACAJ,Q,OAOJX,MADEM,IAAJ,GACcY,GAEZlB,EAIK,sBAAP,MAWJ,IAAMmB,EAAOX,GACX,c,QAEIY,iBAOC,MAPWX,EAOX,EANDY,EAMC,EANDA,QACAnB,EAKC,EALDA,GACAQ,EAIC,EAJDA,SACGG,EAGF,uD,OAED,kBAACS,IAAD,eACG,SAAAC,GACC,mB,IAEQ5B,EAAY4B,EAHV,QAKJC,EAAWpB,EACfH,EAAkBC,EAAIqB,EADY,UAElCA,EAFF,UAKME,EAAOD,EAAW7B,aAAH,GAArB,GACMK,EAAQ,OAAH,IAAG,CAAH,MAETyB,KAFS,EAGTd,SAHS,W,IAIDa,EAAWvB,EAAkBC,EAAIqB,EAAvC,UACMG,EAAwBC,YAAWJ,EAAXI,YAAiCA,YAAWvB,EAA1E,KACgBiB,GAAD,EAAqC1B,EAArC,QAAuDA,EAAtE,MAEAiC,M,OAKAtB,IAAJ,EACEN,MAAYkB,GAAZlB,EAEAA,aAGKR,oBAAP,SC1GJc,EAAiB,SAAAC,G,OAAC,GAClBC,EAAehB,IAAfgB,WACN,qBAAW,IACTA,KAUcA,GACd,c,QAEI,gBAAgBqB,OAef,MAf6B,OAe7B,E,IAdDC,uBAcC,MAdiB,SAcjB,EAbDC,EAaC,EAbDA,YACWC,EAYV,EAZDC,UACAC,EAWC,EAXDA,MACUC,EAUT,EAVDC,SACUC,EAST,EATDb,SACAc,EAQC,EARDA,UACAC,EAOC,EAPDA,OACOC,EAMN,EANDC,MACAvC,EAKC,EALDA,GACAQ,EAIC,EAJDA,SACGG,EAGF,uJ,OAED,kBAACS,IAAD,eACG,SAAAC,GACC,mB,IAEMpB,EAAkBkC,GAAgBd,EAAxC,SACMmB,EAAatC,EACjBH,EAAkBC,EADkB,GAAtC,GAIkByC,EAASD,EARjB,SAUJE,EACJD,GAAQA,sCADV,QAGME,EAAQD,EACVE,YAAU3C,EAAD,SAA2B,CAClCwC,KADkC,EAElCT,MAFkC,EAGlCI,UAHkC,EAIlCC,WALN,KAQMH,KAAcD,EAChBA,EAAaU,EADe,GAAhC,GAIIZ,EACuB,oBAAlBD,EACHA,EADJ,GADF,EAKIS,EACmB,oBAAdD,EAA2BA,EAAlC,GADF,EAGA,IACEP,EA9DZ,W,2BAA2Bc,EAAY,yBAAZA,EAAY,gB,OAC9BA,EAAA,QAAkB,SAAA1E,G,OAAC,KAAnB,KAAP,KA6DsB2E,CAAef,EAA3BA,GACAQ,EAAQ,OAAH,IAAG,CAAH,KAALA,I,IAGIzC,EAAQ,OAAH,IAAG,CAAH,C,eACQoC,GAAD,GADP,KAETH,UAFS,EAGTQ,MAHS,EAITvC,GAAIwC,GA1CI,G,OA+CNpC,IAAJ,EACEN,MAAYkB,GAAZlB,EAEAA,aAGK,oBAAP,U,gBCjFRhC,EAAOC,QAAUC,EAAQ,GAARA,I,0FCdZ,SAAS+E,EAAQC,EAAKP,GAC3B,IAAKA,GAAwB,kBAATA,EAClB,OAAO,KAIT,GAAIO,GAAOA,EAAIC,KAAM,CACnB,IAAMC,EAAM,eAAQT,GAAOU,MAAM,KAAKC,QAAO,SAACC,EAAKC,GAAN,OAAeD,GAAOA,EAAIC,GAAQD,EAAIC,GAAQ,OAAMN,GAEjG,GAAW,MAAPE,EACF,OAAOA,EAIX,OAAOT,EAAKU,MAAM,KAAKC,QAAO,SAACC,EAAKC,GAClC,OAAID,GAAoB,MAAbA,EAAIC,GACND,EAAIC,GAGN,OACNN,GAGL,SAASO,EAASC,EAAcC,EAAWC,GAA4C,IACjFzE,EADqD0E,EAA4B,uDAAhBD,EAerE,OAXEzE,EAD0B,oBAAjBuE,EACDA,EAAaE,GACZE,MAAMC,QAAQL,GACfA,EAAaE,IAAmBC,EAEhCZ,EAAQS,EAAcE,IAAmBC,EAG/CF,IACFxE,EAAQwE,EAAUxE,IAGbA,EA+CMsD,IA5Cf,SAAeuB,GACb,IACEC,EAIED,EAJFC,KADF,EAKID,EAHFE,mBAFF,MAEgBF,EAAQC,KAFxB,EAGEE,EAEEH,EAFFG,SACAR,EACEK,EADFL,UAGIS,EAAK,SAAApE,GACT,GAAmB,MAAfA,EAAMiE,GACR,OAAO,KAGT,IAAMI,EAAYrE,EAAMiE,GAElBP,EAAeT,EADPjD,EAAMsE,MACgBH,IAAa,GAmBjD,OAAOI,YAAkBvE,EAAOqE,GAjBL,SAAAT,GACzB,IAAIzE,EAAQsE,EAASC,EAAcC,EAAWC,GAO9C,OALIA,IAAmBzE,GAAmC,kBAAnByE,IAErCzE,EAAQsE,EAASC,EAAcC,EAAf,UAA6BM,GAA7B,OAAuD,YAAnBL,EAA+B,GAAKY,YAAWZ,IAAmBA,KAGpG,IAAhBM,EACK/E,EAGT,eACG+E,EAAc/E,OAWrB,OAJAiF,EAAGK,UAEC,GACJL,EAAGM,YAAc,CAACT,GACXG,I,6BCrFM,SAASO,IAetB,OAdAA,EAAWC,OAAOC,QAAU,SAAU/D,GACpC,IAAK,IAAIzC,EAAI,EAAGA,EAAIyG,UAAU1F,OAAQf,IAAK,CACzC,IAAI0G,EAASD,UAAUzG,GAEvB,IAAK,IAAI2G,KAAOD,EACVH,OAAOK,UAAUC,eAAenG,KAAKgG,EAAQC,KAC/ClE,EAAOkE,GAAOD,EAAOC,IAK3B,OAAOlE,GAGF6D,EAASQ,MAAMrF,KAAMgF,WAf9B,mC,6BCAA,uMAyFIM,EAAM,SAAaC,EAAMrF,GAC3B,IAAIsF,EAAOR,UAEX,GAAa,MAAT9E,IAAkBkF,IAAenG,KAAKiB,EAAO,OAE/C,OAAOuF,gBAAcJ,WAAMK,EAAWF,GAGxC,IAAIG,EAAaH,EAAKlG,OAClBsG,EAAwB,IAAI5B,MAAM2B,GACtCC,EAAsB,GAAKC,IAC3BD,EAAsB,GAAKE,YAAmBP,EAAMrF,GAEpD,IAAK,IAAI3B,EAAI,EAAGA,EAAIoH,EAAYpH,IAC9BqH,EAAsBrH,GAAKiH,EAAKjH,GAIlC,OAAOkH,gBAAcJ,MAAM,KAAMO,IAGVlG,EAAK,mBAA8BA,EAAK,mBAA8BqG,kBAmF/F,SAASC,IACP,IAAK,IAAIC,EAAOjB,UAAU1F,OAAQkG,EAAO,IAAIxB,MAAMiC,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EV,EAAKU,GAAQlB,UAAUkB,GAGzB,OAAOC,YAAgBX,GAGzB,IAAIY,EAAY,WACd,IAAIC,EAAaL,EAAIX,WAAM,EAAQL,WAC/BsB,EAAO,aAAeD,EAAWC,KAErC,MAAO,CACLA,KAAMA,EACNC,OAAQ,cAAgBD,EAAO,IAAMD,EAAWE,OAAS,IACzDC,KAAM,EACNC,SAAU,WACR,MAAO,QAAUzG,KAAKsG,KAAO,IAAMtG,KAAKuG,OAAS,WAKnDtD,EAAa,SAASA,EAAWuC,GAKnC,IAJA,IAAIkB,EAAMlB,EAAKlG,OACXf,EAAI,EACJoI,EAAM,GAEHpI,EAAImI,EAAKnI,IAAK,CACnB,IAAIqI,EAAMpB,EAAKjH,GACf,GAAW,MAAPqI,EAAJ,CACA,IAAIC,OAAQ,EAEZ,cAAeD,GACb,IAAK,UACH,MAEF,IAAK,SAED,GAAI5C,MAAMC,QAAQ2C,GAChBC,EAAQ5D,EAAW2D,QAQnB,IAAK,IAAIE,KAFTD,EAAQ,GAEMD,EACRA,EAAIE,IAAMA,IACZD,IAAUA,GAAS,KACnBA,GAASC,GAKf,MAGJ,QAEID,EAAQD,EAIVC,IACFF,IAAQA,GAAO,KACfA,GAAOE,IAIX,OAAOF,GAGT,SAASI,EAAMC,EAAYhB,EAAK7D,GAC9B,IAAI8E,EAAmB,GACnBC,EAAeC,YAAoBH,EAAYC,EAAkB9E,GAErE,OAAI8E,EAAiB3H,OAAS,EACrB6C,EAGF+E,EAAelB,EAAIiB,GAG5B,IAAIG,EAAY,SAAmBC,GACjC,IAAIC,EAAQD,EAAKC,MACbC,EAAgBF,EAAKE,cACbC,aAAwB,WAElC,IAAK,IAAIjJ,EAAI,EAAGA,EAAIgJ,EAAcjI,OAAQf,IAC9BkJ,YAAaH,EAAOC,EAAchJ,IAAI,MAIpD,OAAO,MAGLmJ,EAA4BC,aAAiB,SAAUzH,EAAOoH,GAChE,IACIC,EAAgB,GAEhBvB,EAAM,WAKR,IAAK,IAAIC,EAAOjB,UAAU1F,OAAQkG,EAAO,IAAIxB,MAAMiC,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EV,EAAKU,GAAQlB,UAAUkB,GAGzB,IAAI0B,EAAazB,YAAgBX,EAAM8B,EAAMN,YAI7C,OAHAO,EAAcnI,KAAKwI,GAEnBC,YAAeP,EAAOM,GAAY,GAC3BN,EAAMpC,IAAM,IAAM0C,EAAWtB,MAelCwB,EAAU,CACZ9B,IAAKA,EACL+B,GAdO,WAKP,IAAK,IAAIC,EAAQhD,UAAU1F,OAAQkG,EAAO,IAAIxB,MAAMgE,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFzC,EAAKyC,GAASjD,UAAUiD,GAG1B,OAAOlB,EAAMO,EAAMN,WAAYhB,EAAK/C,EAAWuC,KAM/ChB,MAAO0D,qBAAWC,MAEhBC,EAAMlI,EAAMD,SAAS6H,GAEzB,OADc,EACMrC,wBAAc4C,WAAU,KAAmB5C,wBAAc2B,EAAW,CACtFE,MAAOA,EACPC,cAAeA,IACba,O,6BC5US,SAASvD,IAetB,OAdAA,EAAWC,OAAOC,QAAU,SAAU/D,GACpC,IAAK,IAAIzC,EAAI,EAAGA,EAAIyG,UAAU1F,OAAQf,IAAK,CACzC,IAAI0G,EAASD,UAAUzG,GAEvB,IAAK,IAAI2G,KAAOD,EACVH,OAAOK,UAAUC,eAAenG,KAAKgG,EAAQC,KAC/ClE,EAAOkE,GAAOD,EAAOC,IAK3B,OAAOlE,GAGF6D,EAASQ,MAAMrF,KAAMgF,WAf9B,mC,6BCAe,SAASsD,EAAgBlF,EAAK8B,EAAK7F,GAYhD,OAXI6F,KAAO9B,EACT0B,OAAOyD,eAAenF,EAAK8B,EAAK,CAC9B7F,MAAOA,EACPmJ,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZtF,EAAI8B,GAAO7F,EAGN+D,EAZT,mC,8BCAe,SAASuF,EAA8B1D,EAAQ2D,GAC5D,GAAc,MAAV3D,EAAgB,MAAO,GAC3B,IAEIC,EAAK3G,EAFLyC,EAAS,GACT6H,EAAa/D,OAAOgE,KAAK7D,GAG7B,IAAK1G,EAAI,EAAGA,EAAIsK,EAAWvJ,OAAQf,IACjC2G,EAAM2D,EAAWtK,GACbqK,EAASG,QAAQ7D,IAAQ,IAC7BlE,EAAOkE,GAAOD,EAAOC,IAGvB,OAAOlE,EAZT,mC,6BCAA,SAASgI,EAAMC,GACd,IAAInC,EAAGoC,EAAGC,EAAI,GAEd,GAAmB,kBAARF,GAAmC,kBAARA,EACrCE,GAAOF,OACD,GAAmB,kBAARA,EACjB,GAAIjF,MAAMC,QAAQgF,GACjB,IAAKnC,EAAE,EAAGA,EAAImC,EAAI3J,OAAQwH,IACrBmC,EAAInC,KACHoC,EAAIF,EAAMC,EAAInC,OACjBqC,IAAQA,GAAO,KACfA,GAAOD,QAKV,IAAKpC,KAAKmC,EACLA,EAAInC,KACPqC,IAAQA,GAAO,KACfA,GAAOrC,GAMX,OAAOqC,EAGO,eAEd,IADA,IAASC,EAAKC,EAAV9K,EAAE,EAAW4K,EAAI,GACd5K,EAAIyG,UAAU1F,SAChB8J,EAAMpE,UAAUzG,QACf8K,EAAIL,EAAMI,MACbD,IAAQA,GAAO,KACfA,GAAOE,GAIV,OAAOF,I,uFCpCJG,EAAkB,o9HAYPC,EAVkBC,aAAQ,SAAUrF,GACjD,OAAOmF,EAAgBG,KAAKtF,IAAgC,MAAvBA,EAAKuF,WAAW,IAE3B,MAAvBvF,EAAKuF,WAAW,IAEhBvF,EAAKuF,WAAW,GAAK,M,+BCDtBC,EAA2BJ,EAE3BK,EAA2B,SAAkC1E,GAC/D,MAAe,UAARA,GAGL2E,EAA8B,SAAqCC,GACrE,MAAsB,kBAARA,GAGdA,EAAIJ,WAAW,GAAK,GAAKC,EAA2BC,GAElDG,EAA4B,SAAmCD,EAAK5F,EAAS8F,GAC/E,IAAIC,EAEJ,GAAI/F,EAAS,CACX,IAAIgG,EAA2BhG,EAAQ+F,kBACvCA,EAAoBH,EAAIK,uBAAyBD,EAA2B,SAAUE,GACpF,OAAON,EAAIK,sBAAsBC,IAAaF,EAAyBE,IACrEF,EAON,MAJiC,oBAAtBD,GAAoCD,IAC7CC,EAAoBH,EAAIK,uBAGnBF,GAGLI,EAAqB3K,EAAK,mBAA8BA,EAAK,mBAA8B,SAA4B4K,GACzHA,KAOF,IAEIlD,EAAY,SAAmBC,GACjC,IAAIC,EAAQD,EAAKC,MACbM,EAAaP,EAAKO,WAClB2C,EAAclD,EAAKkD,YACvB1C,YAAeP,EAAOM,EAAY2C,GATlCF,GAUoC,WAClC,OAAO5C,YAAaH,EAAOM,EAAY2C,MAGzC,OAAO,MAgIMC,EA7HI,SAASA,EAAaV,EAAK5F,GAO5C,IAEIuG,EACAC,EAHAV,EAASF,EAAIa,iBAAmBb,EAChCc,EAAUZ,GAAUF,EAAIe,gBAAkBf,OAI9BpE,IAAZxB,IACFuG,EAAiBvG,EAAQ4G,MACzBJ,EAAkBxG,EAAQlD,QAG5B,IAAIiJ,EAAoBF,EAA0BD,EAAK5F,EAAS8F,GAC5De,EAA2Bd,GAAqBJ,EAA4Be,GAC5EI,GAAeD,EAAyB,MAC5C,OAAO,WACL,IAAIvF,EAAOR,UACPuB,EAASyD,QAAmCtE,IAAzBoE,EAAImB,iBAAiCnB,EAAImB,iBAAiBC,MAAM,GAAK,GAM5F,QAJuBxF,IAAnB+E,GACFlE,EAAOnH,KAAK,SAAWqL,EAAiB,KAG3B,MAAXjF,EAAK,SAA8BE,IAAhBF,EAAK,GAAG2F,IAC7B5E,EAAOnH,KAAKiG,MAAMkB,EAAQf,OACrB,CACD4F,EAIJ7E,EAAOnH,KAAKoG,EAAK,GAAG,IAIpB,IAHA,IAAIkB,EAAMlB,EAAKlG,OACXf,EAAI,EAEDA,EAAImI,EAAKnI,IAKdgI,EAAOnH,KAAKoG,EAAKjH,GAAIiH,EAAK,GAAGjH,IAKjC,IAAI8M,EAAS1D,aAAiB,SAAUzH,EAAOoH,EAAOgE,GACpD,IAAIC,EAAWP,GAAe9K,EAAMsL,IAAMZ,EACtCzI,EAAY,GACZsJ,EAAsB,GACtBC,EAAcxL,EAElB,GAAmB,MAAfA,EAAMsE,MAAe,CAGvB,IAAK,IAAIU,KAFTwG,EAAc,GAEExL,EACdwL,EAAYxG,GAAOhF,EAAMgF,GAG3BwG,EAAYlH,MAAQ0D,qBAAWC,KAGF,kBAApBjI,EAAMiC,UACfA,EAAYgF,YAAoBG,EAAMN,WAAYyE,EAAqBvL,EAAMiC,WACjD,MAAnBjC,EAAMiC,YACfA,EAAYjC,EAAMiC,UAAY,KAGhC,IAAIyF,EAAazB,YAAgBI,EAAOoF,OAAOF,GAAsBnE,EAAMN,WAAY0E,GACvFvJ,GAAamF,EAAMpC,IAAM,IAAM0C,EAAWtB,UAElBZ,IAApBgF,IACFvI,GAAa,IAAMuI,GAGrB,IAAIkB,EAAyBZ,QAAqCtF,IAAtBuE,EAAkCJ,EAA4B0B,GAAYR,EAClHc,EAAW,GAEf,IAAK,IAAI3F,KAAQhG,EACX8K,GAAwB,OAAT9E,GAGnB0F,EAAuB1F,KACrB2F,EAAS3F,GAAQhG,EAAMgG,IAM3B,OAFA2F,EAAS1J,UAAYA,EACrB0J,EAASP,IAAMA,EACK7F,wBAAc4C,WAAU,KAAmB5C,wBAAc2B,EAAW,CACtFE,MAAOA,EACPM,WAAYA,EACZ2C,YAAiC,kBAAbgB,IACL9F,wBAAc8F,EAAUM,OAyB3C,OAvBAR,EAAOS,iBAAiCpG,IAAnB+E,EAA+BA,EAAiB,WAAgC,kBAAZG,EAAuBA,EAAUA,EAAQkB,aAAelB,EAAQtE,MAAQ,aAAe,IAChL+E,EAAOU,aAAejC,EAAIiC,aAC1BV,EAAOV,eAAiBU,EACxBA,EAAOR,eAAiBD,EACxBS,EAAOJ,iBAAmB1E,EAC1B8E,EAAOlB,sBAAwBF,EAC/BnF,OAAOyD,eAAe8C,EAAQ,WAAY,CACxChM,MAAO,WAML,MAAO,IAAMqL,KAIjBW,EAAOW,cAAgB,SAAUC,EAASC,GACxC,OAAO1B,EAAayB,EAASpH,YAAS,GAAIX,EAASgI,EAAa,CAC9DjC,kBAAmBF,EAA0BsB,EAAQa,GAAa,MAChE7G,WAAM,EAAQkB,IAGb8E,ICzKPc,EAAY3B,EAAa4B,OAHlB,CAAC,IAAK,OAAQ,UAAW,OAAQ,UAAW,QAAS,QAAS,IAAK,OAAQ,MAAO,MAAO,MAAO,aAAc,OAAQ,KAAM,SAAU,SAAU,UAAW,OAAQ,OAAQ,MAAO,WAAY,OAAQ,WAAY,KAAM,MAAO,UAAW,MAAO,SAAU,MAAO,KAAM,KAAM,KAAM,QAAS,WAAY,aAAc,SAAU,SAAU,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAAQ,SAAU,SAAU,KAAM,OAAQ,IAAK,SAAU,MAAO,QAAS,MAAO,MAAO,SAAU,QAAS,SAAU,KAAM,OAAQ,OAAQ,MAAO,OAAQ,UAAW,OAAQ,WAAY,OAAQ,QAAS,MAAO,WAAY,SAAU,KAAM,WAAY,SAAU,SAAU,IAAK,QAAS,UAAW,MAAO,WAAY,IAAK,KAAM,KAAM,OAAQ,IAAK,OAAQ,SAAU,UAAW,SAAU,QAAS,SAAU,OAAQ,SAAU,QAAS,MAAO,UAAW,MAAO,QAAS,QAAS,KAAM,WAAY,QAAS,KAAM,QAAS,OAAQ,QAAS,KAAM,QAAS,IAAK,KAAM,MAAO,QAAS,MAC77B,SAAU,WAAY,OAAQ,UAAW,gBAAiB,IAAK,QAAS,OAAQ,iBAAkB,OAAQ,OAAQ,UAAW,UAAW,WAAY,iBAAkB,OAAQ,OAAQ,MAAO,OAAQ,SAGhMC,SAAQ,SAAUC,GAErBH,EAAUG,GAAWH,EAAUG,MAGlBH,QCXA,SAASI,EAAOzC,EAAK5F,GAiBlC,OAhBsBsI,EAAS1C,EAAK5F,G,qBCNhCuI,EAAY,CAAC,WAGnB,SAASC,EAAQC,GACf,OAAyB,IAAlBA,EAAOrN,OASD,SAASsN,EAAgB1M,GAChC,IACJ2M,EACE3M,EADF2M,QAEIC,EAAQnE,YAA8BzI,EAAOuM,GAE/CM,EAAWF,GAAW,GAQ1B,OAPA/H,OAAOgE,KAAKgE,GAAOE,OAAOX,SAAQ,SAAAnH,GAE9B6H,GADU,UAAR7H,EACUwH,EAAQK,GAAY7M,EAAMgF,GAAOR,YAAWxE,EAAMgF,IAElD,GAAJ,OAAOwH,EAAQK,GAAY7H,EAAMR,YAAWQ,IAA5C,OAAmDR,YAAWxE,EAAMgF,GAAKuB,gBAG9EsG,E,mCCxBT,SAASE,IAAgC,2BAATC,EAAS,yBAATA,EAAS,gBACvC,IAAMC,EAAUD,EAAQ1J,QAAO,SAACsF,EAAMsE,GAAP,OAAkBtE,EAAK6C,OAAO7G,OAAOgE,KAAKsE,MAAU,IAC7EC,EAAQ,IAAIC,IAAIH,GACtB,OAAOD,EAAQK,OAAM,SAAAH,GAAM,OAAIC,EAAMG,OAAS1I,OAAOgE,KAAKsE,GAAQ9N,UAGpE,SAASmO,EAASC,EAAS9G,GACzB,MAA0B,oBAAZ8G,EAAyBA,EAAQ9G,GAAO8G,EA4FxD,IAAMC,EAxFC,WAA4F,IAApDC,EAAoD,uDAA7BC,IAC9DC,EAAsBhJ,OAAOgE,KAAK8E,GAAsBpK,QAAO,SAACC,EAAKsK,GAIzE,OAHAH,EAAqBG,GAAanJ,YAAYyH,SAAQ,SAAAjC,GACpD3G,EAAI2G,GAAYwD,EAAqBG,MAEhCtK,IACN,IAEH,SAASuK,EAAc7J,EAAM9E,EAAOmF,GAAO,MACnCyJ,GAAU,mBACb9J,EAAO9E,GADM,sBAEdmF,GAFc,GAIV0J,EAAgBJ,EAAoB3J,GAC1C,OAAO+J,EAAgBA,EAAcD,GAAjB,eACjB9J,EAAO9E,GAIZ,SAASsO,EAAgBzN,GACvB,MAGIA,GAAS,GAFXiO,EADF,EACEA,GADF,IAEE3J,aAFF,MAEU,GAFV,EAKA,IAAK2J,EACH,OAAO,KAST,SAASC,EAASC,GAChB,IAAIC,EAAWD,EAEf,GAAuB,oBAAZA,EACTC,EAAWD,EAAQ7J,QACd,GAAuB,kBAAZ6J,EAEhB,OAAOA,EAGT,IAAKC,EACH,OAAO,KAGT,IAAMC,EAAmBC,YAA4BhK,EAAMiK,aACrDC,EAAkB5J,OAAOgE,KAAKyF,GAChCvI,EAAMuI,EA6BV,OA5BAzJ,OAAOgE,KAAKwF,GAAUjC,SAAQ,SAAAsC,GAC5B,IAAMtP,EAAQoO,EAASa,EAASK,GAAWnK,GAE3C,GAAc,OAAVnF,QAA4BqG,IAAVrG,EACpB,GAAqB,kBAAVA,EACT,GAAIyO,EAAoBa,GACtB3I,EAAMe,YAAMf,EAAKgI,EAAcW,EAAUtP,EAAOmF,QAC3C,CACL,IAAMoK,EAAoBnK,YAAkB,CAC1CD,SACCnF,GAAO,SAAAgK,GAAC,sBACRsF,EAAWtF,MAGV4D,EAAoB2B,EAAmBvP,GACzC2G,EAAI2I,GAAYhB,EAAgB,CAC9BQ,GAAI9O,EACJmF,UAGFwB,EAAMe,YAAMf,EAAK4I,QAIrB5I,EAAMe,YAAMf,EAAKgI,EAAcW,EAAUtP,EAAOmF,OAI/CqK,YAAwBH,EAAiB1I,GAGlD,OAAOhC,MAAMC,QAAQkK,GAAMA,EAAGW,IAAIV,GAAYA,EAASD,GAGzD,OAAOR,EAEeoB,GACxBpB,EAAgB/I,YAAc,CAAC,MAChB+I,QCvGTlB,EAAY,CAAC,OAAQ,OAAQ,uBAAwB,SAAU,qBAC/DuC,EAAa,CAAC,SACdC,EAAa,CAAC,SAOpB,SAASvC,EAAQtJ,GACf,OAAmC,IAA5B0B,OAAOgE,KAAK1F,GAAK9D,OAG1B,IAAM4P,EAAoB,SAAC5I,EAAM9B,GAC/B,OAAIA,EAAM2K,YAAc3K,EAAM2K,WAAW7I,IAAS9B,EAAM2K,WAAW7I,GAAM8I,eAChE5K,EAAM2K,WAAW7I,GAAM8I,eAGzB,MAGHC,EAAmB,SAAC/I,EAAM9B,GAC9B,IAAI8K,EAAW,GAEX9K,GAASA,EAAM2K,YAAc3K,EAAM2K,WAAW7I,IAAS9B,EAAM2K,WAAW7I,GAAMgJ,WAChFA,EAAW9K,EAAM2K,WAAW7I,GAAMgJ,UAGpC,IAAMC,EAAiB,GAKvB,OAJAD,EAASjD,SAAQ,SAAAmD,GACf,IAAMtK,EAAM0H,EAAgB4C,EAAWtP,OACvCqP,EAAerK,GAAOsK,EAAW7M,SAE5B4M,GAGHE,EAAmB,SAACvP,EAAOqG,EAAQ/B,EAAO8B,GAC9C,IAAIoJ,EAAmBC,EAEvB,EAEIzP,EADF0P,kBADF,MACe,GADf,EAGML,EAAiB,GACjBM,EAAyB,MAATrL,GAAmE,OAAzCkL,EAAoBlL,EAAM2K,aAAoF,OAApDQ,EAAwBD,EAAkBpJ,SAA9G,EAAwIqJ,EAAsBL,SAiBpM,OAfIO,GACFA,EAAcxD,SAAQ,SAAAyD,GACpB,IAAIC,GAAU,EACdjL,OAAOgE,KAAKgH,EAAa5P,OAAOmM,SAAQ,SAAAnH,GAClC0K,EAAW1K,KAAS4K,EAAa5P,MAAMgF,IAAQhF,EAAMgF,KAAS4K,EAAa5P,MAAMgF,KACnF6K,GAAU,MAIVA,GACFR,EAAenQ,KAAKmH,EAAOqG,EAAgBkD,EAAa5P,YAKvDqP,GAIF,SAAStF,EAAkB9F,GAChC,MAAgB,eAATA,GAAkC,UAATA,GAA6B,OAATA,GAA0B,OAATA,EAEhE,IAAM6L,EAAqBC,c,ICjE5B1D,EDuES,WAAkC,IAAZ2D,EAAY,uDAAJ,GAC3C,EAKIA,EAJFC,oBADF,MACiBH,EADjB,IAKIE,EAHFE,6BAFF,MAE0BnG,EAF1B,IAKIiG,EAFFG,6BAHF,MAG0BpG,EAH1B,IAKIiG,EADFvC,uBAJF,MAIoB2C,EAJpB,EAMA,OAAO,SAACxG,GAA2B,IAa7BgB,EAbOyF,EAAsB,uDAAP,GAElBC,EAKJD,EALFjK,KACMmK,EAIJF,EAJFG,KACsBC,EAGpBJ,EAHFK,qBACQC,EAENN,EAFFO,OACAC,EACER,EADFQ,kBAEI7M,EAAUyE,YAA8B4H,EAAc9D,GAGtDmE,OAAqDlL,IAA9BiL,EAA0CA,EAA4BF,GAAmC,SAAlBA,IAA4B,EAC1IK,EAASD,IAAe,EAS9B,IAAIG,EAA0B/G,EAER,SAAlBwG,EACFO,EAA0BZ,EACjBK,IAETO,EAA0BX,GAG5B,IAAMY,EAAwBC,EAAmBpH,EAAKjF,YAAS,CAC7DoF,kBAAmB+G,EACnBlG,SACC5G,IAEGiN,EAAoB,SAACC,GAA6B,2BAAhBC,EAAgB,iCAAhBA,EAAgB,kBACtD,IAAMC,EAA8BD,EAAcA,EAAYvC,KAAI,SAAAyC,GAKhE,MAA4B,oBAAdA,GAA4BA,EAAU5G,iBAAmB4G,EAAY,SAAAlK,GAC7E,IACKmK,EACLnK,EADF7C,MAEEsI,EAAQnE,YAA8BtB,EAAM2H,GAEhD,OAAOuC,EAAU1M,YAAS,CACxBL,MAAOkI,EAAQ8E,GAAcrB,EAAeqB,GAC3C1E,KACDyE,KACD,GACDE,EAAsBL,EAEtBZ,GAAiBO,GACnBO,EAA4BlS,MAAK,SAAAc,GAC/B,IAAMsE,EAAQkI,EAAQxM,EAAMsE,OAAS2L,EAAejQ,EAAMsE,MACpD4K,EAAiBF,EAAkBsB,EAAehM,GAExD,GAAI4K,EAAgB,CAClB,IAAMsC,EAAyB,GAM/B,OALA5M,OAAO6M,QAAQvC,GAAgB/C,SAAQ,YAA0B,uBAAxBuF,EAAwB,KAAfC,EAAe,KAC/DH,EAAuBE,GAAgC,oBAAdC,EAA2BA,EAAUhN,YAAS,GAAI3E,EAAO,CAChGsE,WACIqN,KAEDd,EAAkB7Q,EAAOwR,GAGlC,OAAO,QAIPlB,IAAkBI,GACpBU,EAA4BlS,MAAK,SAAAc,GAC/B,IAAMsE,EAAQkI,EAAQxM,EAAMsE,OAAS2L,EAAejQ,EAAMsE,MAC1D,OAAOiL,EAAiBvP,EAAOmP,EAAiBmB,EAAehM,GAAQA,EAAOgM,MAI7EM,GACHQ,EAA4BlS,MAAK,SAAAc,GAC/B,IAAMsE,EAAQkI,EAAQxM,EAAMsE,OAAS2L,EAAejQ,EAAMsE,MAC1D,OAAOmJ,EAAgB9I,YAAS,GAAI3E,EAAO,CACzCsE,cAKN,IAAMsN,EAAwBR,EAA4BhS,OAAS+R,EAAY/R,OAE/E,GAAI0E,MAAMC,QAAQmN,IAAaU,EAAwB,EAAG,CACxD,IAAMC,EAAe,IAAI/N,MAAM8N,GAAuBE,KAAK,KAE3DP,EAAsB,GAAH,mBAAOL,GAAP,YAAoBW,KACnB5G,IAApB,sBAA8BiG,EAASjG,KAAvC,YAA+C4G,QAClB,oBAAbX,GAIlBA,EAASzG,iBAAmByG,IAE1BK,EAAsB,SAAAQ,GAChB,IACKT,EACLS,EADFzN,MAEEsI,EAAQnE,YAA8BsJ,EAAOhD,GAEjD,OAAOmC,EAASvM,YAAS,CACvBL,MAAOkI,EAAQ8E,GAAcrB,EAAeqB,GAC3C1E,MAIP,IAAMnN,EAAYsR,EAAqB,WAArB,GAAsBQ,GAAtB,mBAA8CH,KAgBhE,OAAO3R,GAOT,OAJIsR,EAAsBiB,aACxBf,EAAkBe,WAAajB,EAAsBiB,YAGhDf,GCvNI3G,CAAa,CAC1B2F,a,MAAAA,EACAC,sBAJmC,SAAAjM,GAAI,OAAI8F,EAAkB9F,IAAkB,YAATA,KAMzDoI,O,gZCLT4F,G,MAAqB,SAAA7L,G,IACnB7E,EAAU2Q,c,OAChB3Q,gBAEA,ICLI4Q,EAA+BF,EAArC,kBCAM1Q,EAAwB0Q,EAA9B,UCQMG,c,WAKJ,G,2BACE,UAEA,MAAa,CACX5Q,SAAUxB,UAAcwB,U,EAQ1B,c,EACA,sBAEKxB,EAAL,gB,EACE,SAAgBA,EAAA,gBAAqB,SAAAwB,GAC/B,EAAJ,W,EACE,SAAc,CAAEA,a,EAEhB,uB,qBAxBD6Q,iBAAP,Y,MACS,CAAE1P,KAAF,IAAa2P,IAAb,IAAuBC,OAAvB,GAAmCC,QAAsB,MAAbC,I,2BA6BrDC,6B,KACE,cAEI5S,KAAJ,kB,KACE,SAAc,CAAE0B,SAAU1B,KAAK6S,oB,EAInCC,gCACM9S,KAAJ,W,KACE,W,KACA,c,KACA,wB,EAIJD,kB,OAEI,kBAACyB,EAAD,UACEnC,MAAO,CACLQ,QAASG,KAAKE,MADT,QAELwB,SAAU1B,KAAK+S,MAFV,SAGLhQ,MAAOuP,mBAAwBtS,KAAK+S,MAAMrR,SAHrC,UAILsR,cAAehT,KAAKE,MAAM8S,gBAG5B,kBAACC,EAAD,UACEhT,SAAUD,KAAKE,MAAMD,UADvB,KAEEZ,MAAOW,KAAKE,MAAML,Y,EA3DtByS,CAAe5S,IAAMC,WCAAD,IAAMC,UCRTD,IAAMC,UCA9B,IAAM2H,EAAN,GAEI4L,EAAJ,EAuBA,SAASlQ,EAAU2P,EAAUzO,QAAc,IAAdA,MAAU,KACd,kBAAZA,GAAwBF,cAAnC,MACEE,EAAU,CAAErB,KAAMqB,I,MAFqB,EAKjCrB,EALiC,O,IAAA,MAK3BT,OAL2B,S,IAAA,OAKZK,OALY,S,IAAA,UAKID,OALJ,S,MAO3B,GAAGmJ,OAAjB,GAEO,QAAa,c,IACb9I,GAAL,KAAaA,EAAa,OAAO,K,GACjC,EAAa,OAAOsQ,E,MAhCxB,c,IACQC,EAAW,GAAGlP,EAAN,IAAoBA,EAApB,OAAqCA,EAAnD,UACMmP,EAAY/L,OAAoBA,KAAtC,I,GAEI+L,EAAJ,GAAqB,OAAOA,EAAP,G,IAEfvK,EAAN,GAEMwK,EAAS,CAAEC,OADFC,IAAa3Q,EAAMiG,EAAlC,GACyBA,Q,OAErBoK,EAbN,MAcIG,OACAH,KAGF,EAmB2BO,CAAY5Q,EAAM,CACzC6Q,IADyC,EAEzCjR,OAFyC,EAGzCD,cAHM+Q,EAJ6B,SAIrBzK,EAJqB,OAS/B/F,EAAQwQ,OAAd,G,IAEA,EAAY,OAAO,K,IAEZf,EAAkBzP,EAbY,GAatB4Q,EAAU5Q,EAbY,SAc/B2P,EAAUC,IAAhB,E,OAEIvQ,IAAJ,EAA8B,KAEvB,CACLS,KADK,EAEL2P,IAAK3P,cAAgB2P,EAAhB3P,IAFA,EAGL6P,QAHK,EAILD,OAAQ3J,EAAA,QAAY,gB,OAClB8K,EAAK1O,EAAL0O,MAAiBD,EAAjBC,GACA,IAFM,OAtBZ,M,ICPIC,c,sFACJ9T,kB,kBAEI,kBAACyB,EAAD,eACG,YACC,mB,IAEME,EAAW,kBAAuBD,EAAxC,SACMsB,EAAQ,sBACV,QADU,cAEV,aACAC,EAAUtB,EAAD,SAAoB,EAD7B,OAEAD,EAJJ,MAMMvB,EAAQ,OAAH,IAAG,CAAH,MAAiBwB,SAAjB,EAA2BqB,U,EAEA,EAZ5B,MAYJ9C,EAZI,WAYMqB,EAZN,YAYiBvB,EAZjB,S,OAgBNiE,kBAxCd,SAAyB/D,G,OACvB,IAAOP,sBAuCgCoU,CAA/B,KACE7T,QAIA,kBAACuB,EAAD,UAAwBnC,MAAOa,GAC5BA,QACGD,EACsB,oBAAbA,EAGHA,EAHJ,GADM,EAMNqB,EACA5B,oBADS,GAETK,EACAA,EADM,GATXG,KAYuB,oBAAbD,EAGLA,EAHF,GAdR,U,EAxBJ4T,CAAcnU,IAAMC,WCrB1B,SAASoU,EAAgBlR,G,MAChBA,oBAAgC,IAAvC,EAYF,SAASmR,EAAcC,EAAUvS,G,IAC/B,EAAe,OAAOA,E,IAEhBwS,EAAOH,EAAb,G,OAEA,IAAIrS,sBAA8CA,E,eAElD,GAEEiR,SAAUjR,kBAAyBwS,EAAzBxS,UAId,SAASyS,EAAUzS,G,MACU,kBAAbA,EAAwBA,EAAWG,YAAjD,GAGF,SAASuS,EAAcC,G,OACd,WACLC,iBAIJ,SAASC,KAQkB7U,IAAMC,U,ICzC3B6U,c,sFACJzU,kB,kBAEI,kBAACyB,EAAD,eACG,SAAAC,GACC,mB,IAIA,EALU,EAGJC,EAAW,kBAAuBD,EAAxC,S,OAQA/B,qBAAuB,QAAvBA,UAA4C,SAAA+U,G,GACtC1R,SAAiBrD,mBAArB,GAAkD,CAChDgV,I,IAEM7R,EAAO4R,cAAoBA,QAAjC,KAEA1R,EAAQF,EACJG,EAAUtB,EAAD,wBAAyB+S,EAAzB,OAAsC5R,UAC/CpB,EAFJsB,UAMGA,EACH,mBAA4B,CAAErB,SAAF,EAAYiT,cAAe5R,IAD3D,S,EA3BJyR,CAAe9U,IAAMC,WCJ3B,IAAMuI,EAAaxI,IAAnB,WAEO,SAASkV,I,OAQP1M,EAAP,GAGK,SAAS2M,I,OAQP3M,KAAP,SAGK,SAAS4M,I,IAQR/R,EAAQmF,KAAd,M,OACOnF,EAAQA,EAAH,OAAZ,K,+FCpCa,SAASgS,EAAmBzW,GACzC,OCJa,SAA4BA,GACzC,GAAI0F,MAAMC,QAAQ3F,GAAM,OAAO,OAAA0W,EAAA,GAAiB1W,GDGzC,CAAkBA,IAAQ,OAAA2W,EAAA,GAAgB3W,IAAQ,OAAAkB,EAAA,GAA2BlB,IELvE,WACb,MAAM,IAAI4W,UAAU,wIFIwE,K,2EGJ/E,SAASC,EAAc1C,GACpC,IACEjO,EAGEiO,EAHFjO,MACA8B,EAEEmM,EAFFnM,KACApG,EACEuS,EADFvS,MAGF,OAAKsE,GAAUA,EAAM2K,YAAe3K,EAAM2K,WAAW7I,IAAU9B,EAAM2K,WAAW7I,GAAMyF,aCAzE,SAAsBA,EAAc7L,GACjD,IAAMkV,EAASvQ,YAAS,GAAI3E,GAO5B,OALA4E,OAAOgE,KAAKiD,GAAcM,SAAQ,SAAAjC,QACP1E,IAArB0P,EAAOhL,KACTgL,EAAOhL,GAAY2B,EAAa3B,OAG7BgL,EDJAC,CAAa7Q,EAAM2K,WAAW7I,GAAMyF,aAAc7L,GAHhDA,E,wBEPI,SAASoV,EAAT,GAIb,OCJa,YAIZ,IAHDpV,EAGC,EAHDA,MACAoG,EAEC,EAFDA,KACA6J,EACC,EADDA,aAQA,OALoBgF,EAAc,CAChC3Q,MAFY+Q,YAASpF,GAGrB7J,OACApG,UDLKsV,CAAoB,CACzBtV,MAFD,EAFDA,MAKEoG,KAHD,EADDA,KAKE6J,qB,6BETW,SAAStL,IAetB,OAdAA,EAAWC,OAAOC,QAAU,SAAU/D,GACpC,IAAK,IAAIzC,EAAI,EAAGA,EAAIyG,UAAU1F,OAAQf,IAAK,CACzC,IAAI0G,EAASD,UAAUzG,GAEvB,IAAK,IAAI2G,KAAOD,EACVH,OAAOK,UAAUC,eAAenG,KAAKgG,EAAQC,KAC/ClE,EAAOkE,GAAOD,EAAOC,IAK3B,OAAOlE,GAGF6D,EAASQ,MAAMrF,KAAMgF,WAf9B,mC,6BCAA,oSASII,EAAiB,GAAGA,eAEpBqQ,EAAqCrD,wBAMlB,qBAAhBsD,YAA6CC,YAAY,CAC9DzQ,IAAK,QACF,MAML,IAAI0Q,EAAgBH,EAAoBI,SAKpClO,EAAmB,SAA0BmO,GAE/C,OAAoBpV,sBAAW,SAAUR,EAAOoL,GAE9C,IAAIhE,EAAQY,qBAAWuN,GACvB,OAAOK,EAAK5V,EAAOoH,EAAOgE,OAI1BnD,EAA8BiK,wBAAc,IA6DhD,IA2CI/H,EAAqB3K,EAAK,mBAA8BA,EAAK,mBAA8B,SAA4B4K,GACzHA,KAEF,SAAS9C,EAAwB8C,GAE/BD,EAAmBC,GAGrB,IAAIyL,EAAe,qCAEfjQ,EAAqB,SAA4BP,EAAMrF,GAMzD,IAAI2L,EAAW,GAEf,IAAK,IAAI3G,KAAOhF,EACVkF,EAAenG,KAAKiB,EAAOgF,KAC7B2G,EAAS3G,GAAOhF,EAAMgF,IAY1B,OARA2G,EAASkK,GAAgBxQ,EAQlBsG,GAGLzE,EAAY,SAAmBC,GACjC,IAAIC,EAAQD,EAAKC,MACbM,EAAaP,EAAKO,WAClB2C,EAAclD,EAAKkD,YACvB1C,YAAeP,EAAOM,EAAY2C,GACtB/C,GAAwB,WAClC,OAAOC,YAAaH,EAAOM,EAAY2C,MAGzC,OAAO,MAGL1E,EAAyB8B,GAAiB,SAAUzH,EAAOoH,EAAOgE,GACpE,IAAI0K,EAAU9V,EAAM8F,IAIG,kBAAZgQ,QAAsDtQ,IAA9B4B,EAAMN,WAAWgP,KAClDA,EAAU1O,EAAMN,WAAWgP,IAG7B,IAAIC,EAAmB/V,EAAM6V,GACzB9O,EAAmB,CAAC+O,GACpB7T,EAAY,GAEe,kBAApBjC,EAAMiC,UACfA,EAAYgF,YAAoBG,EAAMN,WAAYC,EAAkB/G,EAAMiC,WAC9C,MAAnBjC,EAAMiC,YACfA,EAAYjC,EAAMiC,UAAY,KAGhC,IAAIyF,EAAazB,YAAgBc,OAAkBvB,EAAWwC,qBAAWC,IAUzEhG,GAAamF,EAAMpC,IAAM,IAAM0C,EAAWtB,KAC1C,IAAIuF,EAAW,GAEf,IAAK,IAAI3G,KAAOhF,EACVkF,EAAenG,KAAKiB,EAAOgF,IAAgB,QAARA,GAAiBA,IAAQ6Q,IAC9DlK,EAAS3G,GAAOhF,EAAMgF,IAM1B,OAFA2G,EAASP,IAAMA,EACfO,EAAS1J,UAAYA,EACDsD,wBAAc4C,WAAU,KAAmB5C,wBAAc2B,EAAW,CACtFE,MAAOA,EACPM,WAAYA,EACZ2C,YAAyC,kBAArB0L,IACLxQ,wBAAcwQ,EAAkBpK,Q,sMCpOtC8H,EAAS,CACpBuC,GAAI,EAEJC,GAAI,IAEJC,GAAI,IAEJC,GAAI,KAEJC,GAAI,MAGAC,EAAqB,CAGzBzN,KAAM,CAAC,KAAM,KAAM,KAAM,KAAM,MAC/B0N,GAAI,SAAAtR,GAAG,kCAAyByO,EAAOzO,GAAhC,SAEF,SAAST,EAAkBvE,EAAOqE,EAAWkS,GAClD,IAAMjS,EAAQtE,EAAMsE,OAAS,GAE7B,GAAIR,MAAMC,QAAQM,GAAY,CAC5B,IAAMmS,EAAmBlS,EAAMiK,aAAe8H,EAC9C,OAAOhS,EAAUf,QAAO,SAACC,EAAKC,EAAMiT,GAElC,OADAlT,EAAIiT,EAAiBF,GAAGE,EAAiB5N,KAAK6N,KAAWF,EAAmBlS,EAAUoS,IAC/ElT,IACN,IAGL,GAAyB,kBAAdc,EAAwB,CACjC,IAAMmS,EAAmBlS,EAAMiK,aAAe8H,EAC9C,OAAOzR,OAAOgE,KAAKvE,GAAWf,QAAO,SAACC,EAAKmT,GAEzC,IAA4E,IAAxE9R,OAAOgE,KAAK4N,EAAiB/C,QAAUA,GAAQ5K,QAAQ6N,GAAoB,CAE7EnT,EADiBiT,EAAiBF,GAAGI,IACrBH,EAAmBlS,EAAUqS,GAAaA,OACrD,CACL,IAAMC,EAASD,EACfnT,EAAIoT,GAAUtS,EAAUsS,GAG1B,OAAOpT,IACN,IAIL,OADegT,EAAmBlS,GAiC7B,SAASiK,IAAmD,IAC7DsI,EADsCC,EAAuB,uDAAJ,GAGvDC,EAAyC,MAApBD,GAAuF,OAAlDD,EAAwBC,EAAiBjO,WAAnD,EAA4EgO,EAAsBtT,QAAO,SAACC,EAAKyB,GAGnK,OADAzB,EAD2BsT,EAAiBP,GAAGtR,IACrB,GACnBzB,IACN,IACH,OAAOuT,GAAsB,GAExB,SAASnI,EAAwBoI,EAAgBtU,GACtD,OAAOsU,EAAezT,QAAO,SAACC,EAAKyB,GACjC,IAAMgS,EAAmBzT,EAAIyB,GAO7B,QAN4BgS,GAA6D,IAAzCpS,OAAOgE,KAAKoO,GAAkB5X,gBAGrEmE,EAAIyB,GAGNzB,IACNd,K,sKCnGL,IAAMwU,EAAa,CACjBC,EAAG,SACHC,EAAG,WAECC,EAAa,CACjBC,EAAG,MACHC,EAAG,QACHC,EAAG,SACHC,EAAG,OACHrO,EAAG,CAAC,OAAQ,SACZH,EAAG,CAAC,MAAO,WAEPyO,EAAU,CACdC,QAAS,KACTC,QAAS,KACTC,SAAU,KACVC,SAAU,MAKNC,EC1BS,SAAiB1T,GAC9B,IAAMgD,EAAQ,GACd,OAAO,SAAAV,GAKL,YAJmBlB,IAAf4B,EAAMV,KACRU,EAAMV,GAAOtC,EAAGsC,IAGXU,EAAMV,IDmBQ4C,EAAQ,SAAArF,GAE/B,GAAIA,EAAK7E,OAAS,EAAG,CACnB,IAAIqY,EAAQxT,GAGV,MAAO,CAACA,GAFRA,EAAOwT,EAAQxT,GAMnB,MAAeA,EAAKZ,MAAM,IAA1B,mBAAO0U,EAAP,KAAUR,EAAV,KACMS,EAAWf,EAAWc,GACtBE,EAAYb,EAAWG,IAAM,GACnC,OAAOzT,MAAMC,QAAQkU,GAAaA,EAAUrJ,KAAI,SAAAsJ,GAAG,OAAIF,EAAWE,KAAO,CAACF,EAAWC,MAEjFE,EAAa,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,SAAU,YAAa,cAAe,eAAgB,aAAc,UAAW,UAAW,eAAgB,oBAAqB,kBAAmB,cAAe,mBAAoB,kBAC5OC,EAAc,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,UAAW,aAAc,eAAgB,gBAAiB,cAAe,WAAY,WAAY,gBAAiB,qBAAsB,mBAAoB,eAAgB,oBAAqB,mBACzPC,EAAc,GAAH,OAAOF,EAAeC,GAChC,SAASE,EAAgBhU,EAAOH,EAAUoU,EAAcrO,GAC7D,IAAIsO,EAEEC,EAAwD,OAAxCD,EAAWvV,YAAQqB,EAAOH,IAAqBqU,EAAWD,EAEhF,MAA4B,kBAAjBE,EACF,SAAAC,GACL,MAAmB,kBAARA,EACFA,EASFD,EAAeC,GAItB5U,MAAMC,QAAQ0U,GACT,SAAAC,GACL,MAAmB,kBAARA,EACFA,EAWFD,EAAaC,IAII,oBAAjBD,EACFA,EAOF,aAEF,SAASE,EAAmBrU,GACjC,OAAOgU,EAAgBhU,EAAO,UAAW,GAEpC,SAASb,EAASmV,EAAavU,GACpC,GAAyB,kBAAdA,GAAuC,MAAbA,EACnC,OAAOA,EAGT,IACMwU,EAAcD,EADRE,KAAKJ,IAAIrU,IAGrB,OAAIA,GAAa,EACRwU,EAGkB,kBAAhBA,GACDA,EAGV,WAAWA,GASb,SAASE,EAAmB/Y,EAAO4I,EAAM3E,EAAM2U,GAG7C,IAA4B,IAAxBhQ,EAAKC,QAAQ5E,GACf,OAAO,KAGT,IACMsS,EAfD,SAA+ByC,EAAeJ,GACnD,OAAO,SAAAvU,GAAS,OAAI2U,EAAc1V,QAAO,SAACC,EAAKW,GAE7C,OADAX,EAAIW,GAAeT,EAASmV,EAAavU,GAClCd,IACN,KAWwB0V,CADLnB,EAAiB7T,GACyB2U,GAC1DvU,EAAYrE,EAAMiE,GACxB,OAAOM,YAAkBvE,EAAOqE,EAAWkS,GAG7C,SAAS9T,EAAMzC,EAAO4I,GACpB,IAAMgQ,EAAcD,EAAmB3Y,EAAMsE,OAC7C,OAAOM,OAAOgE,KAAK5I,GAAO4O,KAAI,SAAA3K,GAAI,OAAI8U,EAAmB/Y,EAAO4I,EAAM3E,EAAM2U,MAActV,OAAOuD,IAAO,IAGnG,SAASqS,EAAOlZ,GACrB,OAAOyC,EAAMzC,EAAOmY,GAOf,SAASgB,EAAQnZ,GACtB,OAAOyC,EAAMzC,EAAOoY,GAQtB,SAASgB,EAAQpZ,GACf,OAAOyC,EAAMzC,EAAOqY,GAftBa,EAAOzU,UAGE,GACTyU,EAAOxU,YAAcyT,EAIrBgB,EAAQ1U,UAGC,GACT0U,EAAQzU,YAAc0T,EAMtBgB,EAAQ3U,UAGC,GACT2U,EAAQ1U,YAAc2T,EACPe,O,6BErKf,sGACA,SAASnS,EAAoBH,EAAYC,EAAkBsS,GACzD,IAAIrS,EAAe,GAQnB,OAPAqS,EAAWhW,MAAM,KAAK8I,SAAQ,SAAUlK,QACRuD,IAA1BsB,EAAW7E,GACb8E,EAAiB7H,KAAK4H,EAAW7E,GAAa,KAE9C+E,GAAgB/E,EAAY,OAGzB+E,EAET,IAAIW,EAAiB,SAAwBP,EAAOM,EAAY2C,GAC9D,IAAIpI,EAAYmF,EAAMpC,IAAM,IAAM0C,EAAWtB,MAO5B,IAAhBiE,QAIwD7E,IAAhC4B,EAAMN,WAAW7E,KACxCmF,EAAMN,WAAW7E,GAAayF,EAAWrB,SAGzCkB,EAAe,SAAsBH,EAAOM,EAAY2C,GAC1D1C,EAAeP,EAAOM,EAAY2C,GAClC,IAAIpI,EAAYmF,EAAMpC,IAAM,IAAM0C,EAAWtB,KAE7C,QAAwCZ,IAApC4B,EAAMkS,SAAS5R,EAAWtB,MAAqB,CACjD,IAAImT,EAAU7R,EAEd,EAAG,CACiBN,EAAMoS,OAAO9R,IAAe6R,EAAU,IAAMtX,EAAY,GAAIsX,EAASnS,EAAMqS,OAAO,GAEpGF,EAAUA,EAAQva,gBACCwG,IAAZ+T,M,oPCvCb,SAASG,EAAWjH,GAClB,MAA8B,MAAvBA,EAASkH,OAAO,GAIzB,SAASC,EAAUC,EAAMpD,GACvB,IAAK,IAAIpY,EAAIoY,EAAO7P,EAAIvI,EAAI,EAAGyb,EAAID,EAAKza,OAAQwH,EAAIkT,EAAGzb,GAAK,EAAGuI,GAAK,EAClEiT,EAAKxb,GAAKwb,EAAKjT,GAGjBiT,EAAKE,MAgEQC,MA5Df,SAAyB9Z,EAAI+Z,QACdzU,IAATyU,IAAoBA,EAAO,IAE/B,IAkBIC,EAlBAC,EAAWja,GAAMA,EAAGmD,MAAM,MAAS,GACnC+W,EAAaH,GAAQA,EAAK5W,MAAM,MAAS,GAEzCgX,EAAUna,GAAMwZ,EAAWxZ,GAC3Boa,EAAYL,GAAQP,EAAWO,GAC/BM,EAAaF,GAAWC,EAW5B,GATIpa,GAAMwZ,EAAWxZ,GAEnBka,EAAYD,EACHA,EAAQ/a,SAEjBgb,EAAUL,MACVK,EAAYA,EAAU3O,OAAO0O,KAG1BC,EAAUhb,OAAQ,MAAO,IAG9B,GAAIgb,EAAUhb,OAAQ,CACpB,IAAIob,EAAOJ,EAAUA,EAAUhb,OAAS,GACxC8a,EAA4B,MAATM,GAAyB,OAATA,GAA0B,KAATA,OAEpDN,GAAmB,EAIrB,IADA,IAAI5D,EAAK,EACAjY,EAAI+b,EAAUhb,OAAQf,GAAK,EAAGA,IAAK,CAC1C,IAAIoc,EAAOL,EAAU/b,GAER,MAAToc,EACFb,EAAUQ,EAAW/b,GACH,OAAToc,GACTb,EAAUQ,EAAW/b,GACrBiY,KACSA,IACTsD,EAAUQ,EAAW/b,GACrBiY,KAIJ,IAAKiE,EAAY,KAAOjE,IAAMA,EAAI8D,EAAUM,QAAQ,OAGlDH,GACiB,KAAjBH,EAAU,IACRA,EAAU,IAAOV,EAAWU,EAAU,KAExCA,EAAUM,QAAQ,IAEpB,IAAItH,EAASgH,EAAUO,KAAK,KAI5B,OAFIT,GAA0C,MAAtB9G,EAAOwH,QAAQ,KAAYxH,GAAU,KAEtDA,GCvET,SAASyH,EAAQ3X,GACf,OAAOA,EAAI2X,QAAU3X,EAAI2X,UAAYjW,OAAOK,UAAU4V,QAAQ9b,KAAKmE,GAkCtD4X,MA/Bf,SAASA,EAAW/C,EAAGR,GAErB,GAAIQ,IAAMR,EAAG,OAAO,EAGpB,GAAS,MAALQ,GAAkB,MAALR,EAAW,OAAO,EAEnC,GAAIzT,MAAMC,QAAQgU,GAChB,OACEjU,MAAMC,QAAQwT,IACdQ,EAAE3Y,SAAWmY,EAAEnY,QACf2Y,EAAE1K,OAAM,SAAS7J,EAAMiT,GACrB,OAAOqE,EAAWtX,EAAM+T,EAAEd,OAKhC,GAAiB,kBAANsB,GAA+B,kBAANR,EAAgB,CAClD,IAAIwD,EAASF,EAAQ9C,GACjBiD,EAASH,EAAQtD,GAErB,OAAIwD,IAAWhD,GAAKiD,IAAWzD,EAAUuD,EAAWC,EAAQC,GAErDpW,OAAOgE,KAAKhE,OAAOC,OAAO,GAAIkT,EAAGR,IAAIlK,OAAM,SAASrI,GACzD,OAAO8V,EAAW/C,EAAE/S,GAAMuS,EAAEvS,OAIhC,OAAO,G,QC1BT,SAAS6O,EAAgBlR,GACvB,MAA0B,MAAnBA,EAAKgX,OAAO,GAAahX,EAAO,IAAMA,EAE/C,SAASsY,EAAkBtY,GACzB,MAA0B,MAAnBA,EAAKgX,OAAO,GAAahX,EAAKiY,OAAO,GAAKjY,EAKnD,SAASmR,EAAcnR,EAAMuY,GAC3B,OAJF,SAAqBvY,EAAMuY,GACzB,OAA4D,IAArDvY,EAAKwY,cAActS,QAAQqS,EAAOC,iBAAuE,IAA/C,MAAMtS,QAAQlG,EAAKgX,OAAOuB,EAAO9b,SAG3Fgc,CAAYzY,EAAMuY,GAAUvY,EAAKiY,OAAOM,EAAO9b,QAAUuD,EAElE,SAAS0Y,EAAmB1Y,GAC1B,MAAwC,MAAjCA,EAAKgX,OAAOhX,EAAKvD,OAAS,GAAauD,EAAKqI,MAAM,GAAI,GAAKrI,EA0BpE,SAAShB,EAAWH,GAClB,IAAIiR,EAAWjR,EAASiR,SACpB6I,EAAS9Z,EAAS8Z,OAClBC,EAAO/Z,EAAS+Z,KAChB5Y,EAAO8P,GAAY,IAGvB,OAFI6I,GAAqB,MAAXA,IAAgB3Y,GAA6B,MAArB2Y,EAAO3B,OAAO,GAAa2B,EAAS,IAAMA,GAC5EC,GAAiB,MAATA,IAAc5Y,GAA2B,MAAnB4Y,EAAK5B,OAAO,GAAa4B,EAAO,IAAMA,GACjE5Y,EAGT,SAAStC,EAAesC,EAAMkQ,EAAO7N,EAAK7E,GACxC,IAAIqB,EAEgB,kBAATmB,GAETnB,EAvCJ,SAAmBmB,GACjB,IAAI8P,EAAW9P,GAAQ,IACnB2Y,EAAS,GACTC,EAAO,GACPC,EAAY/I,EAAS5J,QAAQ,MAEd,IAAf2S,IACFD,EAAO9I,EAASmI,OAAOY,GACvB/I,EAAWA,EAASmI,OAAO,EAAGY,IAGhC,IAAIC,EAAchJ,EAAS5J,QAAQ,KAOnC,OALqB,IAAjB4S,IACFH,EAAS7I,EAASmI,OAAOa,GACzBhJ,EAAWA,EAASmI,OAAO,EAAGa,IAGzB,CACLhJ,SAAUA,EACV6I,OAAmB,MAAXA,EAAiB,GAAKA,EAC9BC,KAAe,MAATA,EAAe,GAAKA,GAkBfG,CAAU/Y,GACrBnB,EAASqR,MAAQA,SAISrN,KAD1BhE,EAAWmD,YAAS,GAAIhC,IACX8P,WAAwBjR,EAASiR,SAAW,IAErDjR,EAAS8Z,OACuB,MAA9B9Z,EAAS8Z,OAAO3B,OAAO,KAAYnY,EAAS8Z,OAAS,IAAM9Z,EAAS8Z,QAExE9Z,EAAS8Z,OAAS,GAGhB9Z,EAAS+Z,KACqB,MAA5B/Z,EAAS+Z,KAAK5B,OAAO,KAAYnY,EAAS+Z,KAAO,IAAM/Z,EAAS+Z,MAEpE/Z,EAAS+Z,KAAO,QAGJ/V,IAAVqN,QAA0CrN,IAAnBhE,EAASqR,QAAqBrR,EAASqR,MAAQA,IAG5E,IACErR,EAASiR,SAAWkJ,UAAUna,EAASiR,UACvC,MAAOmJ,GACP,MAAIA,aAAaC,SACT,IAAIA,SAAS,aAAera,EAASiR,SAAxB,iFAEbmJ,EAoBV,OAhBI5W,IAAKxD,EAASwD,IAAMA,GAEpB7E,EAEGqB,EAASiR,SAE6B,MAAhCjR,EAASiR,SAASkH,OAAO,KAClCnY,EAASiR,SAAWuH,EAAgBxY,EAASiR,SAAUtS,EAAgBsS,WAFvEjR,EAASiR,SAAWtS,EAAgBsS,SAMjCjR,EAASiR,WACZjR,EAASiR,SAAW,KAIjBjR,EAET,SAASsa,EAAkB/D,EAAGR,GAC5B,OAAOQ,EAAEtF,WAAa8E,EAAE9E,UAAYsF,EAAEuD,SAAW/D,EAAE+D,QAAUvD,EAAEwD,OAAShE,EAAEgE,MAAQxD,EAAE/S,MAAQuS,EAAEvS,KAAO8V,EAAW/C,EAAElF,MAAO0E,EAAE1E,OAG7H,SAASkJ,IACP,IAAIC,EAAS,KAiCb,IAAIC,EAAY,GA4BhB,MAAO,CACLC,UA5DF,SAAmBC,GAGjB,OADAH,EAASG,EACF,WACDH,IAAWG,IAAYH,EAAS,QAyDtCI,oBArDF,SAA6B5a,EAAU6a,EAAQC,EAAqBC,GAIlE,GAAc,MAAVP,EAAgB,CAClB,IAAI5I,EAA2B,oBAAX4I,EAAwBA,EAAOxa,EAAU6a,GAAUL,EAEjD,kBAAX5I,EAC0B,oBAAxBkJ,EACTA,EAAoBlJ,EAAQmJ,GAG5BA,GAAS,GAIXA,GAAoB,IAAXnJ,QAGXmJ,GAAS,IAmCXC,eA7BF,SAAwBpY,GACtB,IAAIhC,GAAW,EAEf,SAASqa,IACHra,GAAUgC,EAAGe,WAAM,EAAQL,WAIjC,OADAmX,EAAU/c,KAAKud,GACR,WACLra,GAAW,EACX6Z,EAAYA,EAAUS,QAAO,SAAUlZ,GACrC,OAAOA,IAASiZ,OAmBpBE,gBAdF,WACE,IAAK,IAAI5W,EAAOjB,UAAU1F,OAAQkG,EAAO,IAAIxB,MAAMiC,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EV,EAAKU,GAAQlB,UAAUkB,GAGzBiW,EAAU9P,SAAQ,SAAUsQ,GAC1B,OAAOA,EAAStX,WAAM,EAAQG,QAYpC,IAAIsX,IAAiC,qBAAXC,SAA0BA,OAAOC,WAAYD,OAAOC,SAASvX,eACvF,SAASwX,EAAgBC,EAAST,GAChCA,EAASM,OAAOI,QAAQD,IAwC1B,IAAIE,EAAgB,WAChBC,EAAkB,aAEtB,SAASC,IACP,IACE,OAAOP,OAAOld,QAAQkT,OAAS,GAC/B,MAAO+I,GAGP,MAAO,IASX,SAASyB,EAAqBrd,QACd,IAAVA,IACFA,EAAQ,IAGT4c,GAAsGxI,aAAU,GACjH,IAAIkJ,EAAgBT,OAAOld,QACvB4d,EAvDN,WACE,IAAIC,EAAKX,OAAOY,UAAUC,UAC1B,QAAmC,IAA9BF,EAAG3U,QAAQ,gBAAuD,IAA/B2U,EAAG3U,QAAQ,iBAA2D,IAAjC2U,EAAG3U,QAAQ,mBAAqD,IAA1B2U,EAAG3U,QAAQ,YAAqD,IAAjC2U,EAAG3U,QAAQ,mBACtJgU,OAAOld,SAAW,cAAekd,OAAOld,QAoD3Bge,GAChBC,KA7CsD,IAAnDf,OAAOY,UAAUC,UAAU7U,QAAQ,YA8CtCgV,EAAS7d,EACT8d,EAAsBD,EAAOE,aAC7BA,OAAuC,IAAxBD,GAAyCA,EACxDE,EAAwBH,EAAOvB,oBAC/BA,OAAgD,IAA1B0B,EAAmCjB,EAAkBiB,EAC3EC,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9ClK,EAAW/T,EAAM+T,SAAWsH,EAAmBxH,EAAgB7T,EAAM+T,WAAa,GAEtF,SAASoK,EAAeC,GACtB,IAAIjX,EAAOiX,GAAgB,GACvBpZ,EAAMmC,EAAKnC,IACX6N,EAAQ1L,EAAK0L,MAEbwL,EAAmBxB,OAAOrb,SAI1BmB,EAHW0b,EAAiB5L,SACnB4L,EAAiB/C,OACnB+C,EAAiB9C,KAI5B,OADIxH,IAAUpR,EAAOmR,EAAcnR,EAAMoR,IAClC1T,EAAesC,EAAMkQ,EAAO7N,GAGrC,SAASsZ,IACP,OAAOxF,KAAKyF,SAAShY,SAAS,IAAIqU,OAAO,EAAGsD,GAG9C,IAAIM,EAAoBzC,IAExB,SAAS0C,EAASC,GAChB/Z,YAAShF,EAAS+e,GAElB/e,EAAQP,OAASke,EAAcle,OAC/Bof,EAAkB7B,gBAAgBhd,EAAQ6B,SAAU7B,EAAQ0c,QAG9D,SAASsC,EAAe5d,IApE1B,SAAmCA,GACjC,YAAuByE,IAAhBzE,EAAM8R,QAAiE,IAA1C4K,UAAUC,UAAU7U,QAAQ,UAqE1D+V,CAA0B7d,IAC9B8d,EAAUV,EAAepd,EAAM8R,QAGjC,SAASiM,IACPD,EAAUV,EAAef,MAG3B,IAAI2B,GAAe,EAEnB,SAASF,EAAUrd,GACjB,GAAIud,EACFA,GAAe,EACfN,QACK,CAELD,EAAkBpC,oBAAoB5a,EADzB,MAC2C8a,GAAqB,SAAU0C,GACjFA,EACFP,EAAS,CACPpC,OAJO,MAKP7a,SAAUA,IASpB,SAAmByd,GACjB,IAAIvc,EAAa/C,EAAQ6B,SAIrB0d,EAAUjS,EAAQpE,QAAQnG,EAAWsC,MACxB,IAAbka,IAAgBA,EAAU,GAC9B,IAAIC,EAAYlS,EAAQpE,QAAQoW,EAAaja,MAC1B,IAAfma,IAAkBA,EAAY,GAClC,IAAIC,EAAQF,EAAUC,EAElBC,IACFL,GAAe,EACfM,EAAGD,IAnBCE,CAAU9d,OAuBlB,IAAI+d,EAAkBpB,EAAef,KACjCnQ,EAAU,CAACsS,EAAgBva,KAE/B,SAASwa,EAAWhe,GAClB,OAAOuS,EAAWpS,EAAWH,GAuE/B,SAAS6d,EAAGvF,GACVwD,EAAc+B,GAAGvF,GAWnB,IAAI2F,EAAgB,EAEpB,SAASC,EAAkBN,GAGH,KAFtBK,GAAiBL,IAEoB,IAAVA,GACzBvC,OAAO8C,iBAAiBzC,EAAeyB,GACnCf,GAAyBf,OAAO8C,iBAAiBxC,EAAiB2B,IAC3C,IAAlBW,IACT5C,OAAO+C,oBAAoB1C,EAAeyB,GACtCf,GAAyBf,OAAO+C,oBAAoBzC,EAAiB2B,IAI7E,IAAIe,GAAY,EAiChB,IAAIlgB,EAAU,CACZP,OAAQke,EAAcle,OACtBid,OAAQ,MACR7a,SAAU+d,EACVC,WAAYA,EACZtgB,KApIF,SAAcyD,EAAMkQ,GAElB,IAAIwJ,EAAS,OACT7a,EAAWnB,EAAesC,EAAMkQ,EAAOyL,IAAa3e,EAAQ6B,UAChEgd,EAAkBpC,oBAAoB5a,EAAU6a,EAAQC,GAAqB,SAAU0C,GACrF,GAAKA,EAAL,CACA,IAAIvd,EAAO+d,EAAWhe,GAClBwD,EAAMxD,EAASwD,IACf6N,EAAQrR,EAASqR,MAErB,GAAI0K,EAMF,GALAD,EAAcwC,UAAU,CACtB9a,IAAKA,EACL6N,MAAOA,GACN,KAAMpR,GAELsc,EACFlB,OAAOrb,SAASC,KAAOA,MAClB,CACL,IAAIse,EAAY9S,EAAQpE,QAAQlJ,EAAQ6B,SAASwD,KAC7Cgb,EAAW/S,EAAQjC,MAAM,EAAG+U,EAAY,GAC5CC,EAAS9gB,KAAKsC,EAASwD,KACvBiI,EAAU+S,EACVvB,EAAS,CACPpC,OAAQA,EACR7a,SAAUA,SAKdqb,OAAOrb,SAASC,KAAOA,OAuG3BJ,QAlGF,SAAiBsB,EAAMkQ,GAErB,IAAIwJ,EAAS,UACT7a,EAAWnB,EAAesC,EAAMkQ,EAAOyL,IAAa3e,EAAQ6B,UAChEgd,EAAkBpC,oBAAoB5a,EAAU6a,EAAQC,GAAqB,SAAU0C,GACrF,GAAKA,EAAL,CACA,IAAIvd,EAAO+d,EAAWhe,GAClBwD,EAAMxD,EAASwD,IACf6N,EAAQrR,EAASqR,MAErB,GAAI0K,EAMF,GALAD,EAAc2C,aAAa,CACzBjb,IAAKA,EACL6N,MAAOA,GACN,KAAMpR,GAELsc,EACFlB,OAAOrb,SAASH,QAAQI,OACnB,CACL,IAAIse,EAAY9S,EAAQpE,QAAQlJ,EAAQ6B,SAASwD,MAC9B,IAAf+a,IAAkB9S,EAAQ8S,GAAave,EAASwD,KACpDyZ,EAAS,CACPpC,OAAQA,EACR7a,SAAUA,SAKdqb,OAAOrb,SAASH,QAAQI,QAuE5B4d,GAAIA,EACJa,OA/DF,WACEb,GAAI,IA+DJc,UA5DF,WACEd,EAAG,IA4DHe,MAzCF,SAAepE,QACE,IAAXA,IACFA,GAAS,GAGX,IAAIqE,EAAU7B,EAAkBtC,UAAUF,GAO1C,OALK6D,IACHH,EAAkB,GAClBG,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZH,GAAmB,IAGdW,MAwBTC,OApBF,SAAgB7D,GACd,IAAI8D,EAAW/B,EAAkBhC,eAAeC,GAEhD,OADAiD,EAAkB,GACX,WACLA,GAAmB,GACnBa,OAiBJ,OAAO5gB,EAGT,IAAI6gB,EAAoB,aACpBC,EAAiB,CACnBC,SAAU,CACRC,WAAY,SAAoBhe,GAC9B,MAA0B,MAAnBA,EAAKgX,OAAO,GAAahX,EAAO,KAAOsY,EAAkBtY,IAElEie,WAAY,SAAoBje,GAC9B,MAA0B,MAAnBA,EAAKgX,OAAO,GAAahX,EAAKiY,OAAO,GAAKjY,IAGrDke,QAAS,CACPF,WAAY1F,EACZ2F,WAAY/M,GAEdiN,MAAO,CACLH,WAAY9M,EACZ+M,WAAY/M,IAIhB,SAASkN,EAAUzO,GACjB,IAAIkJ,EAAYlJ,EAAIzJ,QAAQ,KAC5B,OAAsB,IAAf2S,EAAmBlJ,EAAMA,EAAItH,MAAM,EAAGwQ,GAG/C,SAASwF,IAGP,IAAIvf,EAAOob,OAAOrb,SAASC,KACvB+Z,EAAY/Z,EAAKoH,QAAQ,KAC7B,OAAsB,IAAf2S,EAAmB,GAAK/Z,EAAKwf,UAAUzF,EAAY,GAO5D,SAAS0F,EAAgBve,GACvBka,OAAOrb,SAASH,QAAQ0f,EAAUlE,OAAOrb,SAASC,MAAQ,IAAMkB,GAGlE,SAASwe,EAAkBnhB,QACX,IAAVA,IACFA,EAAQ,IAGT4c,GAAmGxI,aAAU,GAC9G,IAAIkJ,EAAgBT,OAAOld,QAEvBke,GAnUGhB,OAAOY,UAAUC,UAAU7U,QAAQ,WAmU7B7I,GACTge,EAAwBH,EAAOvB,oBAC/BA,OAAgD,IAA1B0B,EAAmCjB,EAAkBiB,EAC3EoD,EAAkBvD,EAAOwD,SACzBA,OAA+B,IAApBD,EAA6B,QAAUA,EAClDrN,EAAW/T,EAAM+T,SAAWsH,EAAmBxH,EAAgB7T,EAAM+T,WAAa,GAClFuN,EAAwBb,EAAeY,GACvCV,EAAaW,EAAsBX,WACnCC,EAAaU,EAAsBV,WAEvC,SAASzC,IACP,IAAIxb,EAAOie,EAAWI,KAGtB,OADIjN,IAAUpR,EAAOmR,EAAcnR,EAAMoR,IAClC1T,EAAesC,GAGxB,IAAI6b,EAAoBzC,IAExB,SAAS0C,EAASC,GAChB/Z,YAAShF,EAAS+e,GAElB/e,EAAQP,OAASke,EAAcle,OAC/Bof,EAAkB7B,gBAAgBhd,EAAQ6B,SAAU7B,EAAQ0c,QAG9D,IAAI0C,GAAe,EACfwC,EAAa,KAMjB,SAASzC,IACP,IAL4B/G,EAAGR,EAK3B5U,EAAOqe,IACPQ,EAAcb,EAAWhe,GAE7B,GAAIA,IAAS6e,EAEXN,EAAgBM,OACX,CACL,IAAIhgB,EAAW2c,IACXsD,EAAe9hB,EAAQ6B,SAC3B,IAAKud,IAdwBxH,EAc2B/V,GAd9BuW,EAcgB0J,GAbnChP,WAAa8E,EAAE9E,UAAYsF,EAAEuD,SAAW/D,EAAE+D,QAAUvD,EAAEwD,OAAShE,EAAEgE,MAaL,OAEnE,GAAIgG,IAAe5f,EAAWH,GAAW,OAEzC+f,EAAa,KAKjB,SAAmB/f,GACjB,GAAIud,EACFA,GAAe,EACfN,QACK,CACL,IAAIpC,EAAS,MACbmC,EAAkBpC,oBAAoB5a,EAAU6a,EAAQC,GAAqB,SAAU0C,GACjFA,EACFP,EAAS,CACPpC,OAAQA,EACR7a,SAAUA,IASpB,SAAmByd,GACjB,IAAIvc,EAAa/C,EAAQ6B,SAIrB0d,EAAUwC,EAASC,YAAYhgB,EAAWe,KAC7B,IAAbwc,IAAgBA,EAAU,GAC9B,IAAIC,EAAYuC,EAASC,YAAYhgB,EAAWsd,KAC7B,IAAfE,IAAkBA,EAAY,GAClC,IAAIC,EAAQF,EAAUC,EAElBC,IACFL,GAAe,EACfM,EAAGD,IAnBCE,CAAU9d,OAjBdqd,CAAUrd,IAyCd,IAAImB,EAAOqe,IACPQ,EAAcb,EAAWhe,GACzBA,IAAS6e,GAAaN,EAAgBM,GAC1C,IAAIjC,EAAkBpB,IAClBuD,EAAW,CAAC/f,EAAW4d,IAuE3B,SAASF,EAAGvF,GAEVwD,EAAc+B,GAAGvF,GAWnB,IAAI2F,EAAgB,EAEpB,SAASC,EAAkBN,GAGH,KAFtBK,GAAiBL,IAEoB,IAAVA,EACzBvC,OAAO8C,iBAAiBa,EAAmB1B,GAChB,IAAlBW,GACT5C,OAAO+C,oBAAoBY,EAAmB1B,GAIlD,IAAIe,GAAY,EAiChB,IAAIlgB,EAAU,CACZP,OAAQke,EAAcle,OACtBid,OAAQ,MACR7a,SAAU+d,EACVC,WAnIF,SAAoBhe,GAClB,IAAIkJ,EAAUoS,SAAS8E,cAAc,QACjCngB,EAAO,GAMX,OAJIiJ,GAAWA,EAAQmX,aAAa,UAClCpgB,EAAOsf,EAAUlE,OAAOrb,SAASC,OAG5BA,EAAO,IAAMkf,EAAW5M,EAAWpS,EAAWH,KA4HrDtC,KAzHF,SAAcyD,EAAMkQ,GAElB,IAAIwJ,EAAS,OACT7a,EAAWnB,EAAesC,OAAM6C,OAAWA,EAAW7F,EAAQ6B,UAClEgd,EAAkBpC,oBAAoB5a,EAAU6a,EAAQC,GAAqB,SAAU0C,GACrF,GAAKA,EAAL,CACA,IAAIrc,EAAOhB,EAAWH,GAClBggB,EAAcb,EAAW5M,EAAWpR,GAGxC,GAFkBqe,MAAkBQ,EAEnB,CAIfD,EAAa5e,EAxIrB,SAAsBA,GACpBka,OAAOrb,SAAS+Z,KAAO5Y,EAwIjBmf,CAAaN,GACb,IAAIzB,EAAY2B,EAASC,YAAYhgB,EAAWhC,EAAQ6B,WACpDugB,EAAYL,EAAS1W,MAAM,EAAG+U,EAAY,GAC9CgC,EAAU7iB,KAAKyD,GACf+e,EAAWK,EACXtD,EAAS,CACPpC,OAAQA,EACR7a,SAAUA,SAIZid,SAgGJpd,QA3FF,SAAiBsB,EAAMkQ,GAErB,IAAIwJ,EAAS,UACT7a,EAAWnB,EAAesC,OAAM6C,OAAWA,EAAW7F,EAAQ6B,UAClEgd,EAAkBpC,oBAAoB5a,EAAU6a,EAAQC,GAAqB,SAAU0C,GACrF,GAAKA,EAAL,CACA,IAAIrc,EAAOhB,EAAWH,GAClBggB,EAAcb,EAAW5M,EAAWpR,GACtBqe,MAAkBQ,IAMlCD,EAAa5e,EACbue,EAAgBM,IAGlB,IAAIzB,EAAY2B,EAAS7Y,QAAQlH,EAAWhC,EAAQ6B,YACjC,IAAfue,IAAkB2B,EAAS3B,GAAapd,GAC5C8b,EAAS,CACPpC,OAAQA,EACR7a,SAAUA,SAsEd6d,GAAIA,EACJa,OA7DF,WACEb,GAAI,IA6DJc,UA1DF,WACEd,EAAG,IA0DHe,MAzCF,SAAepE,QACE,IAAXA,IACFA,GAAS,GAGX,IAAIqE,EAAU7B,EAAkBtC,UAAUF,GAO1C,OALK6D,IACHH,EAAkB,GAClBG,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZH,GAAmB,IAGdW,MAwBTC,OApBF,SAAgB7D,GACd,IAAI8D,EAAW/B,EAAkBhC,eAAeC,GAEhD,OADAiD,EAAkB,GACX,WACLA,GAAmB,GACnBa,OAiBJ,OAAO5gB,EAGT,SAASqiB,EAAMlI,EAAGmI,EAAYC,GAC5B,OAAOpJ,KAAKqJ,IAAIrJ,KAAKsJ,IAAItI,EAAGmI,GAAaC,GAO3C,SAASG,EAAoBriB,QACb,IAAVA,IACFA,EAAQ,IAGV,IAAI6d,EAAS7d,EACTsc,EAAsBuB,EAAOvB,oBAC7BgG,EAAwBzE,EAAO0E,eAC/BA,OAA2C,IAA1BD,EAAmC,CAAC,KAAOA,EAC5DE,EAAsB3E,EAAO4E,aAC7BA,OAAuC,IAAxBD,EAAiC,EAAIA,EACpDvE,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CO,EAAoBzC,IAExB,SAAS0C,EAASC,GAChB/Z,YAAShF,EAAS+e,GAElB/e,EAAQP,OAASO,EAAQ8R,QAAQrS,OACjCof,EAAkB7B,gBAAgBhd,EAAQ6B,SAAU7B,EAAQ0c,QAG9D,SAASiC,IACP,OAAOxF,KAAKyF,SAAShY,SAAS,IAAIqU,OAAO,EAAGsD,GAG9C,IAAIzH,EAAQuL,EAAMS,EAAc,EAAGF,EAAenjB,OAAS,GACvDqS,EAAU8Q,EAAe3T,KAAI,SAAU8T,GACzC,OAAmCriB,EAAeqiB,OAAOld,EAAjC,kBAAVkd,EAAsDpE,IAAgDoE,EAAM1d,KAAOsZ,QAG/HkB,EAAa7d,EAyCjB,SAAS0d,EAAGvF,GACV,IAAI6I,EAAYX,EAAMriB,EAAQ8W,MAAQqD,EAAG,EAAGna,EAAQ8R,QAAQrS,OAAS,GAEjEoC,EAAW7B,EAAQ8R,QAAQkR,GAC/BnE,EAAkBpC,oBAAoB5a,EAFzB,MAE2C8a,GAAqB,SAAU0C,GACjFA,EACFP,EAAS,CACPpC,OALO,MAMP7a,SAAUA,EACViV,MAAOkM,IAKTlE,OA8BN,IAAI9e,EAAU,CACZP,OAAQqS,EAAQrS,OAChBid,OAAQ,MACR7a,SAAUiQ,EAAQgF,GAClBA,MAAOA,EACPhF,QAASA,EACT+N,WAAYA,EACZtgB,KA1FF,SAAcyD,EAAMkQ,GAElB,IAAIwJ,EAAS,OACT7a,EAAWnB,EAAesC,EAAMkQ,EAAOyL,IAAa3e,EAAQ6B,UAChEgd,EAAkBpC,oBAAoB5a,EAAU6a,EAAQC,GAAqB,SAAU0C,GACrF,GAAKA,EAAL,CACA,IACI2D,EADYhjB,EAAQ8W,MACI,EACxBmM,EAAcjjB,EAAQ8R,QAAQzG,MAAM,GAEpC4X,EAAYxjB,OAASujB,EACvBC,EAAYC,OAAOF,EAAWC,EAAYxjB,OAASujB,EAAWnhB,GAE9DohB,EAAY1jB,KAAKsC,GAGnBid,EAAS,CACPpC,OAAQA,EACR7a,SAAUA,EACViV,MAAOkM,EACPlR,QAASmR,SAuEbvhB,QAlEF,SAAiBsB,EAAMkQ,GAErB,IAAIwJ,EAAS,UACT7a,EAAWnB,EAAesC,EAAMkQ,EAAOyL,IAAa3e,EAAQ6B,UAChEgd,EAAkBpC,oBAAoB5a,EAAU6a,EAAQC,GAAqB,SAAU0C,GAChFA,IACLrf,EAAQ8R,QAAQ9R,EAAQ8W,OAASjV,EACjCid,EAAS,CACPpC,OAAQA,EACR7a,SAAUA,SA0Dd6d,GAAIA,EACJa,OAnCF,WACEb,GAAI,IAmCJc,UAhCF,WACEd,EAAG,IAgCHyD,MA7BF,SAAehJ,GACb,IAAI6I,EAAYhjB,EAAQ8W,MAAQqD,EAChC,OAAO6I,GAAa,GAAKA,EAAYhjB,EAAQ8R,QAAQrS,QA4BrDghB,MAzBF,SAAepE,GAKb,YAJe,IAAXA,IACFA,GAAS,GAGJwC,EAAkBtC,UAAUF,IAqBnCsE,OAlBF,SAAgB7D,GACd,OAAO+B,EAAkBhC,eAAeC,KAmB1C,OAAO9c,I,6BCn5BT,8CACe,SAASojB,EAAeC,EAAUC,GAC/CD,EAAS/d,UAAYL,OAAOwF,OAAO6Y,EAAWhe,WAC9C+d,EAAS/d,UAAUie,YAAcF,EACjC,YAAeA,EAAUC,K,6BCJ3B,sCACI/H,EAAS,mBACb,SAAS9G,EAAU+O,EAAWnG,GAC1B,IAAImG,EAIA,MAAM,IAAIC,MAAMlI,K,6BCPT,SAASzS,EAA8B1D,EAAQ2D,GAC5D,GAAc,MAAV3D,EAAgB,MAAO,GAC3B,IAEIC,EAAK3G,EAFLyC,EAAS,GACT6H,EAAa/D,OAAOgE,KAAK7D,GAG7B,IAAK1G,EAAI,EAAGA,EAAIsK,EAAWvJ,OAAQf,IACjC2G,EAAM2D,EAAWtK,GACbqK,EAASG,QAAQ7D,IAAQ,IAC7BlE,EAAOkE,GAAOD,EAAOC,IAGvB,OAAOlE,EAZT,mC,6BCAA,YAae+F,IAXf,SAAetD,EAAKC,GAClB,OAAKA,EAIE6f,YAAU9f,EAAKC,EAAM,CAC1B8f,OAAO,IAJA/f,I,6BCJX,YACeiB,MAAf,G,8BCCA,SAAS+e,IAEP,GAC4C,qBAAnCC,gCAC4C,oBAA5CA,+BAA+BD,SAcxC,IAEEC,+BAA+BD,SAASA,GACxC,MAAOlkB,GAGPokB,QAAQC,MAAMrkB,IAOhBkkB,GACAvlB,EAAOC,QAAUC,EAAQ,K,+DCoBZylB,MAnDf,SAAiB1a,GAYf,IANA,IAEIrC,EAFAgd,EAAI,EAGJvlB,EAAI,EACJmI,EAAMyC,EAAI7J,OAEPoH,GAAO,IAAKnI,EAAGmI,GAAO,EAE3BI,EAEe,YAAV,OAHLA,EAAwB,IAApBqC,EAAIO,WAAWnL,IAAmC,IAAtB4K,EAAIO,aAAanL,KAAc,GAA2B,IAAtB4K,EAAIO,aAAanL,KAAc,IAA4B,IAAtB4K,EAAIO,aAAanL,KAAc,MAG9F,OAAZuI,IAAM,KAAgB,IAIpDgd,EAEe,YAAV,OALLhd,GAEAA,IAAM,MAGoC,OAAZA,IAAM,KAAgB,IAErC,YAAV,MAAJgd,IAAyC,OAAZA,IAAM,KAAgB,IAItD,OAAQpd,GACN,KAAK,EACHod,IAA8B,IAAxB3a,EAAIO,WAAWnL,EAAI,KAAc,GAEzC,KAAK,EACHulB,IAA8B,IAAxB3a,EAAIO,WAAWnL,EAAI,KAAc,EAEzC,KAAK,EAEHulB,EAEe,YAAV,OAHLA,GAAyB,IAApB3a,EAAIO,WAAWnL,MAGsB,OAAZulB,IAAM,KAAgB,IASxD,SAHAA,EAEe,YAAV,OAHLA,GAAKA,IAAM,MAG+B,OAAZA,IAAM,KAAgB,KACvCA,IAAM,MAAQ,GAAGrd,SAAS,KCF1Bsd,EAjDI,CACjBC,wBAAyB,EACzBC,kBAAmB,EACnBC,iBAAkB,EAClBC,iBAAkB,EAClBC,QAAS,EACTC,aAAc,EACdC,gBAAiB,EACjBC,YAAa,EACbC,QAAS,EACTC,KAAM,EACNC,SAAU,EACVC,aAAc,EACdC,WAAY,EACZC,aAAc,EACdC,UAAW,EACXC,QAAS,EACTC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZC,cAAe,EACfC,eAAgB,EAChBC,gBAAiB,EACjBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,iBAAkB,EAClBC,WAAY,EACZC,WAAY,EACZC,QAAS,EACTC,MAAO,EACPC,QAAS,EACTC,QAAS,EACTC,OAAQ,EACRC,OAAQ,EACRC,KAAM,EACNC,gBAAiB,EAEjBC,YAAa,EACbC,aAAc,EACdC,YAAa,EACbC,gBAAiB,EACjBC,iBAAkB,EAClBC,iBAAkB,EAClBC,cAAe,EACfC,YAAa,G,QCxCXC,EAAiB,aACjBC,EAAiB,8BAEjBC,EAAmB,SAA0B7O,GAC/C,OAAkC,KAA3BA,EAASxO,WAAW,IAGzBsd,EAAqB,SAA4B3nB,GACnD,OAAgB,MAATA,GAAkC,mBAAVA,GAG7B4nB,EAAkCzd,aAAQ,SAAU0d,GACtD,OAAOH,EAAiBG,GAAaA,EAAYA,EAAU3lB,QAAQslB,EAAgB,OAAOxL,iBAGxF8L,EAAoB,SAA2BjiB,EAAK7F,GACtD,OAAQ6F,GACN,IAAK,YACL,IAAK,gBAED,GAAqB,kBAAV7F,EACT,OAAOA,EAAMkC,QAAQulB,GAAgB,SAAU/jB,EAAOqkB,EAAIC,GAMxD,OALAC,EAAS,CACPhhB,KAAM8gB,EACN7gB,OAAQ8gB,EACRnoB,KAAMooB,GAEDF,KAMjB,OAAsB,IAAlBG,EAASriB,IAAe6hB,EAAiB7hB,IAAyB,kBAAV7F,GAAgC,IAAVA,EAI3EA,EAHEA,EAAQ,MAkCnB,SAASmoB,EAAoB9b,EAAa1E,EAAYygB,GACpD,GAAqB,MAAjBA,EACF,MAAO,GAGT,QAAuC/hB,IAAnC+hB,EAAcxc,iBAKhB,OAAOwc,EAGT,cAAeA,GACb,IAAK,UAED,MAAO,GAGX,IAAK,SAED,GAA2B,IAAvBA,EAAcjhB,KAMhB,OALA8gB,EAAS,CACPhhB,KAAMmhB,EAAcnhB,KACpBC,OAAQkhB,EAAclhB,OACtBrH,KAAMooB,GAEDG,EAAcnhB,KAGvB,QAA6BZ,IAAzB+hB,EAAclhB,OAAsB,CACtC,IAAIrH,EAAOuoB,EAAcvoB,KAEzB,QAAawG,IAATxG,EAGF,UAAgBwG,IAATxG,GACLooB,EAAS,CACPhhB,KAAMpH,EAAKoH,KACXC,OAAQrH,EAAKqH,OACbrH,KAAMooB,GAERpoB,EAAOA,EAAKA,KAUhB,OANauoB,EAAclhB,OAAS,IAStC,OA2CR,SAAgCmF,EAAa1E,EAAY5D,GACvD,IAAIuJ,EAAS,GAEb,GAAI3I,MAAMC,QAAQb,GAChB,IAAK,IAAI7E,EAAI,EAAGA,EAAI6E,EAAI9D,OAAQf,IAC9BoO,GAAU6a,EAAoB9b,EAAa1E,EAAY5D,EAAI7E,IAAM,SAGnE,IAAK,IAAI2H,KAAQ9C,EAAK,CACpB,IAAI/D,EAAQ+D,EAAI8C,GAEhB,GAAqB,kBAAV7G,EACS,MAAd2H,QAA4CtB,IAAtBsB,EAAW3H,GACnCsN,GAAUzG,EAAO,IAAMc,EAAW3H,GAAS,IAClC2nB,EAAmB3nB,KAC5BsN,GAAUsa,EAAiB/gB,GAAQ,IAAMihB,EAAkBjhB,EAAM7G,GAAS,UAO5E,IAAI2E,MAAMC,QAAQ5E,IAA8B,kBAAbA,EAAM,IAAkC,MAAd2H,QAA+CtB,IAAzBsB,EAAW3H,EAAM,IAM7F,CACL,IAAIqoB,EAAeF,EAAoB9b,EAAa1E,EAAY3H,GAEhE,OAAQ6G,GACN,IAAK,YACL,IAAK,gBAEDyG,GAAUsa,EAAiB/gB,GAAQ,IAAMwhB,EAAe,IACxD,MAGJ,QAMI/a,GAAUzG,EAAO,IAAMwhB,EAAe,UAtB5C,IAAK,IAAIjpB,EAAK,EAAGA,EAAKY,EAAMC,OAAQb,IAC9BuoB,EAAmB3nB,EAAMZ,MAC3BkO,GAAUsa,EAAiB/gB,GAAQ,IAAMihB,EAAkBjhB,EAAM7G,EAAMZ,IAAO,KA4B1F,OAAOkO,EAhGMgb,CAAuBjc,EAAa1E,EAAYygB,GAG3D,IAAK,WAED,QAAoB/hB,IAAhBgG,EAA2B,CAC7B,IAAIkc,EAAiBN,EACjBhU,EAASmU,EAAc/b,GAE3B,OADA4b,EAASM,EACFJ,EAAoB9b,EAAa1E,EAAYsM,IA0B5D,GAAkB,MAAdtM,EACF,OAAOygB,EAGT,IAAII,EAAS7gB,EAAWygB,GACxB,YAAkB/hB,IAAXmiB,EAAuBA,EAASJ,EA2DzC,IASIH,EATAQ,EAAe,iCAUnB,IAAI3hB,EAAkB,SAAyBX,EAAMwB,EAAY0E,GAC/D,GAAoB,IAAhBlG,EAAKlG,QAAmC,kBAAZkG,EAAK,IAA+B,OAAZA,EAAK,SAAkCE,IAAnBF,EAAK,GAAGe,OAClF,OAAOf,EAAK,GAGd,IAAIuiB,GAAa,EACbxhB,EAAS,GACb+gB,OAAS5hB,EACT,IAAIsiB,EAAUxiB,EAAK,GAEJ,MAAXwiB,QAAmCtiB,IAAhBsiB,EAAQ7c,KAC7B4c,GAAa,EACbxhB,GAAUihB,EAAoB9b,EAAa1E,EAAYghB,IAMvDzhB,GAAUyhB,EAAQ,GAIpB,IAAK,IAAIzpB,EAAI,EAAGA,EAAIiH,EAAKlG,OAAQf,IAC/BgI,GAAUihB,EAAoB9b,EAAa1E,EAAYxB,EAAKjH,IAExDwpB,IAKFxhB,GAAUyhB,EAAQzpB,IActBupB,EAAaG,UAAY,EAIzB,IAHA,IACIllB,EADA0H,EAAiB,GAG0B,QAAvC1H,EAAQ+kB,EAAaI,KAAK3hB,KAChCkE,GAAkB,IAClB1H,EAAM,GAkBR,MAAO,CACLuD,KAhBS6hB,EAAW5hB,GAAUkE,EAiB9BlE,OAAQA,EACRrH,KAAMooB,K,6BCrTK,SAAS3e,EAA8B1D,EAAQ2D,GAC5D,GAAc,MAAV3D,EAAgB,MAAO,GAC3B,IAEIC,EAAK3G,EAFLyC,EAAS,GACT6H,EAAa/D,OAAOgE,KAAK7D,GAG7B,IAAK1G,EAAI,EAAGA,EAAIsK,EAAWvJ,OAAQf,IACjC2G,EAAM2D,EAAWtK,GACbqK,EAASG,QAAQ7D,IAAQ,IAC7BlE,EAAOkE,GAAOD,EAAOC,IAGvB,OAAOlE,EAZT,mC,yCCYaonB,EAAN,6CAeMC,EAAoB,GAAH,OAZ9B,oCAY8B,OAX9B,WAW8B,OAV9B,WAU8B,OATvB,+BASuB,OAR9B,oCAQ8B,OAN9B,uB,ICpBqBC,EACnB,e,4FAAkB,SAChBtoB,KAAA,KAAYA,KAAKojB,YAAjB,KACApjB,KAAA,UACAA,KAAA,MAAc,IAAIsjB,MAAL,GAAb,QAIJgF,YAAuBxjB,cAAcwe,MAArCgF,YACAA,cCFe,oBACXrQ,EAAIA,QAAJA,KACAR,EAAIA,QAAJA,KAGA,IAFA,IAAI8Q,EAAKtQ,WAAT,KACIuQ,EAAK/Q,WAAT,KACSlZ,EAAT,EAAgBA,EAAhB,EAAuBA,IAAK,CACxB,IAAIkqB,EAAKC,OAAOH,EAAhB,IACII,EAAKD,OAAOF,EAAhB,IACA,GAAIC,EAAJ,EAAa,OAAO,EACpB,GAAIE,EAAJ,EAAa,SACb,IAAKC,MAAD,IAAcA,MAAlB,GAA6B,OAAO,EACpC,GAAIA,WAAcA,MAAlB,GAA6B,SAEjC,OAAI3Q,MAAQR,EAAZ,GACWQ,KAAOR,EAAPQ,KAAmBA,KAAOR,EAAPQ,MAA1B,GAEIA,EAAD,IAASR,EAAT,KAAqBQ,OAASR,EAATQ,MAA5B,G,siBCpBJ,IAQM4Q,EAAN,SAEMC,EAAN,QAKqBC,E,WACpB,cAAsB,UA4ahB,SAA0BC,GAChC,MACC,MAAM,IAAI1F,MAAV,6EAKD,IAAK2F,EAAD,KAAyBA,EAAUD,EAAvC,WACC,MAAM,IAAI1F,MAAM,sJAAV,OAAoK2F,KAAsB,yBAA2BnkB,oBAA3B,MAAtBmkB,KAA2F,KAAOC,EAAP,QAA/P,EAAN,MAnbAC,IACAnpB,KAAA,WACAopB,e,iDAIA,OAAOtkB,OAAA,KAAY9E,KAAKgpB,SAAjB,mBAA4C,SAAAK,GAAC,cAAIA,O,yCAGtCC,GAClB,OAAOtpB,KAAKgpB,SAASO,UAArB,K,sCAIA,KAAIvpB,KAAKwpB,IAAMxpB,KAAX,IAAsBA,KAA1B,IAGA,OAAOA,KAAKgpB,SAASS,eAAiBzpB,KAAKgpB,SAA3C,kB,iCAGUU,GACV,gBAAO1pB,KAAK2pB,mBAAmBD,K,qCAGjBE,GACd,GAAI5pB,KAAK6pB,8BAAT,GACC,SAED,GAAI7pB,KAAJ,iBACC,GAAIA,KAAKypB,gBAAT,GACC,aAEK,CAEN,IAAMK,EAAe9pB,KAAK+pB,sBAA1B,GACA,GAAID,OAAgBA,UAApB,QAAiDA,KAChD,Y,iDAKwBF,GAC1B,OAAI5pB,KAAJ,kBACQA,KAAKypB,gBAAgBG,IAErB5pB,KAAK6pB,8BAA8BD,K,8BAKpCN,GACP,OAAOtpB,KAAKgqB,oBAAZ,K,0CAGmBV,EAAaM,GAMhC,GAJIN,GAAeR,OAAnB,KACCc,IACAN,QAEGA,GAAJ,QAAmBA,EAAuB,CACzC,IAAKtpB,KAAKiqB,WAAV,GACC,MAAM,IAAI3G,MAAM,oBAAV,OAAN,IAEDtjB,KAAA,cAAqB,IAAIkqB,EAAclqB,KAAK2pB,mBAAvB,GAArB3pB,WACM,GAAI4pB,EAAa,CACvB,IAAK5pB,KAAKmqB,eAAV,GACC,MAAM,IAAI7G,MAAM,yBAAV,OAAN,IAEDtjB,KAAA,cAAqB,IAAIkqB,EAAclqB,KAAKoqB,yBAAvB,GAArBpqB,WAEAA,KAAA,qBAED,c,oDAG6B4pB,GAC7B,IAAME,EAAe9pB,KAAK+pB,sBAA1B,GACA,KAAkB,CAUjB,GAAID,cAAJ,IAAiCA,YAChC,OAED,Y,mDAI2BF,GAC5B,IAAME,EAAe9pB,KAAK6pB,8BAA1B,GACA,KACC,OAAOC,EAAP,K,+CAIuBF,GACxB,IAAMN,EAActpB,KAAKqqB,6BAAzB,GACA,KACC,OAAOrqB,KAAK2pB,mBAAZ,GAED,GAAI3pB,KAAJ,gBAA0B,CACzB,IAAMgpB,EAAWhpB,KAAKypB,gBAAtB,GACA,KACC,aAEK,CAEN,IAAMK,EAAe9pB,KAAK+pB,sBAA1B,GACA,GAAID,OAAgBA,UAApB,QAAiDA,KAChD,OAAO9pB,KAAKgpB,SAASO,UAArB,U,2CAOF,OAAOvpB,KAAKsqB,cAAZ,gB,kCAKA,OAAOtqB,KAAKsqB,cAAZ,c,yCAKA,OAAOtqB,KAAKsqB,cAAZ,qB,8CAKA,OAAOtqB,KAAKsqB,cAAZ,0B,wCAKA,OAAOtqB,KAAKsqB,cAAZ,oB,gCAKA,OAAOtqB,KAAKsqB,cAAZ,Y,iDAKA,OAAOtqB,KAAKsqB,cAAZ,6B,oDAKA,OAAOtqB,KAAKsqB,cAAZ,gC,sCAKA,OAAOtqB,KAAKsqB,cAAZ,kB,iCAKA,OAAOtqB,KAAKsqB,cAAZ,a,2BAII/kB,GACJ,OAAOvF,KAAKsqB,cAAc/kB,KAA1B,K,4BAKA,OAAOvF,KAAKsqB,cAAZ,Q,4CAIA,OAAItqB,KAAJ,GAAoBA,KAAKgpB,SAAZ,gCACNhpB,KAAKgpB,SAAZ,wB,wDAIiCY,GACjC,OAAO5pB,KAAKgqB,oBAAZ,K,iDAIA,gBAAOhqB,KAAKsqB,kB,KAIRJ,E,WACL,gBAA4C,UAC3ClqB,KAAA,uBACAA,KAAA,WACAopB,YAAsBmB,EAAtBnB,U,gDAIA,OAAOppB,KAAKgpB,SAAZ,K,2DAUA,OAAOhpB,KAAKuqB,qBAAqBH,yBAAyBpqB,KAA1D,iB,kCAKA,IAAIA,KAAKwpB,KAAMxpB,KAAf,GACA,OAAOA,KAAKgpB,SAAZ,K,yCAKA,IAAIhpB,KAAKwpB,KAAMxpB,KAAf,GACA,OAAOA,KAAKgpB,SAAZ,M,8CAIA,OAAIhpB,KAAKwpB,IAAMxpB,KAAf,GAA+BA,KAAKgpB,SAAZ,GACjBhpB,KAAKgpB,SAAZ,K,wCAKA,IAAIhpB,KAAJ,GACA,OAAOA,KAAKgpB,SAAShpB,KAAKwqB,GAAK,EAA/B,K,kCAGWxB,GACX,OAAOA,EAAShpB,KAAKwpB,GAAK,EAAIxpB,KAAKwqB,GAAK,EAAxC,K,gCAMS,WACHC,EAAUzqB,KAAK0qB,YAAY1qB,KAAjB,WAAmCA,KAAK0qB,YAAY1qB,KAApD,uCAAhB,GACA,OAAOyqB,EAAA,KAAY,SAAApB,GAAC,OAAI,IAAIsB,EAAOtB,EAAf,Q,uCAIpB,OAAOrpB,KAAKgpB,SAAShpB,KAAKwpB,GAAK,EAAIxpB,KAAKwqB,GAAK,EAA7C,K,uDAGgCxB,GAChC,OAAOA,EAAShpB,KAAKwpB,GAAK,EAAIxpB,KAAKwqB,GAAK,EAAxC,K,qDAOA,OAAOxqB,KAAK4qB,iCAAiC5qB,KAAtC,WAAwDA,KAAK4qB,iCAAiC5qB,KAArG,wC,kDAIA,OAAOA,KAAKgpB,SAAShpB,KAAKwpB,GAAK,EAAIxpB,KAAKwqB,GAAK,EAA7C,K,iDAMA,OAAOxqB,KAAK6qB,6BAA+B7qB,KAA3C,mB,oDAIA,OAAOA,KAAKgpB,SAAShpB,KAAKwpB,GAAK,EAAIxpB,KAAKwqB,GAAK,EAA7C,K,mEAIA,QAASxqB,KAAKgpB,SAAShpB,KAAKwpB,GAAK,EAAIxpB,KAAKwqB,GAAK,EAA/C,K,+EAQA,OAAOxqB,KAAK8qB,2CAA2C9qB,KAAhD,WACNA,KAAK8qB,2CAA2C9qB,KADjD,wC,sCAKA,OAAOA,KAAKgpB,SAAShpB,KAAKwpB,GAAK,EAAIxpB,KAAKwqB,GAAK,EAA7C,M,8BAIA,OAAOxqB,KAAKgpB,SAAShpB,KAAKwpB,GAAK,EAAIxpB,KAAKwqB,GAAK,GAA7C,M,iCAMA,QAAIxqB,KAAK+qB,SAAT,IAAoB/qB,KAAK+qB,QAAQzrB,WAKxBU,KAAT,U,2BAGIuF,GACJ,GAAIvF,KAAKgrB,YAAcC,EAAQjrB,KAAD,QAA9B,GACC,OAAO,IAAIkrB,EAAKD,EAAQjrB,KAAD,QAAhB,GAAP,Q,4BAKD,OAAIA,KAAKwpB,IAAMxpB,KAAf,GAA+B6oB,EACxB7oB,KAAKgpB,SAAS,KAArB,M,KAII2B,E,WACL,gBAA8B,UAC7B3qB,KAAA,UACAA,KAAA,W,4CAIA,OAAOA,KAAKmrB,QAAZ,K,+BAIA,OAAOnrB,KAAKmrB,QAAZ,K,8CAIA,OAAOnrB,KAAKmrB,QAAQ,IAApB,K,qDAIA,OAAOnrB,KAAKmrB,QAAQ,IAAMnrB,KAAKgpB,SAA/B,iC,+EAIA,QAAShpB,KAAKmrB,QAAP,IAAqBnrB,KAAKgpB,SAAjC,2D,gFASA,OAAOhpB,KAAKorB,uBAAyBprB,KAArC,2D,2CAKA,SAAOA,KAAKqrB,gCAEVC,OAAqCtrB,KAFhC,mC,4CAYP,OAAOA,KAAKmrB,QAAQ,IAAMnrB,KAA1B,a,KASIsrB,EAAN,cAEMJ,E,WACL,gBAA4B,UAC3BlrB,KAAA,OACAA,KAAA,W,4CAIA,OAAIA,KAAKgpB,SAAT,GAA6BhpB,KAAP,KACfA,KAAKuF,KAAZ,K,wCAIA,IAAIvF,KAAKgpB,SAAT,GACA,OAAOhpB,KAAKuF,KAAK,IAAMvF,KAAKgpB,SAA5B,sB,KAIF,SAAS,EAAT,KACC,UACC,iBACC,OAAO+B,EAAP,GACD,aACC,OAAOA,EAAP,GACD,gBACC,OAAOA,EAAP,GACD,mBACC,OAAOA,EAAP,GACD,sBACC,OAAOA,EAAP,GACD,gBACC,OAAOA,EAAP,GACD,UACC,OAAOA,EAAP,GACD,YACC,OAAOA,EAAP,GACD,WACC,OAAOA,EAAP,GACD,kBACC,OAAOA,EAAP,IAmBH,IAAM9B,EAAY,SAAAI,GAAC,iBAAI,MAKjBH,EAAU,SAAAG,GAAC,aA6BV,SAASkC,EAAsB7B,EAASV,GAE9C,IADAA,EAAW,IAAID,EAAfC,IACIA,WAAJ,GACC,OAAOA,aAAP,qBAED,MAAM,IAAI1F,MAAM,oBAAV,OAAN,IAGM,SAASkI,EAAmB9B,EAASV,GAG3C,gBAAOA,eAGR,SAASI,EAAWJ,GAAU,IACrByC,EAAYzC,EADS,QAE7B,kBAAWyC,GACVzrB,KAAA,OAAUyrB,EACVzrB,KAAA,OAAUyrB,EACVzrB,KAAA,OAAUyrB,EACVzrB,KAAA,OAAUyrB,GAEV,GAEO,IAAIC,EAAQD,EAlgBrB,SAmgBGzrB,KAAA,OACM,IAAI0rB,EAAQD,EAjgBrB,UAkgBGzrB,KAAA,MAEAA,KAAA,MANAA,KAAA,MCrgBH,IAOM2rB,EAA4B,SAACC,GAAD,4CASnB,SAASC,EAAuBC,GAO9C,IAcIC,EArBmD,KAsFvD,MAtGD,QAgEQJ,EAzCP,MA+EOK,KApCYC,iIAEZN,EA7CP,MA2CA,GAoCOK,KA/BaC,2FAElBN,EA9CF,KA4CA,GA+BOK,KAtFgD,QA6DrDL,EAhDF,KA+CA,KA0BOK,KAtBgBE,kDAEhBP,EAzDP,MAuDA,GAsBOK,KAjBcE,8CAEfP,EA5DN,KAXuD,GCcxD,IAKaQ,EACZ,kIAmBKC,EAAmC,IAAIC,OAC5C,mFADD,KAUaC,EACZH,EAAA,MAEQN,IAHF,KAODU,EAA6B,IAAIF,OAEtC,wDAFkC,IAAnC,KAmBe,SAASG,EAAoBC,GAC3C,OAAOA,UL9FD,GK+FLF,OADD,GC3FD,IAAMG,EAAe,IAAIL,OAAO,MAAQR,IAAnB,KAArB,KCEO,IAAMc,EAAS,CACrB,EADqB,IAErB,EAFqB,IAGrB,EAHqB,IAIrB,EAJqB,IAKrB,EALqB,IAMrB,EANqB,IAOrB,EAPqB,IAQrB,EARqB,IASrB,EATqB,IAUrB,EAVqB,IAWrB,SAXqB,IAYrB,SAZqB,IAarB,SAbqB,IAcrB,SAdqB,IAerB,SAfqB,IAgBrB,SAhBqB,IAiBrB,SAjBqB,IAkBrB,SAlBqB,IAmBrB,SAnBqB,IAoBrB,SApBqB,IAqBrB,SArBqB,IAsBrB,SAtBqB,IAuBrB,SAvBqB,IAwBrB,SAxBqB,IAyBrB,SAzBqB,IA0BrB,SA1BqB,IA2BrB,SA3BqB,IA4BrB,SA5BqB,IA6BrB,SA7BqB,IA8BrB,SA9BqB,IA+BrB,SA/BqB,IAgCrB,SAhCqB,IAiCrB,SAjCqB,IAkCrB,SAlCqB,IAmCrB,SAnCqB,IAoCrB,SApCqB,IAqCrB,SArCqB,IAsCrB,SAtCqB,IAuCrB,SAvCqB,IAwCrB,SAxCqB,KA2Cf,SAASC,EAAWC,GAC1B,OAAOF,EAAP,GAgBc,SAASG,EAAYngB,GACnC,IAAI2G,EADuC,GAQ3C,EAAwB3G,QAAxB,4DAA0C,yFACnCogB,EAAQH,EAD2B,GAEzC,IACCtZ,MAGF,SC/Dc,SAAS0Z,EAA2BrgB,GAClD,IAAI2G,EADsD,GAQ1D,EAAwB3G,QAAxB,4DAA0C,qFACzC2G,GAAU2Z,EAD+B,EAC/BA,IAAV3Z,GAED,SAcM,SAAS2Z,EAA0BJ,EAAWK,GAEpD,SAAIL,EAAmB,CAGtB,KACC,OAED,UAGD,OAAOD,EAAP,GCnDc,SAASO,EAAkBC,EAAgBpE,GACzD,OAAOqE,EAAyBD,OAAgB1nB,EAAhD,GAKM,SAAS2nB,EAAyBD,EAAgB7nB,EAAMyjB,GAC9D,IAAMsE,EAAYtE,OADsD,GAUpEuE,EAAmBD,GAAaA,EAAbA,mBAA4CtE,EAVK,kBAcxE,MACC,oBAGD,4BAAIzjB,EAAiC,CAGpC,IAAKyjB,OAAL,cAGC,OAAOqE,EAAyBD,EAAgB,SAAhD,GAGD,IAAMI,EAAcxE,OAApB,UACA,IAMCuE,ECpCY,SAAqBtV,EAAGR,GACtC,IAAMgW,EAASxV,EAAf,QAEA,4DAAyB,yFAAdvD,EAAc,EACpBuD,aAAJ,GACCwV,UAIF,OAAOA,EAAA,MAAY,qBAAUxV,EAAV,KD2BEyV,CAAYH,EAAkBC,EANjC,yBAmBb,GAAIjoB,IAAJ,EACJ,uBAGD,IAAMooB,EAAgBP,EAnDkD,OA6DlEQ,EAAiBL,EAAvB,GAEA,OAAIK,IAAJ,EACC,cAGGA,EAAJ,EACC,YAGGL,EAAiBA,SAAjBA,GAAJ,EACC,WAIMA,gCAAP,iBEhCM,SAASM,EAAiBT,EAAgBpE,GAChD,MACC,gBADOmE,EAAkBC,EAA1B,G,kZChDc,SAASU,EAAgBC,EAAMC,GAI7C,OADAD,EAAOA,GAAPA,GACO,IAAI1B,OAAO,OAAS2B,EAApB,WAAP,GCND,IAAMC,EAA6B,CAAC,SAAD,gFAAnC,aAae,SAASC,EAAche,EAAOhM,EAAS8kB,GAQrD,GAJA9kB,EAAUA,GAHX,GAOMgM,EAAL,UAIA8Y,EAAW,IAAID,EAAfC,IAEAA,oBAA6B9Y,EAA7B8Y,QAA4C9Y,EAA5C8Y,oBAEA,IAAMoE,EAAiBlpB,KAAagM,EAAbhM,eAAoCgM,EAf5D,MAqBC,GAAK4d,EAAgBV,EAAgBpE,EAArC,0BAKA,GAAImF,EAAoBf,EAAgB,aAAxC,GAKC,OAAIpE,kBAAJ,KAA+BA,2BAC9B,uBAMIA,OAAL,UAOImF,EAAoBf,EAAgB,SAAxC,GACC,uBAGD,aAVC,uBAaF,+BAA+C,CAA1C,IAAM7nB,EAAI,EAAV,GACJ,GAAI4oB,EAAoBf,EAAgB7nB,EAAxC,GACC,YAKI,SAAS4oB,EAAoBf,EAAgB7nB,EAAMyjB,GAEzD,UADAzjB,EAAOyjB,OAAPzjB,MACcA,EAAd,eASIA,qBACHA,4BAA+B6nB,EAA/B7nB,QADD,IAIOuoB,EAAgBV,EAAgB7nB,EAAvC,YC3Dc,SAAS6oB,EAAiCC,GACxD,OAAOA,UAAwB,IAAIhC,OAAO,IAAX,eAAxBgC,UAAP,OC3BM,IAAMC,EAAN,SAEQ,SAASC,EAAgC,EAAzC,KASb,IALAC,EAKA,EALAA,uBACAC,EAIA,EAJAA,mBAKKJ,GADL,EAHAK,YAGA,EAFA1F,SAGuByD,UACvB,IAAIJ,OAAOsC,EADYlC,WAEvB+B,EACGG,EADmB,sBAgBpBF,GAAsBE,EAAtBF,+BACGE,qBAA6CA,EADhDF,gCAEGE,EApBN,WAuBA,SACQP,EAAP,GAED,ECjCD,IAAMQ,EAAN,yC,wHCAA,IAAMC,EAAkB,CACvBC,gBAAiB,0CAA+D9F,EAA/D,mBAgBH,SAAS+F,EAAa7e,EAAOye,EAAQzqB,EAAS8kB,GAU5D,GAPC9kB,EADD,E,uUACW,CAAH,KAAPA,GAEAA,EAGD8kB,EAAW,IAAID,EAAfC,GAEI9Y,WAAJ,QAAqBA,UAAyB,CAE7C,IAAK8Y,aAAoB9Y,EAAzB,SACC,MAAM,IAAIoT,MAAM,oBAAV,OAA8BpT,EAApC,UAED8Y,UAAiB9Y,EAAjB8Y,aAEI,KAAI9Y,EAAJ,mBAGA,OAAOA,SAAP,GAFJ8Y,sBAA6B9Y,EAA7B8Y,oBAID,IAMA,EANMgG,EAAqBhG,EAA3B,qBAEMoE,EAAiBlpB,KAAagM,EAAbhM,eAAoCgM,EAxBW,MA8BtE,UACC,eAGC,SAIO+e,GADPxC,EAASyC,EAAqB9B,EAAgBld,EAAjB,yBAA7Buc,GAC4Bvc,EAAT,MAA8BhM,EAAjD,iBAHC,GAKF,oBAGC,UAGAuoB,EAASyC,EAAqB9B,EAAgB,KAAM,gBAAiBpE,EAArEyD,GAEOwC,GADPxC,EAAS,IAAH,qBAANA,GAC4Bvc,EAAT,MAA8BhM,EAAjD,kBAJC,cAMF,YAEC,8BAED,cACC,OCjCI,SAAuB,GAAiB,IAAfuoB,EAAe,EAAfA,OAAQ0C,EAAO,EAAPA,IACvC,MACC,SAED,SAAI1C,KACH,MAAM,IAAInJ,MAAV,6DAED,8BAAuB6L,EAAM,QAAH,EAA1B,ID0BSC,CAAc,CACpB3C,OAAQ,IAAF,iBADc,GAEpB0C,IAAKjf,EAAMif,MAOb,UACC,IAAKjrB,EAAL,YAA0B,OAI1B,IAAMmqB,EAqDT,SAAmB,EAAnB,SASC,GAF+B9C,EAAsB8D,EAAarG,EADjE,YAGD,EAAmD,CAClD,IAAMqF,EAAkBa,EAAqB9B,EAAgBsB,EAAa,WADxB,GAIlD,YAAIM,EACIA,MAAP,EAWD,EAED,IAAMM,EDlKQ,SAAsB5F,EAASE,EAAaZ,GAC1D,IAAMuG,EAAkB,IAAIxG,EAA5B,GAEA,OADAwG,2BACIA,EAAJ,mBACQA,EAAP,mBAEGX,OAA+BW,EAAnC,aACQA,EAAP,iBADD,EC4JkBC,CAAaH,OAAa3pB,EAAWsjB,EAAvD,UACA,KACC,4CAA6CkG,EAAqB9B,EAAgB,KAAM,gBAAxF,IAlFyBqC,CAAU,EAEjCvf,EAFgC,cAIhChM,EAJgC,YAAjC,GAOA,OAAO+qB,GAAaZ,EAAiBne,EAAlB,MAAuChM,EAA1D,iBAED,QACC,MAAM,IAAIof,MAAM,0DAAV,SAAN,OAIH,SAAS4L,EAAqBzC,EAAQiC,EAAagB,EAAU1G,EAAU9kB,GACtE,IAAMyqB,EAgBP,SAA+BgB,EAAkBC,GAChD,gEAAuC,yFAA5BjB,EAA4B,EAEtC,GAAIA,iCAAJ,EAA+C,CAE9C,IAAMkB,EAA2BlB,0BAA+BA,iCAFlB,GAI9C,OAAIiB,YACH,SAIF,GAAI9B,EAAgB8B,EAAiBjB,EAArC,WACC,UA7BamB,CAAsB9G,EAAD,UAApC,GACA,SAGOuF,EAAgC,EAAD,EAGrC,CACCC,uBADD,kBACyBkB,EACxBjB,oBAAoBE,6DAAoEzqB,IAApEyqB,IAA+EzqB,iBACnGwqB,YAHD,EAIC1F,aATD,EAgCF,SAASiG,GAAaZ,EAAiBc,EAAKnG,EAAU8F,GACrD,OAAOK,EAAML,EAAgBT,EAAiBc,EAApC,GAAV,E,gSE5ID,IAEqBY,G,WACpB,kBACC,G,4FADyD,UACzD,EACC,MAAM,IAAI7a,UAAV,gDAED,MACC,MAAM,IAAIA,UAAV,+BAED,MACC,MAAM,IAAIA,UAAV,yBAED,IAAM8a,EAAY,IAAIjH,EAVmC,GAarDkH,GAAJ,KACCjwB,KAAA,UACAgwB,aACAhB,EAAqBgB,EAArBhB,sBASDhvB,KAAA,qBACAA,KAAA,iBACAA,KAAA,OAAc,IAAMA,KAAN,mBAAgCA,KAA9C,eACAA,KAAA,W,qDAGMmvB,GACNnvB,KAAA,Q,mCAIA,OR3Ca,SAA+BkQ,EAAOhM,EAAS8kB,GAQ7D,QANA,IAAI9kB,IACHA,MAGD8kB,EAAW,IAAID,EAAfC,GAEI9kB,EAAJ,GAAgB,CACf,IAAKgM,EAAL,mBACC,MAAM,IAAIoT,MAAV,sCAED0F,sBAA6B9Y,EAA7B8Y,wBACM,CACN,IAAK9Y,EAAL,MACC,SAED,GAAIA,EAAJ,QAAmB,CAClB,IAAK8Y,aAAoB9Y,EAAzB,SACC,MAAM,IAAIoT,MAAM,oBAAV,OAA8BpT,EAApC,UAED8Y,UAAiB9Y,EAAjB8Y,aACM,CACN,IAAK9Y,EAAL,mBACC,MAAM,IAAIoT,MAAV,sCAED0F,sBAA6B9Y,EAA7B8Y,qBAIF,GAAIA,EAAJ,kBACC,OAAO6E,EAAiB3d,SAAeA,EAAhB,eAAvB,GAQA,GAAIA,sBAA4B8Y,6BAAoC9Y,EAApE,oBAGC,SAEA,MAAM,IAAIoT,MAAV,kGQDMuK,CAAiB7tB,KAAM,CAAEwqB,IAAI,GAAQxqB,KAA5C,Y,gCAIA,OCjBoCkQ,EDiBflQ,KCjBsBkE,EDiBhB,CAAEsmB,IAAI,GCjBmBxB,EDiBXhpB,KAAzC,SCbDkE,EAAUA,GAAVA,GAEA8kB,EAAW,IAAID,EALhB,KASM7Y,EAAL,UAKA8Y,sBAA6B9Y,EAA7B8Y,QAA4C9Y,EAd7C,oBAkBK8Y,EAAJ,gBAEC,IAAOkF,EAAche,EAAOhM,EAAS8kB,EAA9BkF,UAMDJ,EADiB5pB,KAAagM,EAAbhM,eAAoCgM,EAA5D,MACwC8Y,EAAxC,0BA3Bc,IAAuB9Y,EAAOhM,EAAS8kB,I,wCDsBpD,OADiB,IAAID,EAAS/oB,KAA9B,UACOgpB,2BAAoChpB,KAA3C,sB,8BAGOkwB,GACP,OAAOlwB,KAAKysB,SAAWyD,EAAhB,QAAsClwB,KAAKmvB,MAAQe,EAA1D,M,gCAUA,OAAOhC,EAAcluB,KAAM,CAAEwqB,IAAI,GAAQxqB,KAAzC,Y,6BAGM2uB,EAAQzqB,GACd,OAAO6qB,EAAa,KAAD,EAGlB7qB,E,wUAAU,CAAH,MAAiBsmB,IAAI,IAAS,CAAEA,IAAI,GAC3CxqB,KAJD,Y,qCAQckE,GACd,OAAOlE,KAAK2uB,OAAO,WAAnB,K,0CAGmBzqB,GACnB,OAAOlE,KAAK2uB,OAAO,gBAAnB,K,6BAGMzqB,GACN,OAAOlE,KAAK2uB,OAAO,UAAnB,M,qCAIIsB,GAAgB,SAAC5wB,GAAD,MAAW,aAAaoK,KAAxB,IE3FhB0mB,GAA0B,IAAI9D,OAAO,kDAE5B,SAAS+D,GAAe3D,EAAQ/C,EAASE,EAAaZ,GACpE,MAIA,IAAMuG,EAAkB,IAAIxG,EAA5B,GACAwG,2BACA,IAAMc,EAAmB,IAAIhE,OAAOkD,EAApC,aACA,OAAI9C,YAAJ,CASA,IAAM6D,GALN7D,EAASA,QAAaA,cAZwD,SAiBxDA,MAAtB,IACA,KAAI6D,SAAiBA,MAA4BA,YAAjD,GACC,MAAIA,MAIL,WCfc,SAASC,GAAkD9D,EAAQzD,GACjF,GAAIyD,GAAUzD,gBAAd,2BAAiE,CAIhE,IAAMwH,EAAgB,IAAInE,OAAO,OAASrD,gBAAT,2BAAjC,KACMyH,EAAcD,OAApB,GACA,KAAiB,CAChB,MADgB,EAyDhB,EAtCME,EAAsBD,SAA5B,EACME,EAAoBD,KAA2BD,EAArD,GACA,GAAIzH,iCAAJ,EACCoE,EAAiBX,YAEhBzD,EAH+D,+BAO5D0H,EAAJ,IACChC,EAAc+B,EAAd/B,QASG,CAMJ,IAAMkC,EAA6BH,EAAnC,GACArD,EAAiBX,QAAamE,EAP1B,QAUJ,IACClC,EAAc+B,EAAd/B,IASF,KAAuB,CACtB,IAAMmC,EAA0CpE,UAAegE,EAA/D,IAC+BhE,UAFT,KASSzD,gBAA/B,mBACC8H,EAAiB9H,gBAAjB8H,uBAGDA,EAAiBL,EAAjBK,GAED,MAAO,CACN1D,eADM,EAEN0D,eAFM,EAGNpC,gBAID,MAAO,CACNtB,eAAgBX,GCxFL,SAASsE,GAAsBtE,EAAQzD,GAAU,MAa3DuH,GAAkD,EAbS,GAW9DnD,EAX8D,iBAY9DsB,EAZ8D,cAiB/D,IAgDD,SAAqCjC,EAAQuE,EAA2BhI,GAGvE,GAAI8E,EAAgBrB,EAAQzD,EAAxB8E,2BACFA,EAAgBkD,EAA2BhI,EAD7C,yBAEC,SAOD,SA5DKiI,CAA4BxE,EAAQW,EAAzC,GAEC,MAAO,CAAEA,eAAgBX,GAW1B,GAAIA,WAAkBW,UAAyBsB,EAAcA,EAAH,OAA1D,IAGK1F,EAAJ,kBAMC,OAAQmE,EAAkBC,EAA1B,IACC,gBACA,qBAGC,MAAO,CAAEA,eAAgBX,GAI7B,MAAO,CAAEW,eAAF,EAAkBsB,eC9CX,SAASwC,GAAgE,EAAzE,OAMd,IAAMlC,EAAqBtF,EAAU6B,EAAsB7B,EAAzB,GAAlC,EACA,OAAI+C,aAA0C,EAC7CzD,EAAW,IAAID,EAAfC,IACAA,yBACA,IAAMmI,EAAwB1E,QAAauC,EAA3C,QAEiBoC,EACbL,GAAsB,EANmB,kBAW5C3D,EACG2D,GAAsB,EAZmB,kBAwB7C,IAEGjD,EAAgBV,EAAgBpE,EAAjC,0BAEA8E,EAAgBsD,EAA+BpI,EAHhD,0BADD,aAOCmE,EAAkBC,EAAlBD,GAEA,MAAO,CACN6B,mBADM,EAENvC,OAAQ0E,GAIX,MAAO,CAAE1E,UCtCK,SAAS,GAAT,SAMd,MACC,SAUD,SAAIA,KAAmB,CAGtB,IAAM4E,EAAmBjB,GAAe3D,EAAQ/C,EAASE,EAHnC,GAOtB,IAAIyH,GAAoBA,IAAxB,EAEO,CAKN,GAAI3H,GAAJ,EAA4B,OAIvBwH,GAAgE,EAAD,IAJxC,GAE1BlC,EAF0B,qBAGlBsC,EAHkB,SAU3B,KACC,MAAO,CACNtC,mBADM,EAENvC,OAAQ6E,GAIX,MAAO,CAAE7E,UAvBTA,EAAS,IAATA,EA4BF,SAAIA,KACH,SAGDzD,EAAW,IAAID,EApDd,GAgED,IADA,IAAIxqB,EAAJ,EACOA,KzBpFD,GyBoFqCA,GAAKkuB,EAAhD,QAA+D,CAC9D,IAAMuC,EAAqBvC,UAA3B,GACA,GAAIzD,iBAAJ,GAEC,OADAA,yBACO,CACNgG,mBADM,EAENvC,OAAQA,YAGVluB,IAGD,SCnGc,SAASgzB,GAAwB3H,EAAa4H,EAAqBxI,GAQjF,IAAMyI,EAAoBzI,gCAA1B,GACA,KAKA,WAAIyI,SACIA,EAAP,GAKF,SAA+BA,EAAmBD,EAAqBxI,GAEtEA,EAAW,IAAID,EAAfC,GACA,gEAAyC,yFAA9BU,EAA8B,EAMxC,GALAV,UADwC,GAMpCA,EAAJ,iBACC,GAAIwI,GAAJ,IACCA,SAA2BxI,EAA3BwI,iBACA,cAKG,GAAItD,EAAc,CAAEwD,MAAF,EAA8BhI,gBAA/B,EAAqDV,EAAtE,UACJ,UArBK2I,CAAsBF,EAAmBD,EAAqBxI,EAArE,UCQD,IAGM4I,GAA6B,IAAIvF,OAAO,uDAKxCwF,GAAiC,IAAIxF,OAAO,oDAenC,SAAS,GAAT,OAQd,GALAnoB,EAAUA,GAAVA,GAEA8kB,EAAW,IAAID,EALuC,GAQlD7kB,mBAA2B8kB,aAAoB9kB,EAAnD,gBAA4E,CAC3E,GAAIA,EAAJ,GACC,MAAM,IAAIokB,EAAV,mBAED,MAAM,IAAIhF,MAAM,oBAAV,OAA8Bpf,EAApC,iBAZqD,MAqKvD,SAAoB6pB,EAAMvD,EAAIsH,GAE7B,GAAI/D,GAAJ,IAAYA,kBACX,OTrNK,SAAsBA,GAC5B,MADkC,EAOlC,GAFAA,EAAOA,kBAAPA,SAEmBA,MAAnB,6DAAoC,+FACbpT,MADa,QAC5BrU,EAD4B,KACtBjH,EADsB,KAEnC,UACC,UACCotB,IACA,MACD,UACC0C,IACA,MACD,oBAGC,MAAI9vB,OACHotB,EAASptB,EAATotB,IAOJ,IAAKD,EAAL,GACC,SAGD,IAAMlZ,EAAS,CAAEmZ,UAIjB,OAHA,IACCnZ,SAED,ESkLQye,CAAP,GAED,IAAItF,EApCL,SAAqCsB,EAAM+D,EAASE,GACnD,MACC,OAED,GAAIjE,SAjKL,IAiK4C,CAC1C,KACC,MAAM,IAAIzF,EAAV,YAED,OAED,QAAIwJ,EACH,SAGD,IAAMG,EAAWlE,SAAjB,IACA,GAAIkE,EAAJ,EACC,OAED,OAAOlE,EAAA,oBAAP,IAkBamE,CAA4BnE,EAAM+D,EALT,GAOtC,MACC,SAED,IAAKtF,EAAL,GACC,OtB5HK,SAAkCC,GACxC,OAAOL,OAAP,GsB2HK+F,CAAJ,GACQ,CAAEvO,MAAO,aAEjB,GAID,IAAMwO,ErBnOQ,SAA0B3F,GACxC,IAAM4F,EAAQ5F,SAAd,GACA,GAAI4F,EAAJ,EACC,SAOD,IAHA,IAAMC,EAAyB7F,UAA/B,GACM8F,EAAU9F,QAAhB,GACIluB,EAAJ,EACOA,EAAIg0B,EAAX,QAA2B,CAC1B,GAAIA,EAAJh0B,GACC,MAAO,CACNkuB,OADM,EAEN0C,IAAKoD,EAAQh0B,IAGfA,KqBkN6Bi0B,CAA9B,GACA,GAAIJ,EAAJ,IACC,SAED,MAAO,CAAE3F,UA3K4CgG,CAAW1E,EAAM7pB,EAAP,GAAmBA,EAhB5B,SAgBtCwuB,EAhBsC,SAgBhBvD,EAhBgB,MAgBXvL,EAhBW,QAmBtD,MAA2B,CAC1B,GAAI1f,EAAJ,GAAgB,CACf,iBAAI0f,EACH,MAAM,IAAI0E,EAAV,aAED,MAAM,IAAIA,EAAV,gBAED,SA1BqD,MAoNvD,SAA0B,EAA1B,OAKE,IAUD,EAVC,EAEoCqK,GACpC3F,EAD6D,OAI7DhE,EANA,UAEKgG,EAFL,qBAEyBvC,EAFzB,SAWD,KACCzD,6BAII,KAAIyD,IAAWmG,IAAf,EAcA,MAAO,GAbX5J,2BACA,IACCU,KASDsF,EAAqB6D,GAAsBtH,EAAsBqH,EAAgB5J,EAAjFgG,UAID,MACC,MAAO,CAAEA,sBAjCT,MAuCG+B,GACH/D,EADwB,GAvCxB,GAqCAI,EArCA,iBAsCAsB,EAtCA,cAsDKoE,EAAevB,GAAwBvC,EAAoB5B,EAAjE,GACA,IACC1D,IAEA,QAAIoJ,GAKH9J,cAIF,MAAO,CACNU,QADM,EAENsF,mBAFM,EAGN5B,eAHM,EAINsB,eA9PGqE,CAAiB,EAEpB7uB,EAFmB,eAGnBA,EAHmB,mBAlCkC,GA8BrDwlB,EA9BqD,UA+BrD0D,EA/BqD,iBAgCrD4B,EAhCqD,qBAiCrDN,EAjCqD,cAyCtD,IAAK1F,EAAL,2BAA0C,CACzC,GAAI9kB,EAAJ,GACC,MAAM,IAAIokB,EAAV,mBAED,SAID,IAAK8E,GAAkBA,S3BrGjB,E2BqG6D,CAGlE,GAAIlpB,EAAJ,GACC,MAAM,IAAIokB,EAAV,aAGD,SAYD,GAAI8E,S3BpHE,G2BoH0C,CAC/C,GAAIlpB,EAAJ,GACC,MAAM,IAAIokB,EAAV,YAGD,SAGD,GAAIpkB,EAAJ,GAAgB,CACf,IAAMgsB,EAAc,IAAI,GAAJ,IAGnBlH,EAHD,UAcA,OATA,IACCkH,aAED,IACCA,iBAED,IACCA,SAED,EAMD,IAAM8C,KAAS9uB,WAAmB8kB,EAAnB9kB,2BAAD,IACb4pB,EAAgBV,EAAgBpE,EADnB,yBAId,OAAK9kB,EAAL,SAMO,CACNwlB,QADM,EAENsF,mBAFM,EAGNN,YAHM,EAINsE,MAJM,EAKNC,WAAUD,MACT9uB,iBACA8kB,EADA9kB,oBAEA2pB,EAAiBT,EAFjBlpB,IAIDwtB,MAVM,EAWNvC,OAhBO6D,EA2FT,gBACC,IAAM1f,EAAS,CACdoW,QADc,EAEdgI,MAAOtE,GAER,IACC9Z,SAED,SAnGgBA,CAAOoW,EAAS0D,EAAnB,GAAZ,G,yHCzJa,SAAS,GAAT,OACd,OAAO8F,GAAYnF,E,wUAAM,CAAP,MAAqBvD,IAAI,IAA3C,G,wvBCIM,SAAS2I,GAAmB3tB,GACnC,IAGC,EACA,EAJD,OACsCxB,2BADtC,MACQovB,EADR,KACeC,EADf,KACsBC,EADtB,KAC6BC,EAD7B,KASC,qBAAWH,EAGN,MAAM,IAAIle,UAZhB,wCAgBC,GANC6Y,IAMIsF,GAAL,kBAAqBA,EAgBhB,KAAIG,GAAJ,GASA,MAAM,IAAIlQ,MAAM,4BAAV,OAAN,IAPJ,GACCpf,IACA8kB,KAEAA,SApBD,GACC9kB,IACA8kB,MAEA9kB,SACA8kB,KAGD,IACC9kB,E,wUAAU,CAAH,CAAK0uB,eAAgBS,GAA5BnvB,IAgBF,MAAO,CACN6pB,KADM,EAEN7pB,QAFM,EAGN8kB,YAMF,IAAMwK,GAAW,SAAAnK,GAAC,iBAAI,O,yHCxDP,SAASoK,GAA2B1F,EAAM7pB,EAAS8kB,GAE7D9kB,GAAWA,EAAXA,iBAAsCsnB,EAAmBtnB,EAAD,eAA5D,KACCA,E,wUAAU,CAAH,MAEN0uB,oBAAgBltB,KAIlB,IACC,OAAOqtB,GAAiBhF,EAAM7pB,EAA9B,GACC,MAAO0f,GAER,KAAIA,aAAJ,GAGC,SCjBY,SAAS,KAA6B,MAChBuP,GADgB,WAC5CpF,EAD4C,OACtC7pB,EADsC,UAC7B8kB,EAD6B,WAEpD,OAAO0K,GAA4B3F,EAAM7pB,EAAzC,GCHc,SAASyvB,GAAa3K,GACpC,OAAO,IAAID,EAASC,GAApB,e,mDCDYA,GAAW,WAAgB,CACvC4K,sBAAwBC,YADe,WAEvCtK,UAAYsK,YAAiBC,aAGjBC,GAASF,cAAmBA,KAAlC,Q,oBCNA,SAASG,GAAiBC,EAAQtnB,GACxC,IAAIunB,EAD4C,EAShD,EAAwBvnB,QAAxB,4DAA0C,yFACzC,GACCunB,IAGF,SCbc,SAASC,GAAYC,EAAmBC,GAStD,IARD,IADiEC,EACjE,uDAD+E,IAAKC,EACpF,uDADwG,IAEnGC,EAAaJ,EAAjB,OAEMK,EAAiBT,GAAiB,IAAxC,GACMU,EAAiBV,GAAiB,IAAxC,GAEIW,EAAkBF,EAAtB,EAEOE,KAAuBH,EAAaH,EAA3C,QAECD,GAAqBC,eAArBD,GAEA,MAAIC,MAEHM,IAGDH,IAGD,SCWc,SAAS,GAAT,OAEd,kBAAWI,IAEVA,ECvBa,YACf,IADkCN,EAClC,uDADgD,IAAKO,EACrD,uCACC,MAEC,OAAO,SAAAx1B,GAAK,MAAK,CAAE0uB,KAAM1uB,IAG1B,IAAMy1B,EAAyBd,GAAiBM,EAAhD,GAEA,OAAO,YAEN,MAEC,MAAO,CAAEvG,KAAF,GAAYsG,YAGpB,IAAIU,EAAJ,EACIC,EAPL,GAeC,EAAwBX,QAAxB,4DACA,yFADWxH,EACX,EACC,GAAIA,IAAJ,GAaA,GAPAmI,GAAsB31B,EAAtB21B,KACAD,IAM8B11B,EAA9B,QAKKA,SAAJ,EAEC,WAlBD21B,KA4BF,OALA,IAECA,EAAqBC,GAAaD,EAAlCA,IAGM,CAAEjH,KAAF,EAA4BsG,aDlCvBa,CAAZN,IAHF,MAM0BA,MAN1B,GAMO7G,EANP,OAMasG,EANb,WAaC,QALA,IAAItG,IAEFA,KAGF,EAEC,YAAIoH,EAEHA,EAAQpH,EAARoH,WAGD,CAMC,IALA,IAAIxe,EAAJ,EACIye,GAAJ,EAEIC,GAAJ,EAEO1e,EAAQoX,EAARpX,QAAuBA,EAAQ0d,EAAtC,QACA,CAEC,GAAItG,OAAgBsG,EAApB,GACA,CACC,OAAIc,EACJ,CACCC,KACAD,IACA,MAGDE,IAEAF,IAGDxe,IAKD,IAECwe,EAAQE,EAARF,GAKH,MAAO,CAAEpH,KAAF,EAAQoH,SE1FT,SAASG,GAAW5gB,GAE1B,OAAOA,eAAP,YAIM,SAAS6gB,GAAa7gB,GAG5B,GAAIA,mBAA2BA,EAA/B,aAKA,MAAO,CAAE2d,MAAO3d,EAAT,eAAiChB,IAAKgB,EAAQ8gB,cAI/C,IAAMC,GACb,EADaA,GAGA,GAwBN,SAASC,GAAiBhhB,EAASihB,QAGzC,IAAIA,KAuBL,WAEC,wBAAWhY,UACV,OAAOiY,QAAgCjY,UAAvC,WAVGkY,GAGHnhB,yBAFIohB,YAAW,kBAAMphB,sBAAN,KAAXohB,IAaN,IAAMF,GAAN,WCTO,SAAS,GAAT,WAEN,IAAIN,GAAJ,IAIA,IAAMS,EDjDA,SAAsB90B,GAE5B,OAAQA,EAAR,SAEC,KAAKw0B,GACJ,kBAED,KAAKA,GACJ,gBCyCgBO,CAAlB,GACA,UAEC,aACA,gBAEC/0B,mBAEA,IAAMg1B,EAAYV,GAJnB,GAOC,UAECW,GAAehmB,EAAfgmB,GACOC,GAAgBjmB,EAAOkmB,EAAQjL,OAASzlB,EAA/C,IAIMywB,GAAgBjmB,EAAOkmB,EAAQjL,EAAS4K,EAA/C,KAYH,SAASG,GAAehmB,EAAO+lB,GAE9B,IAAIlI,EAAO7d,EAAX,MACA6d,EAAOA,UAAckI,EAAdlI,OAAiCA,QAAWkI,EAAnDlI,KAEA7d,UACAwlB,GAAiBxlB,EAAO+lB,EAAxBP,OAeD,SAASS,GAAgBjmB,EAAOkmB,EAAQjL,EAAS4K,EAAWM,GAC5D,MC5Ge,gBAOd,IALA,IAAIh3B,EAAJ,GAEIi3B,EAAJ,EAEI3f,EAAJ,EACOA,EAAQoX,EAAf,QACA,CACC,IAAMlB,EAAY0J,EAAgBxI,EAAD,GAAjC,QAEA,IAAIlB,IAEHxtB,UAEA,IAAIs2B,IAECA,IAAJ,EAECW,EAAgCj3B,SAAhCi3B,EAEQX,EAAJ,IAEJW,EAAgCj3B,EAAhCi3B,UAKH3f,IAgBD,YAZA,IAAIgf,IAGHW,EAAgCj3B,EAAhCi3B,QAID,CACCj3B,MADD,EAEC81B,MAAQmB,GDsEcE,CAAMtmB,EAAD,QDzF5B,eCsFD,GAGO7Q,EAHP,QAGc81B,EAHd,QAOC,KACA,CACC,IAAMsB,EExHO,SAAcp3B,EAAO81B,EAAOY,GAE1C,UAEC,gBAGKZ,EAAJ,IAGC91B,EAAQA,UAAe81B,EAAf91B,GAA4BA,QAFrC,GAIC81B,KAED,MAED,aAEC91B,EAAQA,aAAwBA,QAAY81B,EAA5C91B,GAIF,MAAO,CAAEA,MAAF,EAAS81B,SFkGUuB,CAAKr3B,EAAO81B,EAArC,GAEA91B,EAAQo3B,EAARp3B,MACA81B,EAAQsB,EAARtB,MAKD,IAAMwB,EAAYhI,GAAOtvB,EAAO81B,EAAhC,GAEMpH,EAAO4I,EAAb,KACAxB,EAAawB,EApBd,MA0BCzmB,QA1BD,EA4BCwlB,GAAiBxlB,EA5BlB,GAgCCmmB,K,wkBG7ID,SAAS,GAAT,KAQQ,IAPPh3B,EAOO,EAPPA,MACAm3B,EAMO,EANPA,MACA7H,EAKO,EALPA,OACgBiI,EAIT,EAJPC,eACAC,EAGO,EAHPA,SACAC,EAEO,EAFPA,UACGh2B,EACI,yEACDi2B,EAAcC,oBACdC,EAASC,wBAAY,YAC1BH,YACA,IACC,oBAAW1rB,EACVA,KAEAA,eAGA,CATH,IAUM8rB,EAAYD,wBAAY,YHW9BhB,GGREa,EAFmB,iBHUmBtxB,EGVvC,KAOE,CAACsxB,EAAaR,EAAO7H,EARxB,IAUM0I,EAAaF,wBAAY,YAI9B,OAHA,GACCJ,KAEMO,GAAe,EAErBN,EAFoB,YAArB,KAOE,CAACA,EAAaR,EAAO7H,EAAQmI,EAXhC,IAaA,OACC,8BAECxrB,IAFD,EAGCjM,MAAOsvB,EAAO4I,SAAP5I,GAHR,KAICoI,UAJD,EAKCD,SAAUM,MAIbI,GAAQ93B,gBAAR83B,KAEAA,UAAkB,CAEjBhB,MAAO3C,UAFU,WAKjBlF,OAAQkF,UALS,WAQjBgD,eAAgBhD,iBARC,WAWjBtuB,KAAMsuB,YAXW,WAcjBx0B,MAAOw0B,KAdU,OAiBjBiD,SAAUjD,UAjBO,WAoBjBkD,UAAWlD,KApBM,KAqBjB4D,MAAO5D,KArBU,KAsBjB6D,QAAS7D,KAAU/d,MAGpB0hB,gBAAqB,CAEpBX,eAFoB,QAKpBtxB,KAAM,QAGP,UAEA,SAASgyB,GAAal4B,GACrB,YAAOA,OAAP,OAA8BA,E,2KC7GVs4B,G,WACpB,cAAsD,I,MAAA,OAAxCC,EAAwC,EAAxCA,gBAAiBC,EAAuB,EAAvBA,qB,4FAAuB,S,EAuB7C,YACR,cAAkB/yB,YAAlB,kBAA2C,CAAtC,IAAMI,EAAG,EAAT,GACJ,KAAYiS,EAAZ,M,EAzBoD,Y,EAAA,M,sFACrDnX,KAAA,kBACAA,KAAA,sB,qDAGK4yB,EAAgBC,GACrB7yB,KAAA,iBACAA,KAAA,iBACAA,KAAA,mBACAA,KAAA,mBACAA,KAAA,UACAA,KAAA,iCACAA,KAAA,iC,uDAIAA,KAAA,0BAAiCA,KAAjC,oBACAA,KAAA,yCACAA,KAAA,sBACAA,KAAA,mBACAA,KAAA,sD,gDASyB0pB,EAASE,GAClC5pB,KAAA,cACAA,KAAA,oB,iCAGU0pB,GACV1pB,KAAA,UACAA,KAAA,qB,qCAGc4pB,GAEd,OADA5pB,KAAA,cACOA,KAAK63B,oBAAoB73B,KAAzB,QAAP,K,iDAKAA,KAAA,eAF0B,EAM1BA,KAAA,8B,mCAGY83B,GACZ93B,KAAA,Y,4DAGqC83B,GACrC93B,KAAA,+B,0CAWA,OAAIA,KAAJ,cACQA,KAAK+3B,OAAO7sB,OACjBlL,KAAKg4B,UAAYh4B,KAAKg4B,UAAtB,OAAD,IACCh4B,KAAK4pB,YAAc5pB,KAAK4pB,YAAxB,OAFF,IAKM5pB,KAAP,S,4DAIA,OAAIA,KAAJ,eACKA,KAAJ,UACQA,KAAK+3B,OAAO7sB,MAAMlL,KAAKg4B,UAA9B,QAGKh4B,KAAP,Y,kCCpFWi4B,GAAN,IACDC,GAA4B,IAAI7L,OAAtC,IAqBO,SAAS8L,GAAOxrB,EAAQyrB,GAC9B,GAAIA,EAAJ,EACC,SAGD,IADA,IAAI9kB,EAAJ,GACO8kB,EAAP,GACC,EAAIA,IACH9kB,MAED8kB,MACAzrB,KAED,OAAO2G,EAAP,EAGM,SAAS+kB,GAA2B1rB,EAAQ2rB,GAIlD,MAHA,MAAI3rB,MACH2rB,IAmBK,SAA8B3rB,GACpC,IAAMgoB,EAAN,GACIp2B,EAAJ,EACA,KAAOA,EAAIoO,EAAX,QACC,MAAIA,KACHgoB,UAEI,MAAIhoB,MACRgoB,QAEDp2B,IAED,IAAI8zB,EAAJ,EACIkG,EAAJ,GACA5D,OAAqBhoB,EAArBgoB,QACA,+BAAqC,CAAhC,IAAMhe,EAAK,EAAX,GACJ4hB,GAAkB5rB,UAAlB4rB,GACAlG,EAAQ1b,EAAR0b,EAED,SApCOmG,CAAqB7rB,UAA5B,ICtCc,SAAS8rB,GAAqB1lB,EAAO4b,EAAQ,GAIzD,IAHF3F,EAGE,EAHFA,SACA0P,EAEE,EAFFA,sCACAC,EACE,EADFA,gCAGA,GADgB,IAAItM,OAAO,OAAX,OAAkBsC,EAAlB,UAAhB,OACIiK,KAAa7lB,EAAjB,2BACC,OAgBF,SAAwEA,EAAO4b,EAAQ,GAIpF,IAHF3F,EAGE,EAHFA,SACA0P,EAEE,EAFFA,sCACAC,EACE,EADFA,gCASI5lB,EARF,0BAQEA,EARF,cAQEA,EARF,eAQEA,EARF,YAoBF,GAAI2lB,EAAJ,GAAmD,CAClD,IAAMrK,EAAkBa,GAAqBnc,EAAO4b,EAAQ,CAC3DkK,iCAD2D,EAE3DF,gCAF2D,EAG3D3P,aAED,KACC,SAKF,OAAOkG,GAAqBnc,EAAO4b,EAAQ,CAC1CkK,iCAD0C,EAE1CF,gCAF0C,EAG1C3P,aAvDO8P,CAA+D,EAAD,EAGpE,CACC9P,SADD,EAEC0P,sCAFD,EAGCC,oCAqDJ,SAAS,GAAT,OAIG,IAHF3P,EAGE,EAHFA,SACA6P,EAEE,EAFFA,gCACAF,EACE,EADFA,gCAEII,EAA0BxK,EAC7Bxb,EAD4D,4BAG5D,CACC2b,YAAa3b,EADd,YAECyb,uBAAwBzb,EAFzB,cAGC0b,mBAHD,EAICzF,aAgBF,GAbA,IACKjW,EAAJ,eAGCgmB,EAA0BhmB,iBACzB4lB,EADyB5lB,GAA1BgmB,EAGUhmB,EAAJ,+CACNgmB,EAA0BhmB,mDAA1BgmB,IAuCH,SAAwCA,EAAyBhmB,GAChE,OAAO+Z,OAAyC/Z,EAAhD,oBAnCIimB,CAA+BD,EAAnC,GACC,S,sUCnGmBE,G,WACpB,cAAqB,WACpBj5B,KAAA,WAAiB,IAAIk5B,IAAgB1C,MAArC,G,yCAGK7pB,GAAgC,6DAAJ,GAAlBwsB,EAAsB,EAAtBA,cACf,MACC,MAAM,IAAI7V,MAAV,sBAED,IAAMhQ,EAASvQ,GAAM4J,QAAD,IAAmB3M,KAAnB,WAApB,GAIA,GAHIsT,GAAUA,EAAd,cACQA,EAAP,cAEGA,IAAUA,EAAd,UACC,EAID,a,KAIF,SAAS,GAAT,OACC,qBAAW8lB,EAAmB,CAC7B,MAEKC,SAAoBD,EAAxB,OACC,MAAO,CACNE,UAAU,GAIb,IAAMC,EAAkBF,OAAxB,IACA,WAAID,aAKCC,WAAsBD,EAA1B,OACQ,CACNr2B,OADM,EAENy2B,aAAcH,GAOT,CACNI,cADM,GAKR,IAAIF,aACI,CACNx2B,OADM,EAENy2B,aAAcH,UAAoBD,EAApBC,cAGhB,EAGD,GAAIr1B,cAAJ,GAAyB,CAGxB,IAFA,IAAI01B,EAAiBL,EAArB,QACI96B,EAAJ,EACOA,EAAI66B,EAAX,QAAwB,CACvB,IACM9lB,EAASvQ,GAAM22B,EADLN,EAAhB,GAC8C1e,GAASnc,IAAM66B,SAA7D,GACA,MACC,OACM,GAAI9lB,EAAJ,SACN,SACM,IAAIA,EAAJ,MAgBA,CAEN,GAAIA,EAAJ,aACC,MAAO,CACNmmB,cADM,GAKP,MAAM,IAAInW,MAAM,8BAAV,OAAwCqW,sBAA9C,KArBD,QADAD,EAAiBA,QAAqBpmB,eAAtComB,SACIA,OACH,OAAIn7B,IAAM66B,SAAV,EACQ,CACNr2B,OADM,EAENy2B,aAAcH,GAGR,CACNI,cADM,GAiBVl7B,IAKD,SACQ,CACN+6B,UAAU,GAGL,CACNv2B,OADM,EAENy2B,aAAcH,UAAoBA,SAAoBK,EAAxCL,SAIhB,OAAQD,EAAR,IACC,QACC,MACA,EAAqBA,EAArB,6DAAgC,yFACzB9lB,EAASvQ,GAAMs2B,EADU,EAC/B,GACA,KAAY,CACX,GAAI/lB,EAAJ,SACC,SACM,GAAIA,EAAJ,MACN,MAAO,CACNvQ,OADM,EAENy2B,aAAclmB,EAAOkmB,cAItB,IAAIlmB,EAAJ,aAGC,MAAM,IAAIgQ,MAAM,8BAAV,OAAwCqW,sBAA9C,KAFAF,MAOJ,SACQ,CACNA,cADM,QAMR,EAED,SACC,MAAmBL,EAAnB,6DAA8B,yFAAnBQ,EAAmB,EAC7B,GAAIP,OAAJ,EACC,WAAIA,SACI,CACNt2B,OADM,EAENy2B,aAAcH,GAGhB,EACQ,CACNC,UAAU,GAGL,CACNv2B,OADM,EAENy2B,aAAc,CAAC,IAKlB,OAGD,QACC,MAAM,IAAIlW,MAAM,iCAAV,OAAN,KAIH,IAAMuW,GAAW,IAAIxN,OAEpB,+BAsBKyN,GAAN,mBAEMZ,G,4EACCa,GAQL,GAPA/5B,KAAA,QAAe,CAAC,CACfg6B,IADe,EAEfC,aAAc,KAGfj6B,KAAA,gBAEA,IAAIA,KAAKyB,QAAQnC,OAChB,MAAM,IAAIgkB,MAAV,wDATa,MAYqBtjB,KAAKyB,QAZ1B,GAYNy4B,EAZM,WAYID,EAZJ,eAcd,KACC,MAAO,CAAC,CACPE,GADO,IAEP30B,KAAM00B,SAAgB,CAAhBA,MAKR,OAAID,SACH,MAAM,IAAI3W,MAAV,uBAGD,W,mCAGY7hB,GACZzB,KAAA,kB,mCAIAA,KAAA,gB,mCAIA,OAAOA,KAAKyB,QAAQzB,KAAKyB,QAAQnC,OAAjC,K,mCAGYy6B,GACZ,MACC,MAAM,IAAIzW,MAAV,uBAGD,IAAMvgB,EAAQg3B,QAAd,IACA,MAUA,IAAMK,EAAWr3B,EAAjB,GACMs3B,EAASN,UAAiBh3B,EAAhC,OACMu3B,EAAYP,QAAch3B,QAAcq3B,EAA9C,QAEA,UACC,UACC,GACCp6B,KAAA,gBAEDA,KAAA,aAAkB,CACjBg6B,IADiB,EAEjBC,aAFiB,GAGjBC,SAAU,KAEX,MAED,QACC,IAAKl6B,KAAKu6B,aAAV,GACC,MAAM,IAAIjX,MAAV,mDAKD,GAHA,GACCtjB,KAAA,gBAED,IAAIA,KAAKu6B,aAAaN,aAAa36B,OAClC,MAAM,IAAIgkB,MAAV,6DARF,IAUS4W,EAAal6B,KAVtB,sBAWCk6B,OACCl6B,KAAKu6B,aADNL,cAGAl6B,KAAA,aACAA,KAAA,+BAAoC,CACnCm6B,GADmC,IAEnC30B,KAAM00B,IAEP,MAED,QACC,IAAKl6B,KAAKu6B,aAAV,GACC,MAAM,IAAIjX,MAAV,oDAMD,GAJA,GACCtjB,KAAA,iBAGIA,KAAKu6B,aAAV,SAAiC,CAGhC,OAAIv6B,KAAKyB,QAAQnC,OAGhB,MAAM,IAAIgkB,MAAV,iDAFAtjB,KAAA,yBAKFA,KAAA,2BACCA,KAAKu6B,aADN,cAGAv6B,KAAA,6BACA,MAED,QACC,GACCA,KAAA,gBAEDA,KAAA,aAAkB,CACjBw6B,UAAU,IAEX,MAED,QACC,IAAKx6B,KAAKu6B,aAAV,SACC,MAAM,IAAIjX,MAAV,iDAEDtjB,KAAA,aACAA,KAAA,+BAAoC,CACnCm6B,GADmC,KAEnC30B,KAAMi1B,GAAcJ,KAErB,MAGD,QACC,MAAM,IAAI/W,MAAM,qBAAV,OAAN,IAGF,GACCtjB,KAAA,oBAhGD,CACC,GAAI85B,QAAJ,GACC,MAAM,IAAIxW,MAAM,0CAAV,OAAN,IAEDtjB,KAAA,0BAAiCA,KAAKu6B,aAAaN,aAAatuB,OAC/DouB,QADD,U,KAiGH,SAASU,GAAcV,GAGtB,IAFA,IAAMpmB,EAAN,GACIpV,EAAJ,EACOA,EAAIw7B,EAAX,QAA2B,CAC1B,SAAIA,KAAoB,CACvB,GAAIx7B,OAAWA,IAAMw7B,SAArB,EACC,MAAM,IAAIzW,MAAM,wCAAV,OAAN,IAKD,IAHA,IAAMoX,EAAYX,EAAQx7B,EAARw7B,iBAAlB,EACMY,EAAYZ,EAAQx7B,EAARw7B,iBAAlB,EACI16B,EAAJ,EACOA,GAAP,GACCsU,OAAYinB,oBAAZjnB,IACAtU,SAGDsU,OAAYomB,EAAZpmB,IAEDpV,IAED,S,gSC3VD,IAKMs8B,GAA6B1C,GALnC,IAEA,IAOM2C,GAAN,OAYMC,GAAwE,oCAOxEC,GAAyE,sCAoCzEC,GAA8B,IAAI5O,OACvC,+BAWoB6O,G,WACpB,cAGG,WADFlS,GACE,EAFFjW,MAEE,EADFiW,W,4FACE,oDAwU+B,YAMjC,OAAI,EAAJ,QAOI2F,GACHA,EADGA,gCAEHmM,QAAwCnM,EAFzC,gCANC,IAcD,MA7VE,iDAikBqC,cAA+C,IAApCwM,EAAoC,EAApCA,cAAerK,EAAqB,EAArBA,eACjE,GAAInC,EAAJ,+BAA2C,CAI1C,IAAMvD,EAAqBuD,EAA3B,qBACA,GAAKvD,GAAD,IACDA,IADH,EAEC,aAxkBFprB,KAAA,WACAA,KAAA,c,6DAIAA,KAAA,oBACAA,KAAA,gBACAA,KAAA,8BACAA,KAAA,uCACAA,KAAA,6C,4BAGKsqB,EAAevX,GACpB/S,KAAA,cACA,GACCA,KAAA,aAAcsqB,gBACdtqB,KAAA,gBAAuBsqB,EAAvB,UACIvX,EAAJ,2BACC/S,KAAA,+BAGDA,KAAA,cACAA,KAAA,sB,6BAUK83B,EAAY/kB,GAAO,IFlHaie,EAA2BhI,EEkHxC,OAezB,GFjIsCgI,EEiIVje,EAAD,0BFjIsCiW,EEiIJhpB,KAA7D,SFhID,gBAAOmtB,EAAkB6D,EAAlB7D,GEiIL,OAAqBntB,KAArB,wEAA2C,yFAAhC2uB,EAAgC,EACpCyM,EAA0B3C,GAAqB,EAAD,EAGnD,CACCzP,SAAUhpB,KADX,SAEC04B,sCAAuC,SAAA/J,GAAM,OAAI,0CAAmD,CACnGwM,cAAepoB,EADoF,cAEnG+d,eAAgB/d,EAAM+d,kBAEvB6H,gCAAiC34B,KAAK24B,kCAGxC,KAQC,OAPA34B,KAAA,cACAA,KAAA,eACAA,KAAA,0BAA+Bo7B,gBAA/B,OACAp7B,KAAA,gCAJ4B,EAO5BA,KAAA,wCAA+CA,KAAKq0B,SAASxS,YAA7D,IACA,GAOH,OAAO7hB,KAAKq7B,mCAAmCvD,EAA/C,K,yDAIkCA,EAAY/kB,GAC9C,IAAMuoB,EAAyBt7B,KADsB,aAG/Cu7B,EAAoBv7B,KAAKw7B,aAA/B,GACA,KACC,OAAID,IAAJ,EAIQv7B,KAAKy7B,+BAAZ,GAMOz7B,KAAKy7B,+BAA+B1oB,EAA3C,uB,mDASA,WAHFie,EAGE,EAHFA,0BACAF,EAEE,EAFFA,eACAqK,EACE,EADFA,cAEMO,EADJ,EAeEC,EAA4BD,SA9HlC,EA+HMC,EAAJ,IACCA,KAGD37B,KAAA,gBAAuBA,KAAK47B,gBAAgBhf,QAC3C,SAAA+R,GAAM,OAAI,sBACN,oBADE,MAWH3uB,KAAK67B,eAAT,IAAyB77B,KAAK47B,gBAAgB7yB,QAAQ/I,KAA7B,eACxBA,KAAA,gB,kCAIU2uB,EAAQwM,EAAerK,GAWlC,QAAIA,IACFnC,EADEmC,uBAGFnC,EAHF,8DAWKwM,IAAD,GAEHxM,EAFD,6D,oCAQaA,EAAQ+M,EAAeC,GACpC,IAAMG,EAA6BnN,0BAD4B,OAK/D,OAAImN,EACH,SAQDH,EAA4B3iB,WAAoC8iB,EAAhEH,GACA,IAAMI,EAAuBpN,0BAfkC,GA0C/D,GAAI+M,SA5NN,EAiOG,IACC,gBAAO,IAAIzC,GAAe8C,GAAsBh5B,MAAM24B,EAAe,CAAEvC,eAAe,IACrF,MAAOvV,GAMR,OADAD,kBACA,EAUF,OAAO,IAAI0I,OAAO,KAAX,oBAAP,K,sCAGesC,EAAQwM,GACvB,OAAOA,EAAgBxM,EAAH,sBAAkCA,EAAtD,W,mCAGY5b,GAAO,0HAGR4b,EAHQ,EAMlB,OAAI,iBAAJ,EACC,QAyCIsM,QAAiC,oBAA6BloB,EAAnE,gBAGK,4BAAL,IAKA,iBACA,UAJC,kBAAuB,0BAA4B,SAAAsW,GAAC,OAAIA,IAAJ,KACpD,YALA,YA9CF,EAAqBrpB,KAAK47B,gBAA1B,+BAHmB,EAGnB,iCAAmD,+BAsDlD,QAtDkD,eAmDjD,UASF,OAJK57B,KAAL,cAECA,KAAA,cAEMA,KAAP,e,8CAGuB2uB,EAAQ5b,GAK/B,KAA0C4b,0BAA1C,IAIA,IAAM0F,EAAWr0B,KAAKg8B,qBAAqBrN,EATL,GAYtC,UACC3uB,KAAA,gCACA,QAFD,K,uEA8B0EkE,GAAS,IAAnC8zB,EAAmC,EAAnCA,UAAWiE,EAAwB,EAAxBA,YAC3D,SACQ/3B,QAAWA,UAAXA,EAAmD8zB,EAA1D,IAED,EACC,GAED,M,kCAGWjlB,GACX,GAAK/S,KAAL,UASA,IAHA,IAAI2W,GAAJ,EACIpY,EAAJ,EACM29B,EAAsBnpB,EAAA,cAAsB/S,KAAKm8B,+CAA+CppB,EAAO,CAAEuG,SAAS,IAAxH,GACO/a,EAAI29B,SAA6BnpB,wCAAxC,QACC4D,EAAQ3W,KAAKq0B,SAAStrB,QAAQkvB,GAAmBthB,EAAjDA,GACApY,IAED,OAAO85B,GAA2Br4B,KAAD,SAAgB2W,EAAjD,M,gDAGyB0d,EAAUthB,GACnC/S,KAAA,yBACAA,KAAA,gCAF0C,EAK1CA,KAAA,yCAL0C,EAWtC+S,EAAJ,cACC/S,KAAA,SACCA,KAAKm8B,+CAA+CppB,GAAOxR,QAAQ,UAAW02B,IAC9EE,GAAOF,GAAmBllB,cAD1B,YADD,EAMA/S,KAAA,a,2CAWmB2uB,E,GAKlB,IAJFqC,EAIE,EAJFA,0BACAmK,EAGE,EAHFA,cACArK,EAEE,EAFFA,eACAsL,EACE,EADFA,6CAEIrC,EAAUpL,EAAd,UAICoL,EAAUA,EAAA,QAEAgB,KAFA,eAIAC,KAJVjB,OAeD,IAAIhC,EAAS8C,YApBX,GAwBF,KAAI7J,SAAmC+G,EAAvC,SAmCA,IAAMsE,EAAgB,IAAIhQ,OAAO,IAAM0N,EAAvC,KACMuC,EAA4BtL,gBAziBpC,KA8iBMqL,OAAJ,KACCtE,KAGD,IArEE,EAqEEwE,EAAev8B,KAAKw8B,gBAAgB7N,EAAxC,GAUA,GAAI3uB,KAAK04B,sCAAsC/J,EAAQ,CAAEwM,cAAF,EAAiBrK,mBAAmB,CAC1F,IAAM2L,EAAiCF,YAEtC5N,EAHyF,gCAa1F,GAAI7B,EAAY6B,EAAZ7B,mCAAwDgE,GAAD,IAAyBhE,EAApF,QACCyP,IACAG,GAFsG,EAKtG,GAEC,IADA,IAAIn+B,EAAIuyB,EAAR,OACOvyB,EAAP,GACCg+B,EAAeA,eAAfA,IACAh+B,IAOJ,IAAI81B,EAAW0D,EAAA,QAEL,IAAI1L,OAFC,cAIL,IAAIA,OA7lBhB,IAylBiB,KA5Gb,IAwIF,OAlBA,IACC,EAECgI,EAAW8D,GAAOF,GAAmBmE,EAA1BjE,YAAX9D,EAGUvD,IAEVuD,EAAW8D,GAAOF,GAAmBnH,EAA1BqH,QACVn4B,KAAK24B,gCADKR,GAAX9D,IAMF,IACCA,EAAWjG,EAAXiG,IAGD,K,qDAG8B0D,GAC9B,IAAMzkB,EHhkBD,SAAoC+gB,EAAUsI,EAAU5E,GAM9D,MAAoBA,QAApB,4DAAsC,yFAA3BhL,EAA2B,EAKrC,GAAIsH,QAAesI,EAAftI,cAAJ,EACC,OAEDsI,EAAWtI,SAAXsI,IACAtI,EAAWA,aAAXA,GAED,MAAO,CAACA,EAAR,GG+iBgBuI,CACd58B,KADwC,gCAExCA,KAFwC,wCAAzC,GAMA,KAUA,OAJAA,KAAA,gCAAuCsT,EAAvC,GACAtT,KAAA,wCAA+CsT,EAdT,GAiB/B+kB,GAA2Br4B,KAAD,gCAAuCA,KAAK68B,wCAjBvC,GASrC78B,KAAA,mB,4lBC7oBH,IAMM88B,GAAmD,IAAIzQ,OAAO,KALnE,sDAKwD,IAAzD,KAEM0Q,GACL,qHAaKC,GAAwC,IAAI3Q,OACjD,0DAWK4Q,GAAN,YAEqBC,G,WACpB,cAKG,IAJFtK,EAIE,EAJFA,eACAC,EAGE,EAHFA,mBACA7J,EAEE,EAFFA,SACAmU,EACE,EADFA,mC,4FACE,SACFn9B,KAAA,iBACAA,KAAA,qBACAA,KAAA,WACAA,KAAA,oC,qDAGK+tB,EAAMhb,GAAO,IAIlB,EAJkB,EAoab,SAAuCgb,GAAM,SAfpD,SAAwCA,GAEvC,IAAMqP,EA9BP,YAEC,IAOA,EAPMnL,EAAWlE,SAAjB,IACA,KAAIkE,EAAJ,GAiBA,MAVA,OAHAlE,EAAOA,QAPmC,IAUtCA,KACHsP,KACAtP,EAAOA,QAAW,IAAlBA,SAGDA,EAAOA,aAfmC,IAiB1C,IACCA,EAAO,IAAPA,GAED,EAUwBmE,KAFqB,GAI7C,YAAIkL,KACI,CAACA,QAAsB,IAAvB,SAAP,GAEM,CAAP,GASiCE,CADkB,MAC9CC,EAD8C,KAC7BF,EAD6B,KAQnD,OAHKP,QAAL,KACCS,MAEM,CAACA,EAAR,GA3aoCC,CADjB,aACXD,EADW,KACMF,EADN,KAEZtF,EAASjL,EAFG,GAgBlB,OAXA,IACM/Z,EAAL,SACCA,6BACA,IACC0qB,QAIH,GACCz9B,KAAA,iBAEM,CACN+3B,OADM,EAEN0F,qB,kCASU3F,EAAY/kB,GAAO,IACtBglB,EAAWhlB,EADW,OAExB2qB,EAAgC3F,YAAqBA,SAAgBD,EAAhBC,QAF7B,EAyB9B,GApBAhlB,eAL8B,GAqB9B,GACC/S,KAAA,oBAGGA,KAAK29B,+BAAT,IACC,IAAK39B,KAAK2yB,0BAAV,GACC,YAGD5f,2CAQIA,EAAL,eACM/S,KAAL,uCACCA,KAAA,iCAAsC+S,EAAtC,oBAAiEA,EAAjE,U,wDAK4D,IAA9BooB,EAA8B,EAA9BA,cAAevR,EAAe,EAAfA,YAC/C,OAAOuR,IAAP,I,gDAKyBpoB,GAAO,MACO4f,GACtC,IAAM5f,EADyD,sCAE/D/S,KAF+D,eAG/DA,KAH+D,mBAI/DA,KAAKgpB,SAL0B,UACxBgG,EADwB,qBACJvC,EADI,SAOhC,KAKC,OAJA1Z,oBACAA,SAAa,CACZie,0BAA2BvE,KAE5B,I,4BAIInC,GACL,KAAmB,CAClBtqB,KAAA,4BACA,IAAM49B,EAA2BtT,EAAjC,4BACAtqB,KAAA,qDAA4D49B,GAA4BX,QAAxF,QAEAj9B,KAAA,gCACAA,KAAA,8D,uDAW+B69B,EAAgBlf,GAChD,GAAK3e,KAAL,0BAD0D,MAQtDuwB,GAAkD,EAErDvwB,KAVyD,UAKzD8wB,EALyD,iBAMzD1D,EANyD,iBAOzDsB,EAPyD,cAY1D,GAAItB,IAAJ,EAUA,OAPAptB,KAAA,sCAOA,K,8DAQuC69B,EAAgBC,EAA+Bnf,GACtF,IAAK3e,KAAL,sCACC,OAAOA,KAAK+9B,iCAAiCF,EAA7C,GAED,GAAK79B,KAAL,sDAJgG,MAW5FuwB,GAAkD,EAErDvwB,KAb+F,UAQ/F8wB,EAR+F,iBAS/F1D,EAT+F,iBAU/FsB,EAV+F,cAqBhG,GAAItB,IAAJ,EAUA,OAPAptB,KAAA,sCAOA,K,gDAIA8wB,EACApC,EACAsC,EACA6M,EACAlf,GAEA,MADC,EAIKqf,EAAiCH,cAJtC,GAUD,GAAIG,MACHA,IAAmCH,SAAwB7M,EAD5D,OAC8F,CAC7FiN,GAD6F,EAO7F,IAAMrN,EAA6BiN,UAP0D,GAazFjN,IAAJ,IACCwL,KAGFzd,EAAS,CACRmS,eADQ,EAERpC,YAFQ,EAGRsC,0BAHQ,EAIRiN,sCAJQ,EAKR7B,iDAIDp8B,KAAA,yCACAA,KAAA,sC,yDAGkC+S,GAkClC,QAAI/S,KAAKk+B,wCACRnrB,EADG,oBAEHA,EAFG,0BAGHA,EAHD,UAqBI/S,KAAKm+B,iBAAT,IAWIn+B,KAAKo+B,eAAT,IAVCp+B,KAAA,mDACA,QASD,K,uCAMgB+S,GAAO,IAItBooB,EAIGpoB,EARmB,cAKtBilB,EAGGjlB,EARmB,UAMtBglB,EAEGhlB,EARmB,OASvB,GADIA,EARmB,2BASnBooB,IAAJ,GAOA,IAAM9J,EAAmBjB,GAAe,EAEvCpwB,KAFsC,eAGtCA,KAHsC,mBAItCA,KAAKgpB,SAJN,UAMA,YAAIqI,OAAkCA,IAAtC,GAGCte,SAAa,CACZilB,UAAWD,UAAgBA,SAAgB1G,EAAhC0G,UAEZ/3B,KAAA,6BACA,QAPD,K,qCAWc+S,GACd,IAAKA,EAAL,cAA0B,OAIrBme,GACHne,EADkE,OAElE/S,KAFkE,eAGlEA,KAHkE,mBAIlEA,KAAKgpB,SARmB,UAEJqV,EAFI,qBAUzB,GAVyB,SAUzB,EAKC,OAJAtrB,SAAa,CACZkpB,aAAa,IAEdj8B,KAAA,6BACA,K,+CAKsB+S,GACxBA,EAD+B,2BAG3BA,EAAJ,4BACCA,mCACA/S,KAAA,oCACAA,KAAA,gD,qEAI6C+S,GAC1C/S,KAAK2yB,0BAAT,IAOC3yB,KAAA,iCAAsC+S,EAAtC,oBAAiEA,EAAjE,a,w0BCraH,IAEqBurB,G,WAKpB,iB,4FAA+C,SAC9Ct+B,KAAA,SAAgB,IAAI+oB,EAApB,GAD8C,SAED/oB,KAAKu+B,yBAFJ,MAEvC3L,EAFuC,KAEvBC,EAFuB,KAG9C7yB,KAAA,iBACAA,KAAA,qBACAA,KAAA,Q,wEAGwBw+B,GAExB,MAFiD,EAwBjD,OAnBA,IACC,WAAI,OACH5L,EAAiB4L,EAAjB5L,eACAC,EAAqB2L,EAArB3L,oBAEAD,KAGEA,IAAmB5yB,KAAKgpB,SAASiB,WAArC,KACC2I,UAUM,CAACA,EAAR,K,4BAQK7E,GAAM,MAIP/tB,KAAKy+B,OAAOvuB,MAAM6d,EAAM/tB,KAJjB,OAEV+3B,EAFU,SAKX,GALW,kBAMV/3B,KAAA,yBACM,GAAI+3B,EAAQ,CAMlB,MAIA,GATA/3B,KADkB,8BAGdA,KAAK+S,MAAT,2BACC/S,KAAA,oCAAyCA,KAAzC,OAGGA,KAAKgpB,SAAT,6BACC+P,EAA0B/4B,KAAK40B,UAAUjG,OAAOoJ,EAAQ/3B,KAAxD+4B,aAED,IAAIA,GAEC/4B,KAAKy+B,OAAOC,mCAAmC1+B,KAAnD,OAAgE,CAC/DA,KAD+D,8BAG/D,IAAM69B,EAAiB79B,KAAK+S,MAA5B,oBACA,IACCgmB,EAA0B/4B,KAAK40B,UAAUjG,OAAOkP,EAAgB79B,KAAhE+4B,QAIH/4B,KAAA,gBAAuB+4B,EACpB/4B,KAAK2+B,cADsC,GAE3C3+B,KAFH,wBAID,OAAOA,KAAP,kB,8BAGO,WAgCP,OA/BAA,KAAA,MAAa,IAAI23B,GAAe,CAC/BC,gBAAiB,YAMhB,aAEDC,oBAAqB,cACpB,oCACA,kBAAqB,WAArB,cAAkD,EAAlD,OACA,eAAkB,WAAlB,kBAGF73B,KAAA,UAAiB,IAAI,GAAmB,CACvC+S,MAAO/S,KADgC,MAEvCgpB,SAAUhpB,KAAKgpB,WAEhBhpB,KAAA,OAAc,IAAI,GAAgB,CACjC4yB,eAAgB5yB,KADiB,eAEjC6yB,mBAAoB7yB,KAFa,mBAGjCgpB,SAAUhpB,KAHuB,SAIjC+S,MAAO/S,KAJ0B,MAKjCm9B,kCAAmC,WAClC,gCACA,kBAAqB,WAArB,cAAkD,EAAlD,UAGFn9B,KAAA,YAAiBA,KAAjB,eAAsCA,KAAtC,oBACAA,KAAA,mBACA,O,wCASA,OAAOA,KAAK+S,MAAZ,gB,uCAkBA,GAAI/S,KAAJ,kBACC,OAAOA,KAAK+S,MAAZ,c,8CAMD,OAAO/S,KAAP,mB,mCAYA,GAFmBA,KADP,aAIX,OAAOA,KAAP,gB,oCASY,IACL0pB,EAAY1pB,KADP,cAUb,W,oDAoBKA,KAAK+S,MAAN,UAAuB/S,KAA3B,iCACCA,KAAA,wB,oCAKY+4B,GAAyB,WACtC,GAAI/4B,KAAJ,kBAA4B,CAC3B,IAAMob,EAAS,SAAC2S,GAAD,OAAU,2DAA8D,EAA9D,MAA0E,CAClGzU,UAASyU,IADK,GAGPnE,EAAgB5pB,KAJG,kBAK3B,OAMOob,EANP,EAGA,EAGc,GAAD,qBAAb,GAFC,EAHc,GAAD,OAAIpb,KAAK+S,MAAtB,wCAOF,W,gEAGyC,MAKrC/S,KALqC,MAExCgxB,EAFwC,4BAGxCoL,EAHwC,+CAIxCtL,EAJwC,iBAMrCrE,EAAJ,EACMrR,EAASghB,GAAf,EAIA,OAHA,IACC3P,EAASrR,EAATqR,GAED,I,8CAGuB,IACfwR,EAA0Cj+B,KAD3B,4CAEvB,OAAOA,KAAK2+B,cACXV,EACGj+B,KADkC,0CAElCA,KAAK+S,MAHT,uB,gDAQA,IAAM0Z,EAASzsB,KAAf,wBACA,KACC,OAAOysB,oBAAP,M,sDAI8B,IACvB7C,EAAgB5pB,KADO,kBAEzB8pB,EAAe9pB,KAAKgpB,SAASa,8BAAnC,GACA,OAAOC,GAAgBA,SAAvB,I,4CAOA9pB,KAAA,iBAAsBuxB,GACrBvxB,KAAK4+B,kBAAoB5+B,KAAK+S,MAA9B,YAAkD/S,KADN,mBAE5CA,KAAK+S,MAFuC,0BAG5C/S,KAHD,a,uCAyBgB,MAMZA,KANY,MAEf+3B,EAFe,SAGfnO,EAHe,cAIfF,EAJe,UAKfsH,EALe,4BAShB,KAIA,OAAIhxB,KAAJ,kBACC,EACQ,IAAM4pB,EAAb,EAEO,IAAP,EAGGF,GAAJ,EAEQ,KADcA,EAAU1pB,KAAKgpB,SAAR,qBAA5B,GACA,OAFD,I,kCAaU,MAKPhpB,KALO,MAEVgxB,EAFU,4BAGVtC,EAHU,cAIV9E,EAJU,cAULF,EAAU1pB,KAAhB,cAEA,OAIK0pB,GAAL,IAIA,IAAMwG,EAAc,IAAI,GACvBxG,GADmB,IAGnB1pB,KAAKgpB,SAHN,UASA,OAJA,IACCkH,iBAGD,K,mCASA,IAAMA,EAAclwB,KAApB,YACA,WAGOkwB,EAAP,e,gCASA,IAAMA,EAAclwB,KAApB,YACA,WAGOkwB,EAAP,Y,0CASA,OAAOlwB,KAAK+S,MAAZ,4B,iCAQA,OAAQ/S,KAAK+S,MAAMooB,cAAgB,IAA5B,IAAwCn7B,KAAK+S,MAApD,S,oCAQA,OAAO/S,KAAK40B,UAAUiK,YAAY7+B,KAA3B,QAA0CA,KAA1C,2BAAP,Q,kCCtZK,SAAS8+B,GAAoB,GAKjC,IAJFpV,EAIE,EAJFA,QACAyR,EAGE,EAHFA,cACA4D,EAEE,EAFFA,uBACA/V,EACE,EADFA,SAEA,OAAOU,oBACF6B,EAAsB7B,EADpBA,IAAP,GAKM,SAASsV,GAAuB3/B,EAAO+b,GAO7C,OANA,GAEC,OADA/b,EAAQA,QAAY+b,EAApB/b,SACIA,KACHA,EAAQA,QAARA,IAGF,E,wkBCmGc4/B,OAhHR,SAAqBC,GAS3B,gBAMQ,IALPxV,EAKO,EALPA,QACAyR,EAIO,EAJPA,cACA4D,EAGO,EAHPA,uBACA/V,EAEO,EAFPA,SACGjoB,EACI,sEACD4tB,EAASwI,wBAAY,YAE1B,IAAMvC,EAAY,IAAI,GAAJ,EAAlB,GACMxZ,EAAS0jB,GAAoB,CAClCpV,QADkC,EAElCyR,cAFkC,EAGlC4D,uBAHkC,EAIlC/V,aAGG+E,EAAO6G,QAAgBxZ,EAA3B,GACIiZ,EAAWO,EAAf,cAQA,OAPA,IACC7G,EAAOiR,GAAuBjR,EADnB,GAGX,IACCsG,EAAW2K,GAAuB3K,EAAlCA,KAGK,CACNtG,KADM,EAENsG,cAEC,CAAC3K,EAvBJ,IAwBA,OACC,+BAECpe,IAFD,EAGCkrB,MAHD,EAIC7H,OAAQA,KAgEX,OA5DAwQ,EAAaz/B,gBAAby/B,IAEAA,UAAuB,CAQtB9/B,MAAOw0B,YARe,WActBiD,SAAUjD,UAdY,WA0BtBnK,QAASmK,KA1Ba,OAsCtBsH,cAAetH,KAtCO,KA8CtBkL,uBAAwBlL,KA9CF,KAmDtB7K,SAAU6K,YAAiBC,YAG5BqL,eAA0B,CACzBnW,SAAUkW,GAGX,EAGcD,G,wkBCmBAA,OApIR,YAYN,gBASQ,IARP5/B,EAQO,EARPA,MACAy3B,EAOO,EAPPA,SACApN,EAMO,EANPA,QACAyR,EAKO,EALPA,cACA4D,EAIO,EAJPA,uBACA/V,EAGO,EAHPA,SACgBwO,EAET,EAFPX,eACG91B,EACI,0GACDqa,EAAS0jB,GAAoB,CAClCpV,QADkC,EAElCyR,cAFkC,EAGlC4D,uBAHkC,EAIlC/V,aAGKoO,EAAYD,wBAAY,YAC7B,IAAIiI,EAAWpS,EAA2B/rB,SADF,OASpCm+B,IAAJ,IAEC,IAD0BzQ,GAAOvT,EAAQgkB,EAAU1V,EAAnD,GACI2V,QAA0Bp+B,SAA1Bo+B,SAEHD,EAAWA,WAAXA,KAGFtI,OACE,CAAC,EAAD,MAjBH,IAyBA,OACC,8BAECxrB,IAFD,EAGCjM,MAAOsvB,GAAOvT,EAAQ/b,EAAOqqB,EAH9B,GAICoN,SAAUM,KAsEb,OAlEAkI,EAAa5/B,gBAAb4/B,IAEAA,UAAuB,CAQtBjgC,MAAOw0B,YARe,WActBiD,SAAUjD,UAdY,WA0BtBnK,QAAUmK,KA1BY,OAsCtBsH,cAAetH,KAtCO,KA8CtBkL,uBAAwBlL,KA9CF,KAmDtB7K,SAAU6K,YAnDY,WAwDtBgD,eAAgBhD,iBAAsBC,YAGvCwL,eAA0B,CACzBtW,SADyB,EAEzB6N,eAAgB,SAGjB,EAGcoI,GAEf,SAAS,GAAT,SACC,OAAOD,GCnIO,SAAqC3/B,EAAOqqB,EAASV,GAKnE,OAJA,IACCA,IACAU,UAEM,IAAI,GAAJ,WAAP,GD+HC6V,CACCnkB,EAD0B,IADC,GAA7B,GE9HD,SAASokB,GAA2BC,GACnC,OAAO7E,qBAAqB,OAAe6E,2BAA3C,I,wkBCXc,SAASC,GAAc,GAKnC,IAJFrgC,EAIE,EAJFA,MACAy3B,EAGE,EAHFA,SACA5yB,EAEE,EAFFA,QACGnD,EACD,qCACI4+B,EAAYxI,wBAAY,YAC7B,IAAM93B,EAAQ4B,SAAd,MACA61B,EAASz3B,gBAATy3B,KACE,CAHH,IAKuB8I,oBAAQ,WAC9B,OAAOC,GAAkB37B,EAAzB,KACE,CAACA,EARF,IAYF,OACC,qCAEC7E,MAAOA,GAFR,KAGCy3B,SAAU6I,IACTz7B,EAAA,KAAY,gBAAG7E,EAAH,QAAUyL,EAAV,QAAiBg1B,EAAjB,iBACZ,6BACC56B,IAAK46B,EAAU,IAAMzgC,GADtB,KAECA,MAAOygC,EAAU,IAAMzgC,GAFxB,KAGC0gC,WAAUD,EACVn9B,MAAOm9B,EAAUE,QAAgBt6B,GALtB,OAahBg6B,aAA0B,CAKzBrgC,MAAOw0B,KALkB,OAWzBiD,SAAUjD,UAXe,WAczB3vB,QAAS,aAAkB,WAAgB,CAC1C7E,MAAOw0B,KADmC,OAE1C/oB,MAAO+oB,KAFmC,OAG1CiM,QAASjM,KAAUoM,QAChBnM,YAGL,IAAMkM,GAAgB,CACrBE,SADqB,MAErBC,gBAFqB,eAGrBC,MAAO,WAGD,SAASC,GAAsB,GASnC,IDtEoC3W,EC8DtCrqB,EAQE,EARFA,MACA6E,EAOE,EAPFA,QACA/B,EAME,EANFA,UACem+B,EAKb,EALFC,cAEgBC,GAGd,EAJFC,mBAIE,EAHFC,gBACAC,EAEE,EAFFA,aACG5/B,EACD,2GACI6/B,EAAiBhB,oBAAQ,WAC9B,OAAOC,GAAkB37B,EAAzB,KACE,CAACA,EAFJ,IAIA,OACC,0BAAK/B,UAAU,qBACd,+BAEC9C,MAFD,EAGC6E,QAHD,EAIC/B,UAAWoX,KAAW,0BAA2BpX,MAGhDw+B,GAAD,GACA,0BAAKx+B,UAAU,gCDpFXq9B,IAD+B9V,EC4ErC,GD3EM8V,IAAyCA,GAA2B9V,EAA3E,OC0FKiX,GAAF,IACA,sBACCjX,QADD,EAEC5e,MAAO81B,GAAkBA,EAF1B,MAGCC,YAAaF,EAAe,OAAIj7B,IAGlC,qBAvBF,OA2CD,SAASm6B,GAAkB37B,EAAS7E,GACnC,gEAA8B,yFAAnByhC,EAAmB,EAC7B,IAAKA,EAAD,SAAmBA,UAAvB,EACC,U,wkBCxHY,SAAS,GAAT,GAMZ,IALFpX,EAKE,EALFA,QACAqX,EAIE,EAJFA,YACAC,EAGE,EAHFA,MACAC,EAEE,EAFFA,QACGlgC,EACD,kDACF,OAAIigC,GAASA,EAAb,GACQA,EAAA,GAAe,CAAEE,MAAOH,IAG/B,kCAECI,IAFD,EAGCC,KAAML,OAAcr7B,EAHrB,eAIC27B,IAAKJ,mCAAiDvX,EAAjDuX,kB,wkBCnBO,SAAS,GAAT,GAAqD,IAAxBJ,EAAwB,EAAxBA,YAAgB9/B,EAAQ,sBACnE,WAAI8/B,EACI,sBAAP,GAEO,sBAAP,GAYF,SAASS,GAAqB,GAAoB,IAAlBJ,EAAkB,EAAlBA,MAAUngC,EAAQ,gBACjD,OACC,kCAECwgC,MAFD,6BAGCC,QAAQ,cACR,gCAJD,GAKC,wBACCr/B,UADD,mCAECs/B,OAFD,eAGCzvB,KAHD,OAIC4U,YAJD,IAKCF,iBAAiB,MACjB,2BAAMgb,cAAN,QAA4BC,EAAE,yDAC9B,2BAAMA,EAAE,6DACR,2BAAMC,GAAN,KAAcC,GAAd,KAAsBC,GAAtB,KAA8BC,GAAG,OACjC,2BAAMH,GAAN,KAAcC,GAAd,IAAqBC,GAArB,KAA6BC,GAAG,OAChC,2BAAML,cAAN,QAA4BC,EAAE,0GAC9B,2BAAMD,cAAN,QAA4BC,EAAE,0HAE/B,2BACCx/B,UADD,mCAECs/B,OAFD,OAGCzvB,KAHD,eAIC2vB,EAAE,8LAYN,SAASK,GAAqB,GAAoB,IAAlBd,EAAkB,EAAlBA,MAAUngC,EAAQ,gBACjD,OACC,kCAECwgC,MAFD,6BAGCC,QAAQ,cACR,gCAJD,GAKC,wBACCr/B,UADD,mCAECs/B,OAFD,eAGCzvB,KAHD,OAIC4U,YAJD,IAKC8a,cAAc,SACd,2BAAMC,EAAE,2CACR,2BAAMA,EAAE,6HACR,2BAAMA,EAAE,mEACR,2BAAMA,EAAE,sEACR,2BAAMC,GAAN,OAAgBC,GAAhB,OAA0BC,GAA1B,OAAoCC,GAAG,UACvC,2BAAMH,GAAN,OAAgBC,GAAhB,QAA2BC,GAA3B,QAAsCC,GAAG,WAE1C,2BACC5/B,UADD,mCAECs/B,OAFD,cAGCzvB,KAHD,eAIC2vB,EAAE,gNCjBC,SAASM,GAA4BvY,EAASV,GACpD,QAAIwC,EAAmB9B,EAAvB,KAGC/F,gDACA,GAIK,SAASue,GAAsB3Y,EAAWP,GAOhD,OANA,GAEC,KADAO,EAAYA,EAAA,QAAiB,SAAAG,GAAO,OAAIuY,GAA4BvY,EAAhC,OAChCH,SACHA,UAGF,ECvEM,SAAS4Y,GAA2B,GAKxC,IAJFnB,EAIE,EAJFA,MACAC,EAGE,EAHFA,QACemB,EAEb,EAFFC,cACmBC,EACjB,EADFC,kBAEA,cAIG,IAHF7Y,EAGE,EAHFA,QACA5e,EAEE,EAFFA,MACA+1B,EACE,EADFA,YAKM2B,EAAeF,cAArB,EACA,OACC,0BACCngC,UAAWoX,KAAW,wBAAyB,CAC9C,gCAD8C,IACbipB,EACjC,gCAAiC9Y,KAGjCA,EAEA,sBACCA,QADD,EAECqX,YAFD,EAGCC,MAHD,EAICC,QAJD,EAKC9+B,UAAU,6BAEX,sBACC++B,MADD,EAECL,YAFD,EAGC1+B,UAAU,8BAYf,OANAsgC,YAAwB,CACvB/Y,QAASmK,KADc,OAEvB/oB,MAAO+oB,YAFgB,WAGvBgN,YAAahN,KAAUpH,QAGxB,EJwDD4T,aAAkC,CAEjCE,cAAe1M,KAFkB,YAKjC6M,eAAgB7M,iBALiB,WAQjC8M,aAAc9M,KAAUoM,MAGzBI,gBAAqC,CACpCK,eAAgB,kBAAM,0BAAKv+B,UAAU,mCC/FtCigC,aAA0B,CAGzB1Y,QAASmK,YAHgB,WAMzBkN,YAAalN,YANY,WAezBmN,MAAOnN,cAAmBA,KAfD,aAmBzBoN,QAASpN,YAAiBC,YClC3BwO,aAA8B,CAC7BpB,MAAOrN,YADsB,WAE7BgN,YAAahN,KAAUpH,QAmCxB6U,aAAiC,CAChCJ,MAAOrN,YAAiBC,YAmCzBkO,aAAiC,CAChCd,MAAOrN,YAAiBC,YE7BVqO,GAA2B,CAEzClB,QAFyC,uEAGzCoB,cAHyC,GAIzCE,kBAAmBG,KAJLP,ICnDTQ,GAAN,QACe,SAASC,GAAkClZ,EAASV,GAElE,IAAI5N,EAAS,IAAMmQ,EAAsB7B,EAFmC,GAU5E,OALAV,EAAW,IAAID,EAAfC,IACAA,uBACIA,iCAA0C2Z,QAAwB3Z,gBAAtE,mBACC5N,GAAU4N,gBAAV5N,iBAED,EC8FM,SAAS,GAAT,KACN,OAAOynB,GAAkBxjC,GAAD,GAAxB,GA2BM,SAASyjC,GAA4BC,EAAa,GAKtD,IAJFC,EAIE,EAJFA,YACAC,EAGE,EAHFA,WACAja,EAEE,EAFFA,SACAka,EACE,EADFA,kBAEA,GAAIF,IAAJ,EACC,SAKD,MACC,SACC,GAIOJ,GAAkCK,EAAzC,GAQF,MAMC,SAAIF,KAAwB,CAG3B,KAeC,WAAIA,UAAoB,IAAMxX,EAAsB0X,EAAhDF,IA8bD,SAAiCtW,EAAQ/C,EAASV,GAGxD,KAAa,CACZ,IAAMma,EAA2B,IAAM5X,EAAsB7B,EADjD,GAIZ,GAAI+C,SAAgB0W,EAApB,QACC,OAAIA,aACH,cAGD,OAAI1W,aACH,OAAOA,QAAa0W,EAApB,QAOH,cAAmCr+B,YAAYkkB,EAA/C,sCAAgF,CAA3E,IAAMoa,EAAoB,EAA1B,GACJ,GAAI3W,eAAyC,IAA7C,OACC,OAAOA,QAAa,IAAIntB,OAAS8jC,EAAjC,QAIF,SAvdWC,CAAwBN,EAAaE,EAA5C,GAhBqB,GAgCvB,KAAiB,CAChB,IAAMK,EAAmBV,GAAkCK,EAA3D,GACA,WAAIF,aACH,EAEA,EAGD,IAAMtqB,EAAemqB,GAAkCK,EADjD,GAIN,WAAIF,aACH,EAKD,QAmBF,SAAIA,KAiBH,OAAOQ,GAAKR,EAAaC,EAAlBO,IAAP,GAIF,SAUM,SAASA,GAAK9W,EAAQ/C,EAASV,GACrC,MAIA,SAAIyD,KAAmB,CAEtB,SAAIA,EACH,OAUD,IAAM+W,EAAY,IAAI,GAAJ,EAAlB,GAIA,OAHAA,QAdsB,GAiBfA,EAAP,iBAOD,MAGA,IAAMC,EAAsCC,GAAmCjX,EAAQ/C,EAhCxC,GA8C9C,iBAAW6B,EAAsB7B,EAAjC,WAAsD+Z,GA9CR,MA0DzC,SAASE,GAAWlX,EAAQ/C,EAASV,GAC3C,IAAM4a,EAAgCF,GAAmCjX,EAAQ/C,EAAjF,GACA,KAAmC,CAClC,IAAMma,EAAsBD,SAQ9B,SAA4Bla,EAASV,GAKpC,OAHAA,EAAW,IAAID,EAAfC,IACAA,oBAH8C,GAKvCA,kCAAyCA,yCAAhD,GAboE8a,CAAmBpa,EAAtF,GACA,GAAIma,EAAJ,EACC,OAAOpX,UAAgBA,SAAvB,GAGF,SAqBM,SAASsX,GAA+BC,EAAmB,GAK/D,IAJFta,EAIE,EAJFA,QACAH,EAGE,EAHFA,UACA0a,EAEE,EAFFA,SACAjb,EACE,EADFA,SAEA,SAAIgb,EAEH,SAGD,IAAME,EAkOA,SAAkEzX,EAAQzD,GAChF,IAAM4L,EAAY,IAAI,GAAJ,KAAlB,GAOA,OANAA,QAF0F,GAQnFA,EAAP,aA1OwBuP,CAAyDH,EAN/E,GAWF,OAAIE,KAAqB3a,GAAcA,cAAvC,GACC,GAKQG,MAEP0a,GAA2BJ,EAAmBta,EAF3C,GAOL,OAPK,EA0LN,SAAS2a,GAA0Cn0B,EAAOwZ,EAASV,GAGlE,OAAI9Y,UAAc0yB,GAAkClZ,EAAhDxZ,IAA2E,CAE9E,IAAM0kB,EAAY,IAAI,GAAJ,EAF4D,GAI9EA,QAJ8E,GAM9E,IAAM1E,EAAc0E,EAApB,YACA,SAGQ1E,iCAAP,IAEA,GAID,OAAOhgB,gBAAP,IA4BK,SAASo0B,GAAersB,EAAGR,EAAG8sB,GAMnC,OAAI3J,iBAAJ,cACS3iB,kBAAP,GAGKA,OAAcA,MAArB,EAiDK,SAASyrB,GAAmCjX,EAAQ/C,EAASV,GAEnE,IAAM4L,EAAY,IAAI,GAAJ,EAF2D,GAI7EA,QAJ6E,GAM7E,IAAM1E,EAAc0E,EAApB,YACA,OAAO1E,GAAeA,EAAtB,eASM,SAASkU,GAA2B3X,EAAQ/C,EAASV,GAG3D,IAFA,IAAMwb,EAAwB5B,GAAkClZ,EAAhE,GACInrB,EAAJ,EACOA,EAAIkuB,EAAJluB,QAAqBA,EAAIimC,EAAhC,QAA8D,CAC7D,GAAI/X,OAAc+X,EAAlBjmC,GACC,SAEDA,IAED,SAOM,SAASkmC,GAAsB,GAOnC,IANFplC,EAME,EANFA,MACA6wB,EAKE,EALFA,YACA0C,EAIE,EAJFA,eACAuI,EAGE,EAHFA,cACA+H,EAEE,EAFFA,kBACAla,EACE,EADFA,SAQA,QAAKmS,OAAD,OAAiEjL,EAArE,QAllBM,SAAsCA,GAC5C,OAAOA,iCAAP,IAklBQwU,CAAP,IAKIrlC,GAAS87B,GAAd,EACQyH,GAAkChQ,EAAzC,GAED,E,q1EChrBK+R,G,YAGL,cAAmB,O,4FAAA,SAClB,E,wEAAA,0BADkB,oBAFRjlC,kBAEQ,wBAkHL,YACb,qBAD2B,IAET4L,EAAQ,EAFC,eAG3B,IACC,oBAAWA,EACVA,KAEAA,gBAzHgB,wCAkKW,YAE7B,OAAO22B,GAA4BvY,EADd,EADqB,mBAlKxB,4BAwKD,YAAgB,MAM7B,EAN6B,MAEhCyR,EAFgC,gBAGhCnS,EAHgC,WAIhC8N,EAJgC,WAKhC8N,EALgC,iCAW7B,EAX6B,MAgB3BC,EAAiB/B,GAhBU,cAgBmC,CACnEE,YAjBgC,UAkBhCC,WAFmE,EAGnEja,SAHmE,EAMnEka,mBAAoB/H,IAGfiE,EAAWmE,GAAKsB,EAAgB5B,EAzBL,GA4BjC,GACC,2BAQD,WAAc,CACbvZ,QADa,EAEbob,yBAFa,EAGb/B,YAHa,EAIb1jC,MAAO+/B,IAER,WAKCtI,WAxNiB,qBAiOR,YAAkB,MASxB,EATwB,MAE3BlE,EAF2B,iBAG3BkE,EAH2B,WAI3BiO,EAJ2B,yBAK3B5J,EAL2B,gBAM3B6J,EAN2B,iBAO3BC,EAP2B,6BAQ3Bjc,EAR2B,aAexB,EAfwB,MAY3BO,EAZ2B,cDwIvB,SAA6BwZ,EAAa,GAW9C,IA0FF,EApGAmC,EAUE,EAVFA,gBACAxb,EASE,EATFA,QACAkJ,EAQE,EARFA,eACAuS,EAOE,EAPFA,gBACAC,EAME,EANFA,cACA7b,EAKE,EALFA,UACA4R,EAIE,EAJFA,cACA6J,EAGE,EAHFA,eACAC,EAEE,EAFFA,2BACAjc,EACE,EADFA,SAEA,GAAImS,IAAJ,IAAqB8J,EAAsC,CAC1D,IAEuC,EAFjC7pB,EAASwnB,GAAkClZ,EADS,GAG1D,OAAIqZ,aAqBH,OANIA,GAAJ,MAAmBA,KAElB1jC,EAAQkkC,GADRR,EAAc3nB,EAAd2nB,EAC0BrZ,EAA1BrqB,GAEA0jC,IAEM,CACNA,YADM,EAEN1jC,MAFM,EAGNqqB,WAqHH,OA3GIyR,aAAJ,MAAyD4H,OACxDA,EAAcsB,GAA0CtB,EAAarZ,EAArEqZ,IAIGA,MAAJ,IACCA,EAAcY,GAAWZ,EAAarZ,EAAtCqZ,KASGA,SAAeA,MAA4BrZ,IAA/C,IACCqZ,EAAc,IAAdA,IAqBIA,GAAemC,GAApB,MAAuCA,OAErCxb,EADD,OACCA,EAEAA,GAMEqZ,kBAA0CmC,MAA8BA,SAAyB,IAArG,SACCxb,UAKD,IAGGrqB,EAFF,MAAI0jC,OACH,MAAIA,GAEOrZ,GAAJ,IAAekZ,GAAkClZ,EAAlCkZ,oBADrBvjC,EAsBOkkC,GAAKR,EAAarZ,EAA1BrqB,IAOF,IACCqqB,EAAUqa,GAA+B1kC,EAAO,CAC/CqqB,QAD+C,EAE/CH,UAF+C,EAG/CP,cAOGmS,aAAJ,MAAyD4H,OAGxD1jC,EAAQkkC,GAFRR,EAAcsB,GAA0CtB,EAAarZ,EADW,GAGtDA,EAA1BrqB,MAIGqqB,GAAL,IACCA,EAAUkJ,GAAkBwS,KAGtB,CACNrC,YADM,EAENrZ,QAFM,EAGNrqB,SClRIgmC,CAAoBC,EAAc,CACrCJ,gBAtB2B,cAuB3Bxb,QAvB2B,UAwB3Byb,iBAHqC,EAIrCvS,eAJqC,EAKrCwS,cAAe,kBAAM,2BAA8B,CAAE7b,eACrDA,UANqC,EAOrC4R,cAPqC,EAQrC6J,eARqC,EASrCC,2BATqC,EAUrCjc,aAbA+Z,EAlB2B,cAmB3BrZ,EAnB2B,UAoB3BrqB,EApB2B,QAkCtBkmC,EAAc,CACnBxC,YADmB,EAEnB1jC,MAFmB,EAGnBqqB,YAGD,IAAIub,IAUE5lC,GAAS0jC,IAAgB,QAA9B,cAECwC,qBAIF,cAMC,kBAAMzO,EAAN,SA/RiB,qBAoSR,kBAAM,WAAc,CAAE0O,WAAW,OApSzB,oBAuST,kBAAM,WAAc,CAAEA,WAAW,OAvSxB,oBAyST,YACT,aADoB,IAEZC,EAAY,EAFA,cAGpB,GACCA,QA7SiB,mBAiTV,YAAW,IACXC,EAAW,EADA,aAEnB,YACA,GACCA,QArTiB,2BAyTF,YAChB,EAD2B,eAGnBC,EAAuB,EAHJ,yBAI3B,KAAwB,KACfF,EAAYE,EADG,QAEvB,GACCF,SAhUgB,0BAqUH,YACf,EAD0B,cAGlBE,EAAuB,EAHL,yBAI1B,KAAwB,KACfD,EAAWC,EADI,OAEvB,GACCD,SA5UgB,MAad,EAbc,MAIjBrmC,EAJiB,QAMjB87B,GANiB,0BAOjB4J,EAPiB,yBAUjBa,EAViB,mCAWjBC,EAXiB,qBAYjB7c,EAZiB,aAkBd,EAlBc,MAgBjB4J,EAhBiB,iBAiBjBrJ,EAjBiB,YAqBlB,IACM,8BAAL,KACCqJ,WAKFrJ,EAAY2Y,GAAsB,EAAlC3Y,GAEA,IAAM2G,EAAc6C,GAAiB,EAArC,GAEA,cAAmBoP,GAA2B,EAA9C,OAEA,IAAM2D,ED5DD,SAA+B,GAQnC,MAPFzmC,EAOE,EAPFA,MACA6wB,EAME,EANFA,YACA0C,EAKE,EALFA,eACAwS,EAIE,EAJFA,cACA7b,EAGE,EAHFA,UACA0a,EAEE,EAFFA,SACAjb,EACE,EADFA,SA6BA,OAvBIkH,GAAeA,EAAnB,QAECxG,EAAUwG,EAAVxG,QACUkJ,IACLvzB,IAAS+kC,GAA2B/kC,EAAOuzB,EAAhD,KACClJ,MAKEH,GAAaA,aAAjB,IACCG,WAOIA,GAAWua,GAAY1a,GAAaA,SAAzC,IACCG,EAAU0b,KAIX,ECwB4BW,CAAsB,CAChD1mC,MADgD,EAEhD6wB,YAFgD,EAGhD0C,eAHgD,EAIhDqR,UAJgD,EAKhD1a,UAAWA,GAAaoK,GALwB,GAMhDyR,cAAe,kBAAM,2BAA8B,CAAE7b,eACrDP,aAzCiB,OA4ClB,QAAa,CAEZ9oB,MAAO,EAFK,MAKZwpB,QALY,EAaZH,UAbY,EAyBZwZ,YAAa0B,GAAsB,CAClCplC,MADkC,EAElC6wB,YAFkC,EAGlC0C,eAHkC,EAIlCuI,cAJkC,EAKlC+H,kBAAmB0C,GALe,aAKqBC,EACvD7c,aAUD3pB,SArFiB,E,iTAsVaa,EAAO6S,GACtC,O,kWAAA,EAEC7S,SCzXY,SAAyDA,EAAO8lC,EAAWjzB,GAAO,IAE/FiW,EAUG9oB,EAZ4F,SAG/FqpB,EASGrpB,EAZ4F,UAI/E+lC,EAQb/lC,EAZ4F,eAKxFk/B,EAOJl/B,EAZ4F,MAMxFgmC,EAMJhmC,EAZ4F,MAO/Fi7B,EAKGj7B,EAZ4F,cAU/F0lC,EAEG1lC,EAZ4F,iCAW/F2lC,EACG3lC,EAZ4F,mBAe/EimC,EAGbH,EAlB4F,eAgBxFtL,EAEJsL,EAlB4F,MAiBxFI,EACJJ,EAlB4F,MAsB/F3mC,GAMG0T,EA5B4F,QA4B5FA,EA5B4F,OA2B/F+xB,EACG/xB,EA5B4F,wBA8B1FszB,EAAyB,SAACC,GAAD,OAAgB7B,GAAsB,GAAD,MAEnEtJ,cAFmE,EAGnE+H,kBAAmB0C,GAHgD,aAGZC,EACvD7c,eAcD,GAAIkd,IAAJ,EACC,MAAO,CACNnD,YAAasD,EAAuB,CACnChnC,WADmC,EAEnCuzB,eAAgBqT,IAEjB5mC,WALM,EAMNqqB,QANM,EAONob,6BAAyBp/B,GAgB3B,GAAIugC,IAAJ,EAA8C,CAC7C,IAAMM,GAAgCN,GAAqBhE,GAA4BgE,EAAvF,GACMO,GAEL,GAKCrL,GAAiB97B,IAAUgnC,EAAuB,CAClDhnC,WADkD,EAElDuzB,eAAgBuT,IAMlB,IAAKrB,GAA2ByB,IADDnH,GAA/B,EAEC,MAAO,CACN1V,QADM,EAONqZ,YAAasD,EAAuB,CACnChnC,WADmC,EAEnCuzB,eAAgBqT,IAGjB5mC,WAAOqG,GAgBV,GAAI05B,OAA0BA,IAA9B,EAAkD,CACjD,MACA,EAkBA,EAjBA,KAAc,CACblP,EAAc6C,GAAiBqM,EAA/BlP,GACA,IAAMuW,EAAqBvE,GAAsB3Y,EAAjD,GACI2G,GAAeA,EAAnB,UAGMuW,GAAsBA,UAA2BvW,EAA3BuW,UAA3B,KACCC,EAAgBxW,EAAhBwW,SAGDA,EAAgB3C,GAA+B3E,EAAU,CACxD1V,aADwD,EAExDH,UAFwD,EAGxDP,aAWH,OANA,IAEC2d,EAAgC,CAC/B7B,6BAAyBp/B,IAG3B,SAECq9B,YAAasD,EAAuB,CACnCnW,YADmC,EAEnC7wB,MAFmC,EAGnCuzB,eAAgBqT,IAEjB5mC,MAPD,EAQCqqB,QAAS0V,EAAWsH,EAAgBT,KDiOjCW,CAAgD1mC,EAAO6S,EAAR,MAHnD,Q,6CA9PmB,IACX6kB,EAAoB53B,KADT,sBAEb4yB,EAAmB5yB,KAFN,qBAGF6mC,EAAoB7mC,KAHlB,cAInB,IACC,IACMA,KAAKiiC,4BAAV,KACCrP,WAGEiU,IAAJ,GACCjP,Q,yCAKgBoO,EAAWc,GAAW,IAChClP,EAAoB53B,KADY,sBAEhC0pB,EAAY1pB,KAFoB,cAIpC43B,GAAmBlO,IAAYod,EAAnC,SACClP,O,iDAgBqC,IAiyBHmP,EAAWC,EAjyBrBzd,EAAa,EAAbA,UAAa,EASlCvpB,KATkC,MAErCm7B,EAFqC,gBAGrC8J,EAHqC,6BAIrCgC,EAJqC,sBAKrClC,EALqC,yBAMrChR,EANqC,SAOrCwQ,EAPqC,UAQrCvb,EARqC,WAUtC,OAuxBmC+d,EAvxBA,WAClC,OJzKI,SAA4B7iC,EAAS4hB,GAC3C,MACC,SAED,IAAMohB,EAAN,GACMC,EAAN,GACIC,EAAJ,EACA,4DAA6B,yFAAlB1yB,EAAkB,EAC5B,MAAIA,EACH0yB,OAAc,CAAEtH,SAAS,IACfprB,WAAJ,WAAyBA,EAC/B0yB,IACM,WACN,IAAI9d,OAAW,EAEdA,EADD,iBAAI5U,OACH4U,EAEAA,EAGD,IAAM3S,EAAQzS,EAAA,QAAgBA,EAAA,QAAe,SAAA48B,GAAM,OAAIA,UAAJ,KAR7C,IAUAA,EAAS58B,EAVT,GAYNA,WAZM,GAcNkjC,UAdM,GAiBR,OAAOF,mBAAP,GI4ISG,CDrHH,YAQJ,IAPF9d,EAOE,EAPFA,UACA+d,EAME,EANFA,aACAvC,EAKE,EALFA,uBAGAwC,EAEE,EAFFA,sBACgBC,EACd,EADFlD,eAGA,IACCkD,MAID,IAAMC,EAAuBle,EAAA,KAAc,kBAAc,CACxDlqB,MADwD,EAQxDyL,MAAOw8B,MAAyB5d,MAajC,OATA+d,QAA0B,qBAAUD,EAAgBvvB,EAAD,MAAUR,EAAV,MAAzB,MAG1B,GACCgwB,UAA6B,CAC5B38B,MAAOw8B,EAAaI,KAItB,ECkFGC,CAAwB,CACvBpe,UAAWA,GAAaoK,GADD,GAEvB2T,aAFuB,EAGvBvC,yBAAyB5J,IAAD,IAAkB8J,IAHnB,EAIvBsC,sBAJuB,IJ1IrB,SAAoCK,EAAgB5e,GAC1D,OACC4e,EAAiBA,EAAA,QAAsB,YACtC,UACC,mBACA,QACA,UACA,aACC,SACD,QACC,OAAO3F,GAA4BnB,EAAnC,QAGC8G,OAAJ,EACC,SImICC,CAA2BZ,EAR5B,KAsxB6CD,EA5wB3C,CAAC,EAAD,MAXH,GAwxBIc,IAQN,SAAwB7vB,EAAGR,GAC1B,GAAIQ,WAAaR,EAAjB,OACC,SAGD,IADA,IAAIlZ,EAAJ,EACOA,EAAI0Z,EAAX,QAAqB,CACpB,GAAIA,OAASR,EAAblZ,GACC,SAEDA,IAED,SAlBEwpC,CAAef,EADjB,MAECgB,GAA2BjB,IAC3Be,MAED,K,kDAzwBwC,IAAbve,EAAa,EAAbA,UAE1B,OADuBvpB,KAAK2nC,wBAAwB,CAAEpe,cAC/Cqe,GAAP,Q,+BAgMQ,MA+CJ5nC,KA/CI,MAGPsG,EAHO,OAIPy5B,EAJO,WAKPkI,EALO,WAMPC,EANO,eAOPvlC,EAPO,QAQPR,EARO,YAYP00B,GAZO,6BAaPsR,EAbO,mBAcPC,EAdO,aAiBiBC,EAjBjB,yBAkBP1C,EAlBO,qBAqBa2C,EArBb,qBA2BPvU,GA3BO,6DA0CP/K,GA1CO,0PA8CJjoB,GA9CI,mjBAsDJf,KAtDI,MAkDP0pB,EAlDO,UAmDPH,EAnDO,YAoDPwZ,EApDO,cAqDPyC,EArDO,YAwDF5O,EAAiBwR,EAAa,GAApC,GAEMX,EAAuBznC,KAAK2nC,wBAAwB,CAAEpe,cAE5D,OACC,sBACC5mB,MADD,EAECR,UAAWoX,KAAWpX,EAAW,aAAc,CAC9C,oBAD8C,EAE9C,uBAF8C,EAG9C,uBAAwB8lC,KAIzB,yBACC3hC,KAAMA,EAAO,GAAH,yBADX,EAEC,aAAYytB,EAAOrK,SAFpB,GAICrqB,MAJD,EAKC6E,QALD,EAMC4yB,SAAU92B,KANX,gBAOCylC,QAASzlC,KAPV,eAQC0lC,OAAQ1lC,KART,cASC+/B,SAAUA,GAAa4F,GAAsBA,EAT9C,SAUCsC,SAAUA,GAAatC,GAAsBA,EAV9C,SAWCpF,cAAevgC,KAAKyiC,eAGrB,yBACCn3B,IAAKtL,KADN,YAECuF,KAFD,MAGC2iC,aAAcA,GAHf,KAMC5hC,KAND,EAOC0iB,SAPD,EAQCU,QARD,EASCrqB,MAAO0jC,GATR,GAUCjM,SAAU92B,KAVX,SAWCylC,QAASzlC,KAXV,QAYC0lC,OAAQ1lC,KAZT,OAaC+/B,SAbD,EAcCkI,SAdD,EAeCpR,eAfD,EAgBC10B,UAAWoX,KAAW,kBAErB4uB,GAAoBA,EAFA,UAGpBpnC,EAHoB,oB,gCArcMrB,KAAM6oC,eAgdhCC,GAAmB,iBAAiB,qBACzC,+BAA8BC,SAAUn9B,QAGzCk9B,aAA6B,CAU5BnpC,MAAOw0B,KAVqB,OAmB5BiD,SAAUjD,UAnBkB,WAyB5B4R,QAAS5R,KAzBmB,KA+B5B6R,OAAQ7R,KA/BoB,KAqC5BkM,SAAUlM,KArCkB,KA2C5BoU,SAAUpU,KA3CkB,KAkE5BqU,aAAcrU,YAlEc,WAwF5BgS,mBAAoBhS,WAAgB,CAxFR,aA4F5B+R,iCAAkC/R,KA5FN,KAqG5BjB,eAAgBiB,KArGY,OA8G5BtK,UAAWsK,aAAkBA,KA9GD,QA0H5BE,OAAQ2U,GA1HoB,WAyI5BnE,QAAS1Q,eAAoB,CAC5BA,KAD4B,OAE5BA,aAAkBA,KA3IS,UAqK5BoN,QAASpN,YArKmB,WA6L5BmN,MAAOnN,cAAmBA,KA7LE,aAyM5BwO,cAAexO,iBAzMa,WA8M5BkR,uBAAwBlR,UA9MI,WAwN5B0O,kBAAmB1O,iBAxNS,WAsO5BoT,oBAAqBpT,aAAkBA,KAtOX,QA2O5BlxB,MAAOkxB,KA3OqB,OAgP5B1xB,UAAW0xB,KAhPiB,OAmQ5B8U,uBAAwB9U,iBAnQI,WA0Q5B8R,mBAAoB9R,KA1QQ,OAyR5BgD,eAAgBhD,iBAzRY,WAmS5B+U,mBAAoB/U,iBAnSQ,WAwS5BsU,iBAAkBtU,KAxSU,OAsT5BuU,WAAYvU,UAtTgB,WA6T5BsH,cAAetH,KA7Ta,KAmU5BmR,eAAgBnR,UAnUY,WA0U5BoR,2BAA4BpR,UA1UA,WAkV5B7K,SAAU6f,GAlVkB,WAgW5BjR,gBAAiB/D,KAhWW,KA2W5B+Q,6BAA8B/Q,UAAeC,YAG9C0U,gBAAgC,CAI/BN,aAJ+B,MAS/BS,uBAT+B,GAc/BtG,cAd+B,GAoB/BpB,QApB+B,uEAyB/BsB,kBAzB+B,GA8B/B1L,eA9B+B,QAmC/B+R,mBAnC+B,MAkD/BE,MAAOjV,KAlDwB,IA2D/BuU,YA3D+B,EAiE/BrD,wBAjE+B,EAuE/BC,gBAvE+B,EA8E/BC,4BA9E+B,EAyF/BL,8BAA8B,GAG/B,IAEA,GACA,GAHA,M,mNE17BO,SAASmE,GAAiB7J,GAChC,IAAM8J,EAAoB,iBAAiB,qBAC1C,0BAAY19B,IAAKA,GADyB,OAc3C,OAVA09B,YAA8B,CAC7BhgB,SAAU6f,GADmB,WAE7B9U,OAAQ2U,GAAe5U,YAGxBkV,eAAiC,CAChChgB,SADgC,EAEhC+K,WAGD,EAGcgV,KCTAA,OAAiB/f,I,+DCpBjB,SAASigB,EAAyBhkC,EAAQ2D,GACvD,GAAc,MAAV3D,EAAgB,MAAO,GAC3B,IACIC,EAAK3G,EADLyC,EAAS,OAAAkoC,EAAA,GAA6BjkC,EAAQ2D,GAGlD,GAAI9D,OAAOqkC,sBAAuB,CAChC,IAAIC,EAAmBtkC,OAAOqkC,sBAAsBlkC,GAEpD,IAAK1G,EAAI,EAAGA,EAAI6qC,EAAiB9pC,OAAQf,IACvC2G,EAAMkkC,EAAiB7qC,GACnBqK,EAASG,QAAQ7D,IAAQ,GACxBJ,OAAOK,UAAUkkC,qBAAqBpqC,KAAKgG,EAAQC,KACxDlE,EAAOkE,GAAOD,EAAOC,IAIzB,OAAOlE,E,WCjBM,SAASsoC,EAAQlmC,GAa9B,OATEkmC,EADoB,oBAAX5qC,QAAoD,kBAApBA,OAAOC,SACtC,SAAiByE,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX1E,QAAyB0E,EAAIggB,cAAgB1kB,QAAU0E,IAAQ1E,OAAOyG,UAAY,gBAAkB/B,GAItHkmC,EAAQlmC,GCbF,SAASmmC,EAAgBC,EAAUC,GAChD,KAAMD,aAAoBC,GACxB,MAAM,IAAIv0B,UAAU,qCCFxB,SAASw0B,EAAkB1oC,EAAQd,GACjC,IAAK,IAAI3B,EAAI,EAAGA,EAAI2B,EAAMZ,OAAQf,IAAK,CACrC,IAAIorC,EAAazpC,EAAM3B,GACvBorC,EAAWnhC,WAAamhC,EAAWnhC,aAAc,EACjDmhC,EAAWlhC,cAAe,EACtB,UAAWkhC,IAAYA,EAAWjhC,UAAW,GACjD5D,OAAOyD,eAAevH,EAAQ2oC,EAAWzkC,IAAKykC,IAInC,SAASC,EAAaH,EAAaI,EAAYC,GAG5D,OAFID,GAAYH,EAAkBD,EAAYtkC,UAAW0kC,GACrDC,GAAaJ,EAAkBD,EAAaK,GACzCL,E,YCZM,SAASM,EAAU7mB,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIjO,UAAU,sDAGtBgO,EAAS/d,UAAYL,OAAOwF,OAAO6Y,GAAcA,EAAWhe,UAAW,CACrEie,YAAa,CACX/jB,MAAO6jB,EACPxa,UAAU,EACVD,cAAc,KAGd0a,GAAY,OAAA6mB,EAAA,GAAe9mB,EAAUC,G,0BCA3C,SAAS7a,EAAgBlF,EAAK8B,EAAK7F,GAYjC,OAXI6F,KAAO9B,EACT0B,OAAOyD,eAAenF,EAAK8B,EAAK,CAC9B7F,MAAOA,EACPmJ,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZtF,EAAI8B,GAAO7F,EAGN+D,EAGT,SAAS6mC,EAAQ78B,EAAQ88B,GACvB,IAAIphC,EAAOhE,OAAOgE,KAAKsE,GAEvB,GAAItI,OAAOqkC,sBAAuB,CAChC,IAAIgB,EAAUrlC,OAAOqkC,sBAAsB/7B,GAEvC88B,IACFC,EAAUA,EAAQvtB,QAAO,SAAUwtB,GACjC,OAAOtlC,OAAOulC,yBAAyBj9B,EAAQg9B,GAAK5hC,eAIxDM,EAAK1J,KAAKiG,MAAMyD,EAAMqhC,GAGxB,OAAOrhC,EAGT,SAASwhC,EAAetpC,GACtB,IAAK,IAAIzC,EAAI,EAAGA,EAAIyG,UAAU1F,OAAQf,IAAK,CACzC,IAAI0G,EAAyB,MAAhBD,UAAUzG,GAAayG,UAAUzG,GAAK,GAE/CA,EAAI,EACN0rC,EAAQnlC,OAAOG,IAAS,GAAMoH,SAAQ,SAAUnH,GAC9CoD,EAAgBtH,EAAQkE,EAAKD,EAAOC,OAE7BJ,OAAOylC,0BAChBzlC,OAAO0lC,iBAAiBxpC,EAAQ8D,OAAOylC,0BAA0BtlC,IAEjEglC,EAAQnlC,OAAOG,IAASoH,SAAQ,SAAUnH,GACxCJ,OAAOyD,eAAevH,EAAQkE,EAAKJ,OAAOulC,yBAAyBplC,EAAQC,OAKjF,OAAOlE,EAGT,SAASypC,EAAgBC,GAIvB,OAHAD,EAAkB3lC,OAAOklC,eAAiBllC,OAAO6lC,eAAiB,SAAyBD,GACzF,OAAOA,EAAEE,WAAa9lC,OAAO6lC,eAAeD,IAEvCD,EAAgBC,GAwBzB,SAASG,EAA2BC,EAAM7rC,GACxC,OAAIA,GAAyB,kBAATA,GAAqC,oBAATA,EATlD,SAAgC6rC,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,EAQAE,CAAuBF,GAHrB7rC,EAMX,SAASgsC,EAAaC,GACpB,IAAIC,EA9BN,WACE,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAUC,KAAM,OAAO,EACnC,GAAqB,oBAAVC,MAAsB,OAAO,EAExC,IAEE,OADAC,QAAQrmC,UAAU4V,QAAQ9b,KAAKmsC,QAAQC,UAAUG,QAAS,IAAI,iBACvD,EACP,MAAO1vB,GACP,OAAO,GAqBuB2vB,GAChC,OAAO,WACL,IACIn4B,EADAo4B,EAAQjB,EAAgBS,GAG5B,GAAIC,EAA2B,CAC7B,IAAIQ,EAAYlB,EAAgBzqC,MAAMojB,YACtC9P,EAAS83B,QAAQC,UAAUK,EAAO1mC,UAAW2mC,QAE7Cr4B,EAASo4B,EAAMrmC,MAAMrF,KAAMgF,WAG7B,OAAO6lC,EAA2B7qC,KAAMsT,IAI5C,IAAIs4B,EAAc,CAAC,YAAa,aAAc,KAAM,YAAa,WAAY,WAAY,UAAW,QAAS,UAAW,eAAgB,cAAe,WAAY,SAI/Jr3B,EAAO,aAcX,SAASs3B,EAAkBzwB,EAAQ9U,GACjC,OAAKA,EAEkB,MAAZA,EAAK,GACP8U,EAAS9U,EAET8U,EAAS,KAAO9U,EAJhB8U,EAQX,SAAS7B,EAAW6B,EAAQrI,EAAO5Q,GACjC,IAAI7D,EAAM,CAAC6D,GAEX,GAAI4Q,GAASqI,EACX,IAAK,IAAIlW,KAAO6N,EACVA,EAAM3N,eAAeF,IAAQ6N,EAAM7N,IACrC5G,EAAIc,KAAK,GAAGuM,OAAOkgC,EAAkBzwB,EAAQlW,KAKnD,OAAO5G,EAAIse,QAAO,SAAUre,GAC1B,OAAOA,KACNuQ,KAAI,SAAUvQ,GACf,OAAOq8B,OAAOr8B,GAAGutC,UAChBjxB,KAAK,KAKV,IAAIkxB,EAAa,SAAoB1sC,GACnC,OA+LeuH,EA/LHvH,EAgML2E,MAAMC,QAAQ2C,GAhMMvH,EAAMud,OAAO4uB,SACjB,WAAnBlC,EAAQjqC,IAAiC,OAAVA,EAAuB,CAACA,GACpD,GA6LT,IAAiBuH,GAxLbolC,EAAmB,SAA0B9rC,GAiB/C,OAfAA,EAAMiC,UACFjC,EAAM+rC,WACN/rC,EAAM6H,GACN7H,EAAMgsC,UACNhsC,EAAMyD,SACNzD,EAAMisC,SACNjsC,EAAMksC,QACNlsC,EAAMmsC,MACNnsC,EAAMgE,QACNhE,EAAMosC,aACNpsC,EAAMqsC,YACNrsC,EAAMssC,SACNtsC,EAAMsE,MAGH8lC,EAAe,GAFDrB,EAAyB/oC,EAAO0rC,KAmBvD,SAASa,EAAkBC,GACzB,MAAO,CAAC1vB,SAAS2vB,gBAAiB3vB,SAAS4vB,KAAM7vB,QAAQhU,QAAQ2jC,IAAO,EAI1E,SAASG,EAAaH,GACpB,OAAID,EAAkBC,GACb3vB,OAAO+vB,YAGTJ,EAAGK,UAEZ,SAASC,EAASN,EAAIO,GAEhBR,EAAkBC,GACpB3vB,OAAOiwB,SAAS,EAAGC,GAIrBP,EAAGK,UAAYE,EAiCjB,SAASC,EAAa31B,EAAGE,EAAG01B,EAAGxL,GAC7B,OAAOwL,IAAM51B,EAAIA,EAAIoqB,EAAI,GAAKpqB,EAAIA,EAAI,GAAKE,EAG7C,SAAS21B,EAAiB14B,EAAStU,GACjC,IAAIitC,EAAWroC,UAAU1F,OAAS,QAAsBoG,IAAjBV,UAAU,GAAmBA,UAAU,GAAK,IAC/EyX,EAAWzX,UAAU1F,OAAS,QAAsBoG,IAAjBV,UAAU,GAAmBA,UAAU,GAAKuP,EAC/E8d,EAAQwa,EAAan4B,GACrB44B,EAASltC,EAAKiyB,EACdkb,EAAY,GACZC,EAAc,EAElB,SAASC,IAEP,IAAInqC,EAAM4pC,EADVM,GAAeD,EACqBlb,EAAOib,EAAQD,GACnDL,EAASt4B,EAASpR,GAEdkqC,EAAcH,EAChBtwB,OAAO2wB,sBAAsBD,GAE7BhxB,EAAS/H,GAIb+4B,IAiCF,SAASE,IACP,IAEE,OADA3wB,SAAS4wB,YAAY,eACd,EACP,MAAO9xB,GACP,OAAO,GAiBX,IAAI+xB,GAAwB,EACxB3pC,EAAU,CACR4pC,cACF,OAAOD,GAAwB,IAK/BE,EAAsB,qBAAXhxB,OAAyBA,OAAS,GAE7CgxB,EAAEluB,kBAAoBkuB,EAAEjuB,sBAC1BiuB,EAAEluB,iBAAiB,IAAKtL,EAAMrQ,GAC9B6pC,EAAEjuB,oBAAoB,IAAKvL,GAAM,IAGnC,IAAIy5B,EAAwBH,EAC5B,SAASI,EAAWvqC,GAClB,OAAe,MAARA,EAKT,SAASwqC,EAAa9B,EAAS+B,EAAYC,GACzC,OAAOhC,EAAU+B,EAAaC,EA6BhC,SAASC,EAAiBhnC,GACxB,IAAIinC,EAAYjnC,EAAKinC,UACjBC,EAASlnC,EAAKknC,OACdC,EAAYnnC,EAAKmnC,UACjBC,EAAYpnC,EAAKonC,UACjBC,EAAernC,EAAKqnC,aACpBC,EAAkBtnC,EAAKsnC,gBAEvBr1B,EADQjS,EAAK7C,MACG8U,QAChBs1B,EAzKN,SAAyBl6B,GACvB,IAAI/R,EAAQksC,iBAAiBn6B,GACzBo6B,EAAyC,aAAnBnsC,EAAMg6B,SAC5BoS,EAAa,gBACjB,GAAuB,UAAnBpsC,EAAMg6B,SAAsB,OAAO3f,SAAS2vB,gBAEhD,IAAK,IAAIqC,EAASt6B,EAASs6B,EAASA,EAAOC,eAGzC,GAFAtsC,EAAQksC,iBAAiBG,KAErBF,GAA0C,WAAnBnsC,EAAMg6B,WAI7BoS,EAAWtlC,KAAK9G,EAAM22B,SAAW32B,EAAMusC,UAAYvsC,EAAMwsC,WAC3D,OAAOH,EAIX,OAAOhyB,SAAS2vB,gBAuJGyC,CAAgBb,GAC/Bc,EAAe,CACjBZ,UAAW,SACXH,UAAWA,GAGb,IAAKC,IAAWA,EAAOe,aAAc,OAAOD,EAG5C,IACIE,EADwBX,EAAaY,wBACAC,OAErCC,EAAwBnB,EAAOiB,wBAC/BG,EAAaD,EAAsBE,OACnCC,EAAaH,EAAsBD,OACnCK,EAAUJ,EAAsBzC,IAGhC8C,EADwBxB,EAAOe,aAAaE,wBACPvC,IAErC+C,EAAajzB,OAAOkzB,YACpBlD,EAAYF,EAAa+B,GACzBsB,EAAeC,SAAStB,iBAAiBN,GAAQ2B,aAAc,IAC/DE,EAAYD,SAAStB,iBAAiBN,GAAQ6B,UAAW,IACzDC,EAAiBN,EAAeK,EAChCE,EAAiBN,EAAaF,EAC9BS,EAAmBF,EAAiBtD,EACpCyD,EAAmBjB,EAAexC,EAAY+C,EAC9CW,EAAad,EAAaK,EAAajD,EAAYmD,EACnDQ,EAAW3D,EAAY+C,EAAUM,EACjCO,EAAiB,IAErB,OAAQlC,GACN,IAAK,OACL,IAAK,SAEH,GAAI6B,GAAkBT,EACpB,MAAO,CACLpB,UAAW,SACXH,UAAWA,GAKf,GAAIkC,GAAoBX,IAAelB,EAKrC,OAJID,GACFtB,EAAiBwB,EAAc6B,EAAYE,GAGtC,CACLlC,UAAW,SACXH,UAAWA,GAKf,IAAKK,GAAmB6B,GAAoBhC,GAAaG,GAAmB2B,GAAkB9B,EAQ5F,OAPIE,GACFtB,EAAiBwB,EAAc6B,EAAYE,GAMtC,CACLlC,UAAW,SACXH,UAHsBK,EAAkB2B,EAAiBJ,EAAeM,EAAmBN,GAS/F,GAAkB,SAAdzB,GAAwBE,EAAiB,CAE3C,IAAIiC,EAAqBtC,EACrBuC,EAAalC,EAAkB0B,EAAiBE,EAMpD,OAJIM,GAAcrC,IAChBoC,EAAqB53B,KAAKqJ,IAAIwuB,EAAaX,EAAe52B,EAAQw3B,cAAexC,IAG5E,CACLG,UAAW,MACXH,UAAWsC,GAKf,GAAkB,WAAdnC,EAKF,OAJIC,GACF1B,EAAS4B,EAAc6B,GAGlB,CACLhC,UAAW,SACXH,UAAWA,GAIf,MAEF,IAAK,MAEH,GAAI+B,GAAkBR,EACpB,MAAO,CACLpB,UAAW,MACXH,UAAWA,GAKf,GAAIiC,GAAoBV,IAAelB,EAKrC,OAJID,GACFtB,EAAiBwB,EAAc8B,EAAUC,GAGpC,CACLlC,UAAW,MACXH,UAAWA,GAKf,IAAKK,GAAmB4B,GAAoB/B,GAAaG,GAAmB0B,GAAkB7B,EAAW,CACvG,IAAIuC,EAAsBzC,EAW1B,QARKK,GAAmB4B,GAAoB/B,GAAaG,GAAmB0B,GAAkB7B,KAC5FuC,EAAsBpC,EAAkB0B,EAAiBD,EAAYG,EAAmBH,GAGtF1B,GACFtB,EAAiBwB,EAAc8B,EAAUC,GAGpC,CACLlC,UAAW,MACXH,UAAWyC,GAOf,MAAO,CACLtC,UAAW,SACXH,UAAWA,GAGf,QACE,MAAM,IAAIhrB,MAAM,+BAAgC3X,OAAO8iC,EAAW,OAGtE,OAAOY,EAYT,IAAI2B,EAAkB,SAAyB35B,GAC7C,MAAa,SAANA,EAAe,SAAWA,GAe/B45B,EAAsC7+B,wBAAc,CACtD8+B,mBAAoB,OAGlBC,EAA0B,SAAUC,GACtCrH,EAAUoH,EAAYC,GAEtB,IAAIC,EAASpG,EAAakG,GAE1B,SAASA,IACP,IAAIG,EAEJ/H,EAAgBvpC,KAAMmxC,GAEtB,IAAK,IAAIlrC,EAAOjB,UAAU1F,OAAQkG,EAAO,IAAIxB,MAAMiC,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EV,EAAKU,GAAQlB,UAAUkB,GA8CzB,OA3CAorC,EAAQD,EAAOpyC,KAAKoG,MAAMgsC,EAAQ,CAACrxC,MAAM2L,OAAOnG,KAC1CuN,MAAQ,CACZu7B,UAAWgD,EAAMpxC,MAAMqxC,cACvB9C,UAAW,MAEb6C,EAAM7vC,aAAU,EAEhB6vC,EAAME,aAAe,SAAUlmC,GAC7B,IAAImmC,EAAcH,EAAMpxC,MACpBwxC,EAAgBD,EAAYC,cAC5BH,EAAgBE,EAAYF,cAC5BI,EAAgBF,EAAYE,cAC5BC,EAAeH,EAAYG,aAC3BC,EAA2BJ,EAAYI,yBACvCrtC,EAAQitC,EAAYjtC,MACxB,GAAK8G,EAAL,CAEA,IAAIqjC,EAAmC,UAAjBiD,EAElB7+B,EAAQs7B,EAAiB,CAC3BC,UAAWiD,EACXhD,OAAQjjC,EACRkjC,UAAWkD,EACXjD,UAAWkD,EACXjD,aANiBmD,IAA6BlD,EAO9CA,gBAAiBA,EACjBnqC,MAAOA,IAEL0sC,EAAqBI,EAAM7vC,QAAQyvC,mBACnCA,GAAoBA,EAAmBn+B,GAE3Cu+B,EAAM3yB,SAAS5L,KAGjBu+B,EAAMQ,gBAAkB,WACtB,IAAIH,EAAgBL,EAAMpxC,MAAMyxC,cAC5BlD,EAAY6C,EAAMv+B,MAAM07B,WAAauC,EAAgBW,GACzD,OAAOrH,EAAeA,EAAe,GAAIgH,EAAMpxC,OAAQ,GAAI,CACzDuuC,UAAWA,EACXH,UAAWgD,EAAMv+B,MAAMu7B,aAIpBgD,EAcT,OAXA1H,EAAauH,EAAY,CAAC,CACxBjsC,IAAK,SACL7F,MAAO,WAEL,OAAOY,EADQD,KAAKE,MAAMD,UACV,CACdqL,IAAKtL,KAAKwxC,aACVO,YAAa/xC,KAAK8xC,wBAKjBX,EAvEqB,CAwE5BxxC,aACFwxC,EAAWa,YAAcf,EAEzB,IAmDIgB,EAAY,SAAmBC,GACjC,IAAIC,EAAcD,EAAM1tC,MACpB4tC,EAAWD,EAAY74B,QAAQ84B,SAEnC,MAAO,CACLhS,MAFW+R,EAAYE,OAETC,UACdj5B,QAAS,GAAG1N,OAAkB,EAAXymC,EAAc,OAAOzmC,OAAkB,EAAXymC,EAAc,MAC7DG,UAAW,WAIXC,EAAsBP,EACtBQ,EAAoBR,EACpBS,EAAmB,SAA0BxyC,GAC/C,IAAID,EAAWC,EAAMD,SACjBkC,EAAYjC,EAAMiC,UAClB4F,EAAK7H,EAAM6H,GACXmkC,EAAYhsC,EAAMgsC,UAClByG,EAAazyC,EAAMyyC,WACvB,OAAOrtC,YAAI,MAAOT,YAAS,CACzBmB,IAAKkmC,EAAU,mBAAoBhsC,GACnCiC,UAAW4F,EAAG,CACZ,eAAe,EACf,2BAA2B,GAC1B5F,IACFwwC,GAAa1yC,IAElByyC,EAAiB3mC,aAAe,CAC9B9L,SAAU,cAEZ,IAAI2yC,EAAiB,SAAwB1yC,GAC3C,IAAID,EAAWC,EAAMD,SACjBkC,EAAYjC,EAAMiC,UAClB4F,EAAK7H,EAAM6H,GACXmkC,EAAYhsC,EAAMgsC,UAClByG,EAAazyC,EAAMyyC,WACvB,OAAOrtC,YAAI,MAAOT,YAAS,CACzBmB,IAAKkmC,EAAU,iBAAkBhsC,GACjCiC,UAAW4F,EAAG,CACZ,eAAe,EACf,wBAAwB,GACvB5F,IACFwwC,GAAa1yC,IAElB2yC,EAAe7mC,aAAe,CAC5B9L,SAAU,cAKZ,IAmLI4yC,EAvKAC,EAA0B,SAAUC,GACtChJ,EAAU+I,EAAYC,GAEtB,IAAIC,EAAU/H,EAAa6H,GAE3B,SAASA,IACP,IAAIG,EAEJ1J,EAAgBvpC,KAAM8yC,GAEtB,IAAK,IAAI9qC,EAAQhD,UAAU1F,OAAQkG,EAAO,IAAIxB,MAAMgE,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFzC,EAAKyC,GAASjD,UAAUiD,GAmB1B,OAhBAgrC,EAASD,EAAQ/zC,KAAKoG,MAAM2tC,EAAS,CAAChzC,MAAM2L,OAAOnG,KAC5CuN,MAAQ,CACb07B,UAAW,MAGbwE,EAAO/B,mBAAqB,SAAUgC,GACpC,IAAIzE,EAAYyE,EAAMzE,UAGlBA,IAFmBuC,EAAgBiC,EAAO/yC,MAAMyxC,gBAGlDsB,EAAOt0B,SAAS,CACd8vB,UAAWA,KAKVwE,EA8CT,OA3CArJ,EAAakJ,EAAY,CAAC,CACxB5tC,IAAK,SACL7F,MAAO,WACL,IAAI8zC,EAAenzC,KAAKE,MACpBknC,EAAW+L,EAAa/L,SACxBnnC,EAAWkzC,EAAalzC,SACxBkC,EAAYgxC,EAAahxC,UACzBixC,EAAiBD,EAAaC,eAC9BrrC,EAAKorC,EAAaprC,GAClB4qC,EAAaQ,EAAaR,WAC1BhB,EAAgBwB,EAAaxB,cAC7BhV,EAAWwW,EAAavB,aACxB1F,EAAYiH,EAAajH,UACzBmH,EAAuB,UAAb1W,EAEd,IAAKyK,IAAaiM,IAAYD,EAC5B,OAAO,KAGT,IAAI3E,EAAYzuC,KAAK+S,MAAM07B,WAAauC,EAAgBW,GACpD2B,EA3gBV,SAA8B5+B,GAC5B,IAAI4+B,EAAO5+B,EAAQ86B,wBACnB,MAAO,CACLI,OAAQ0D,EAAK1D,OACbH,OAAQ6D,EAAK7D,OACb8D,KAAMD,EAAKC,KACXC,MAAOF,EAAKE,MACZvG,IAAKqG,EAAKrG,IACVwG,MAAOH,EAAKG,OAmgBCC,CAAqBN,GAC5BO,EAAiBN,EAAU,EAAIt2B,OAAO+vB,YAEtC/5B,EAAQ,CACV6gC,OAFWN,EAAK7E,GAAakF,EAG7BhX,SAAUA,EACV2W,KAAMA,GAGJO,EAAcvuC,YAAI,MAAOT,YAAS,CACpCmB,IAAKkmC,EAAU,aAAcn5B,GAC7B5Q,UAAW4F,EAAG,CACZ,eAAe,GACd5F,IACFwwC,GAAa1yC,GAChB,OAAOqF,YAAI2rC,EAAuBp7B,SAAU,CAC1CxW,MAAO,CACL6xC,mBAAoBlxC,KAAKkxC,qBAE1B9J,EAAwB0M,uBAAaD,EAAazM,GAAYyM,OAI9Df,EA5EqB,CA6E5BnzC,aA4FEo0C,EAAc,CAAC,QAInB,IAAI9hC,GAAgD,CAClD3L,KAAM,SACNC,OAAQ,2FAWNytC,GAAM,SAAa3sC,GACrB,IAAImG,EAAOnG,EAAKmG,KACZtN,EAAQ+oC,EAAyB5hC,EAAM0sC,GAE3C,OAAOzuC,YAAI,MAAOT,YAAS,CACzB4qC,OAAQjiC,EACRimC,MAAOjmC,EACPg0B,QAAS,YACT,cAAe,OACfyS,UAAW,QACXjuC,IAAKiM,IACJ/R,KAGDg0C,GAAY,SAAmBh0C,GACjC,OAAOoF,YAAI0uC,GAAKnvC,YAAS,CACvB2I,KAAM,IACLtN,GAAQoF,YAAI,OAAQ,CACrBq8B,EAAG,iWAGHwS,GAAc,SAAqBj0C,GACrC,OAAOoF,YAAI0uC,GAAKnvC,YAAS,CACvB2I,KAAM,IACLtN,GAAQoF,YAAI,OAAQ,CACrBq8B,EAAG,4RAMHyS,GAAU,SAAiBC,GAC7B,IAAI7O,EAAY6O,EAAM7O,UAClB8O,EAAcD,EAAM7vC,MACpB4tC,EAAWkC,EAAYh7B,QAAQ84B,SAC/BC,EAASiC,EAAYjC,OACzB,MAAO,CACLvnC,MAAO,qBACPs1B,MAAOoF,EAAY6M,EAAOkC,UAAYlC,EAAOmC,UAC7CC,QAAS,OACTp7B,QAAoB,EAAX+4B,EACTsC,WAAY,cACZ,SAAU,CACRtU,MAAOoF,EAAY6M,EAAOsC,UAAYtC,EAAOC,aAK/CsC,GAAuBR,GAevBS,GAAoBT,GA+CpBU,GAAuB1uC,YAAUysC,IAAoBA,EAAkBkC,YAAuB,CAAC,iEAsB/FC,GAAa,SAAoBC,GACnC,IAAIC,EAAQD,EAAMC,MACdtB,EAASqB,EAAMrB,OACnB,OAAOtuC,YAAI,OAAQ,CACjBU,IAAkBmvC,YAAM,CACtBC,UAAW,GAAGzpC,OAAOmpC,GAAsB,oBAAoBnpC,OAAOupC,EAAO,gBAC7E/U,gBAAiB,eACjBkV,aAAc,MACdZ,QAAS,eACTa,WAAY1B,EAAS,WAAQluC,EAC7B+pC,OAAQ,MACR8F,cAAe,MACf9B,MAAO,OACkC,GAAmE,OAI9G+B,GAAmB,SAA0Bt1C,GAC/C,IAAIiC,EAAYjC,EAAMiC,UAClB4F,EAAK7H,EAAM6H,GACXmkC,EAAYhsC,EAAMgsC,UAClByG,EAAazyC,EAAMyyC,WACnBtG,EAAQnsC,EAAMmsC,MAClB,OAAO/mC,YAAI,MAAOT,YAAS,CACzBmB,IAAKkmC,EAAU,mBAAoBhsC,GACnCiC,UAAW4F,EAAG,CACZ0tC,WAAW,EACX,qBAAqB,GACpBtzC,IACFwwC,GAAartC,YAAI0vC,GAAY,CAC9BE,MAAO,EACPtB,OAAQvH,IACN/mC,YAAI0vC,GAAY,CAClBE,MAAO,IACPtB,QAAQ,IACNtuC,YAAI0vC,GAAY,CAClBE,MAAO,IACPtB,QAASvH,MAGbmJ,GAAiBzpC,aAAe,CAC9ByB,KAAM,GAGR,IAoDIkoC,GAAc,CAAC,QAiEfjpC,GAAY,CAAC,WAAY,aAAc,WAAY,kBAkBnDkpC,GAAe,CACjBC,SAAU,QACVC,KAAM,UACNC,SAAU,MACVC,OAAQ,EACR38B,OAAQ,EACR48B,QAAS,EACT38B,QAAS,GAEP48B,GAAiB,CACnBxxB,KAAM,WACNgwB,QAAS,cACTmB,SAAU,gBACVM,oBAAqB,gBACrB,UAAW5L,EAAe,CACxBxiC,QAAS,uBACTquC,WAAY,SACZC,WAAY,OACXT,KAGDU,GAAa,SAAoBC,GACnC,OAAOhM,EAAe,CACpBx/B,MAAO,QACPs1B,MAAO,UACPmW,WAAY,EACZ1wB,QAASywB,EAAW,EAAI,EACxB7C,MAAO,QACNkC,KAkFDa,GAAoB,SAA2BC,GACjD,IAAIx2C,EAAWw2C,EAAMx2C,SACjB0yC,EAAa8D,EAAM9D,WACvB,OAAOrtC,YAAI,MAAOqtC,EAAY1yC,IAchC,IA4JIkP,GAAa,CACfunC,eAnhBmB,SAAwBx2C,GAC3C,IAAID,EAAWC,EAAMD,SACjBkC,EAAYjC,EAAMiC,UAClB4F,EAAK7H,EAAM6H,GACXmkC,EAAYhsC,EAAMgsC,UAClByG,EAAazyC,EAAMyyC,WACvB,OAAOrtC,YAAI,MAAOT,YAAS,CACzBmB,IAAKkmC,EAAU,iBAAkBhsC,GACjCiC,UAAW4F,EAAG,CACZ0tC,WAAW,EACX,mBAAmB,GAClBtzC,IACFwwC,GAAa1yC,GAAYqF,YAAI4uC,GAAW,QAwgB3CyC,QAtYY,SAAiBz2C,GAC7B,IAAID,EAAWC,EAAMD,SACjB8H,EAAK7H,EAAM6H,GACXmkC,EAAYhsC,EAAMgsC,UAClB/pC,EAAYjC,EAAMiC,UAClBy0C,EAAa12C,EAAM02C,WACnBpR,EAAYtlC,EAAMslC,UAClB5kC,EAAWV,EAAMU,SACjB+xC,EAAazyC,EAAMyyC,WACnBkE,EAAa32C,EAAM22C,WACvB,OAAOvxC,YAAI,MAAOT,YAAS,CACzByG,IAAK1K,EACLoF,IAAKkmC,EAAU,UAAWhsC,GAC1BiC,UAAW4F,EAAG,CACZ+uC,SAAS,EACT,uBAAwBF,EACxB,sBAAuBpR,EACvB,wBAAyBqR,GACxB10C,IACFwwC,GAAa1yC,IAoXhB82C,kBApiBsB,SAA2B72C,GACjD,IAAID,EAAWC,EAAMD,SACjBkC,EAAYjC,EAAMiC,UAClB4F,EAAK7H,EAAM6H,GACXmkC,EAAYhsC,EAAMgsC,UAClByG,EAAazyC,EAAMyyC,WACvB,OAAOrtC,YAAI,MAAOT,YAAS,CACzBmB,IAAKkmC,EAAU,oBAAqBhsC,GACpCiC,UAAW4F,EAAG,CACZ0tC,WAAW,EACX,sBAAsB,GACrBtzC,IACFwwC,GAAa1yC,GAAYqF,YAAI6uC,GAAa,QAyhB7CA,YAAaA,GACbD,UAAWA,GACX8C,MA3WU,SAAe92C,GACzB,IAAID,EAAWC,EAAMD,SACjBkC,EAAYjC,EAAMiC,UAClB4F,EAAK7H,EAAM6H,GACXmkC,EAAYhsC,EAAMgsC,UAClB+K,EAAU/2C,EAAM+2C,QAChBC,EAAeh3C,EAAMg3C,aACrBvE,EAAazyC,EAAMyyC,WACnB7nC,EAAQ5K,EAAM4K,MACdtG,EAAQtE,EAAMsE,MACd+nC,EAAcrsC,EAAMqsC,YACxB,OAAOjnC,YAAI,MAAOT,YAAS,CACzBmB,IAAKkmC,EAAU,QAAShsC,GACxBiC,UAAW4F,EAAG,CACZovC,OAAO,GACNh1C,IACFwwC,GAAartC,YAAI2xC,EAASpyC,YAAS,GAAIqyC,EAAc,CACtD3K,YAAaA,EACb/nC,MAAOA,EACP0nC,UAAWA,EACXnkC,GAAIA,IACF+C,GAAQxF,YAAI,MAAO,KAAMrF,KAuV7Bm3C,aArUiB,SAAsBl3C,GACvC,IAAIgsC,EAAYhsC,EAAMgsC,UAClBnkC,EAAK7H,EAAM6H,GACX5F,EAAYjC,EAAMiC,UAElBk1C,EAAoBrL,EAAiB9rC,GACrCm3C,EAAkBC,KAClB,IAAI3E,EAAa1J,EAAyBoO,EAAmB3B,IAEjE,OAAOpwC,YAAI,MAAOT,YAAS,CACzBmB,IAAKkmC,EAAU,eAAgBhsC,GAC/BiC,UAAW4F,EAAG,CACZ,iBAAiB,GAChB5F,IACFwwC,KAwTH4E,oBA3nBwB,SAA6Br3C,GACrD,IAAID,EAAWC,EAAMD,SACjBkC,EAAYjC,EAAMiC,UAClB4F,EAAK7H,EAAM6H,GACX4qC,EAAazyC,EAAMyyC,WACnBzG,EAAYhsC,EAAMgsC,UACtB,OAAO5mC,YAAI,MAAOT,YAAS,CACzBmB,IAAKkmC,EAAU,sBAAuBhsC,GACtCiC,UAAW4F,EAAG,CACZyvC,YAAY,GACXr1C,IACFwwC,GAAa1yC,IAinBhBw3C,mBA5fuB,SAA4Bv3C,GACnD,IAAIiC,EAAYjC,EAAMiC,UAClB4F,EAAK7H,EAAM6H,GACXmkC,EAAYhsC,EAAMgsC,UAClByG,EAAazyC,EAAMyyC,WACvB,OAAOrtC,YAAI,OAAQT,YAAS,GAAI8tC,EAAY,CAC1C3sC,IAAKkmC,EAAU,qBAAsBhsC,GACrCiC,UAAW4F,EAAG,CACZ,uBAAuB,GACtB5F,OAofLq1B,MAtQU,SAAet3B,GACzB,IAAIiC,EAAYjC,EAAMiC,UAClB4F,EAAK7H,EAAM6H,GACXmkC,EAAYhsC,EAAMgsC,UAClB7sC,EAAQa,EAAMb,MAEdg4C,EAAoBrL,EAAiB9rC,GACrCU,EAAWy2C,EAAkBz2C,SAC7Bg2C,EAAaS,EAAkBT,WAC/BN,EAAWe,EAAkBf,SAC7BoB,EAAiBL,EAAkBK,eACnC/E,EAAa1J,EAAyBoO,EAAmB5qC,IAE7D,OAAOnH,YAAI,MAAO,CAChBnD,UAAW4F,EAAG,CACZ,mBAAmB,GAClB5F,GACH6D,IAAKkmC,EAAU,QAAShsC,GACxB,aAAcb,GAAS,IACtBiG,YAAI,QAAST,YAAS,CACvB1C,UAAW4F,EAAG,CACZmI,OAAO,GACNwnC,GACHpsC,IAAK1K,EACL+B,MAAO0zC,GAAWC,GAClBvW,SAAU6W,GACTjE,MA6OH6C,iBAAkBA,GAClBmC,KAz4BS,SAAcz3C,GACvB,IAAID,EAAWC,EAAMD,SACjBkC,EAAYjC,EAAMiC,UAClB4F,EAAK7H,EAAM6H,GACXmkC,EAAYhsC,EAAMgsC,UAClBtrC,EAAWV,EAAMU,SACjB+xC,EAAazyC,EAAMyyC,WACvB,OAAOrtC,YAAI,MAAOT,YAAS,CACzBmB,IAAKkmC,EAAU,OAAQhsC,GACvBiC,UAAW4F,EAAG,CACZ6vC,MAAM,GACLz1C,GACHmJ,IAAK1K,GACJ+xC,GAAa1yC,IA63BhB43C,SA32Ba,SAAkB33C,GAC/B,IAAID,EAAWC,EAAMD,SACjBkC,EAAYjC,EAAMiC,UAClB4F,EAAK7H,EAAM6H,GACXmkC,EAAYhsC,EAAMgsC,UAClByG,EAAazyC,EAAMyyC,WACnB/xC,EAAWV,EAAMU,SACjBwrC,EAAUlsC,EAAMksC,QACpB,OAAO9mC,YAAI,MAAOT,YAAS,CACzBmB,IAAKkmC,EAAU,WAAYhsC,GAC3BiC,UAAW4F,EAAG,CACZ,aAAa,EACb,sBAAuBqkC,GACtBjqC,GACHmJ,IAAK1K,GACJ+xC,GAAa1yC,IA61BhB6yC,WAAYA,EACZF,eAAgBA,EAChBF,iBAAkBA,EAClBoF,WA7Ke,SAAoB53C,GACnC,IAAID,EAAWC,EAAMD,SACjBkC,EAAYjC,EAAMiC,UAClBgN,EAAajP,EAAMiP,WACnBpH,EAAK7H,EAAM6H,GACXuvC,EAAOp3C,EAAMo3C,KACbpL,EAAYhsC,EAAMgsC,UAClByG,EAAazyC,EAAMyyC,WACnBiE,EAAa12C,EAAM02C,WACnBmB,EAAc73C,EAAM63C,YACpBxL,EAAcrsC,EAAMqsC,YACpByL,EAAY7oC,EAAW6oC,UACvBC,EAAQ9oC,EAAW8oC,MACnBC,EAAS/oC,EAAW+oC,OACxB,OAAO5yC,YAAIoC,IAAY,MAAM,SAAUutC,GACrC,IAAIjvC,EAAMivC,EAAMjvC,IACZmyC,EAAYlD,EAAMltC,GACtB,OAAOzC,YAAI0yC,EAAW,CACpBV,KAAMA,EACN3E,WAAYrI,EAAe,CACzBnoC,UAAWg2C,EAAUnyC,EAAIkmC,EAAU,aAAchsC,IAAS6H,EAAG,CAC3D,eAAe,EACf,2BAA4B6uC,GAC3Bz0C,KACFwwC,GACHpG,YAAaA,GACZjnC,YAAI2yC,EAAO,CACZX,KAAMA,EACN3E,WAAY,CACVxwC,UAAWg2C,EAAUnyC,EAAIkmC,EAAU,kBAAmBhsC,IAAS6H,EAAG,CAChE,sBAAsB,GACrB5F,KAELoqC,YAAaA,GACZtsC,GAAWqF,YAAI4yC,EAAQ,CACxBZ,KAAMA,EACN3E,WAAYrI,EAAe,CACzBnoC,UAAWg2C,EAAUnyC,EAAIkmC,EAAU,mBAAoBhsC,IAAS6H,EAAG,CACjE,uBAAuB,GACtB5F,IACH,aAAc,UAAUwJ,OAAO1L,GAAY,WAC1C83C,GACHxL,YAAaA,SAoIjB6L,oBA1LwB5B,GA2LxB6B,gBA1LoB7B,GA2LpB8B,iBA1LF,SAA0BpG,GACxB,IAAIjyC,EAAWiyC,EAAMjyC,SACjB0yC,EAAaT,EAAMS,WACvB,OAAOrtC,YAAI,MAAOT,YAAS,CACzBu8B,KAAM,UACLuR,GAAa1yC,GAAYqF,YAAI4uC,GAAW,CACzC1mC,KAAM,OAqLR+qC,OAzGW,SAAgBr4C,GAC3B,IAAID,EAAWC,EAAMD,SACjBkC,EAAYjC,EAAMiC,UAClB4F,EAAK7H,EAAM6H,GACXmkC,EAAYhsC,EAAMgsC,UAClB0K,EAAa12C,EAAM02C,WACnBpR,EAAYtlC,EAAMslC,UAClBgT,EAAat4C,EAAMs4C,WACnB53C,EAAWV,EAAMU,SACjB+xC,EAAazyC,EAAMyyC,WACvB,OAAOrtC,YAAI,MAAOT,YAAS,CACzBmB,IAAKkmC,EAAU,SAAUhsC,GACzBiC,UAAW4F,EAAG,CACZ+4B,QAAQ,EACR,sBAAuB8V,EACvB,qBAAsBpR,EACtB,sBAAuBgT,GACtBr2C,GACHmJ,IAAK1K,EACL,gBAAiBg2C,GAChBjE,GAAa1yC,IAsFhBw4C,YAtEgB,SAAqBv4C,GACrC,IAAID,EAAWC,EAAMD,SACjBkC,EAAYjC,EAAMiC,UAClB4F,EAAK7H,EAAM6H,GACXmkC,EAAYhsC,EAAMgsC,UAClByG,EAAazyC,EAAMyyC,WACvB,OAAOrtC,YAAI,MAAOT,YAAS,CACzBmB,IAAKkmC,EAAU,cAAehsC,GAC9BiC,UAAW4F,EAAG,CACZusB,aAAa,GACZnyB,IACFwwC,GAAa1yC,IA4DhBy4C,gBAzsBoB,SAAyBx4C,GAC7C,IAAID,EAAWC,EAAMD,SACjBkC,EAAYjC,EAAMiC,UAClB4F,EAAK7H,EAAM6H,GACXmkC,EAAYhsC,EAAMgsC,UAClByG,EAAazyC,EAAMyyC,WACnBiE,EAAa12C,EAAM02C,WACnBvK,EAAQnsC,EAAMmsC,MAClB,OAAO/mC,YAAI,MAAOT,YAAS,CACzBmB,IAAKkmC,EAAU,YAAahsC,GAC5BiC,UAAW4F,EAAG,CACZ,gBAAiB6uC,EACjB,WAAYvK,GACXlqC,IACFwwC,GAAa1yC,IA4rBhB04C,YAxCgB,SAAqBz4C,GACrC,IAAID,EAAWC,EAAMD,SACjBkC,EAAYjC,EAAMiC,UAClB4F,EAAK7H,EAAM6H,GACXmkC,EAAYhsC,EAAMgsC,UAClB0K,EAAa12C,EAAM02C,WACnBjE,EAAazyC,EAAMyyC,WACvB,OAAOrtC,YAAI,MAAOT,YAAS,CACzBmB,IAAKkmC,EAAU,cAAehsC,GAC9BiC,UAAW4F,EAAG,CACZ,gBAAgB,EAChB,4BAA6B6uC,GAC5Bz0C,IACFwwC,GAAa1yC,IA4BhB24C,eAxqBmB,SAAwB14C,GAC3C,IAAID,EAAWC,EAAMD,SACjBkC,EAAYjC,EAAMiC,UAClB4F,EAAK7H,EAAM6H,GACX4qC,EAAazyC,EAAMyyC,WACnBvG,EAAUlsC,EAAMksC,QAChBF,EAAYhsC,EAAMgsC,UAClBC,EAAWjsC,EAAMisC,SACrB,OAAO7mC,YAAI,MAAOT,YAAS,CACzBmB,IAAKkmC,EAAU,iBAAkBhsC,GACjCiC,UAAW4F,EAAG,CACZ,mBAAmB,EACnB,4BAA6BqkC,EAC7B,6BAA8BD,GAC7BhqC,IACFwwC,GAAa1yC,KC74BdwM,GAAY,CAAC,oBAAqB,oBAAqB,eAAgB,aAAc,aAAc,WAAY,gBAAiB,cAAe,aAAc,S,aCL7JosC,GAAYnwB,OAAOE,OACnB,SAAkBvpB,GACd,MAAwB,kBAAVA,GAAsBA,IAAUA,GAWtD,SAASy5C,GAAeC,EAAWC,GAC/B,GAAID,EAAUz5C,SAAW05C,EAAW15C,OAChC,OAAO,EAEX,IAAK,IAAIf,EAAI,EAAGA,EAAIw6C,EAAUz5C,OAAQf,IAClC,GAdS06C,EAcIF,EAAUx6C,GAdP26C,EAcWF,EAAWz6C,KAbtC06C,IAAUC,GAGVL,GAAUI,IAAUJ,GAAUK,IAW1B,OAAO,EAfnB,IAAiBD,EAAOC,EAkBpB,OAAO,EA0BIC,OAvBf,SAAoBC,EAAUC,GAE1B,IAAIC,OADY,IAAZD,IAAsBA,EAAUP,IAEpC,IACIS,EADAC,EAAW,GAEXC,GAAa,EAejB,OAdA,WAEI,IADA,IAAIC,EAAU,GACLj7C,EAAK,EAAGA,EAAKuG,UAAU1F,OAAQb,IACpCi7C,EAAQj7C,GAAMuG,UAAUvG,GAE5B,OAAIg7C,GAAcH,IAAat5C,MAAQq5C,EAAQK,EAASF,KAGxDD,EAAaH,EAAS/zC,MAAMrF,KAAM05C,GAClCD,GAAa,EACbH,EAAWt5C,KACXw5C,EAAWE,GALAH,IC4cnB,IAneA,IAAIlyC,GAA+C,CACjDf,KAAM,kBACNC,OAAQ,0JAQNozC,GAAW,SAAkBz5C,GAC/B,OAAOoF,YAAI,OAAQT,YAAS,CAC1BmB,IAAKqB,IACJnH,KAGD05C,GAA0B,CAC5BC,SAAU,SAAkB35C,GAC1B,IAAI45C,EAAe55C,EAAM45C,aACrB1N,EAAUlsC,EAAMksC,QAChBwK,EAAa12C,EAAM02C,WACnBmD,EAAkB75C,EAAM65C,gBAG5B,OAFc75C,EAAMuB,SAGlB,IAAK,OACH,MAAO,oCAAoCkK,OAAOirC,EAAa,GAAK,uDAAwD,mCAAmCjrC,OAAOouC,EAAkB,qDAAuD,GAAI,KAErP,IAAK,QACH,MAAO,GAAGpuC,OAAOzL,EAAM,eAAiB,SAAU,gBAAgByL,OAAOmuC,EAAe,uBAAyB,GAAI,mCAAmCnuC,OAAOygC,EAAU,uCAAyC,IAEpN,IAAK,QACH,MAAO,6GAET,QACE,MAAO,KAGbtV,SAAU,SAAkB52B,GAC1B,IAAIqc,EAASrc,EAAMqc,OACfy9B,EAAe95C,EAAM4K,MACrBA,OAAyB,IAAjBkvC,EAA0B,GAAKA,EACvCjmB,EAAS7zB,EAAM6zB,OACf6iB,EAAa12C,EAAM02C,WAEvB,OAAQr6B,GACN,IAAK,kBACL,IAAK,YACL,IAAK,eACH,MAAO,UAAU5Q,OAAOb,EAAO,iBAEjC,IAAK,QACH,MAAO,0CAET,IAAK,sBACH,MAAO,SAASa,OAAOooB,EAAOz0B,OAAS,EAAI,IAAM,GAAI,KAAKqM,OAAOooB,EAAOlZ,KAAK,KAAM,eAErF,IAAK,gBACH,MAAoB,UAAUlP,OAAOb,EAA9B8rC,EAAqC,uCAAkE,eAEhH,QACE,MAAO,KAGbnR,QAAS,SAAiBvlC,GACxB,IAAIuB,EAAUvB,EAAMuB,QAChBw4C,EAAU/5C,EAAM+5C,QAChB/1C,EAAUhE,EAAMgE,QAChBg2C,EAAgBh6C,EAAM4K,MACtBA,OAA0B,IAAlBovC,EAA2B,GAAKA,EACxCC,EAAcj6C,EAAMi6C,YACpBvD,EAAa12C,EAAM02C,WACnB4B,EAAat4C,EAAMs4C,WAEnB4B,EAAgB,SAAuB97C,EAAKoF,GAC9C,OAAOpF,GAAOA,EAAIgB,OAAS,GAAGqM,OAAOrN,EAAIyK,QAAQrF,GAAQ,EAAG,QAAQiI,OAAOrN,EAAIgB,QAAU,IAG3F,GAAgB,UAAZmC,GAAuB04C,EACzB,MAAO,SAASxuC,OAAOb,EAAO,cAAca,OAAOyuC,EAAcD,EAAaF,GAAU,KAG1F,GAAgB,SAAZx4C,EAAoB,CACtB,IAAIs+B,EAAW6W,EAAa,YAAc,GACtCyD,EAAS,GAAG1uC,OAAO6sC,EAAa,WAAa,WAAW7sC,OAAOo0B,GACnE,MAAO,UAAUp0B,OAAOb,EAAO,KAAKa,OAAO0uC,EAAQ,MAAM1uC,OAAOyuC,EAAcl2C,EAAS+1C,GAAU,KAGnG,MAAO,IAETK,SAAU,SAAkBp6C,GAC1B,IAAIq6C,EAAar6C,EAAMq6C,WACnBC,EAAiBt6C,EAAMs6C,eAC3B,MAAO,GAAG7uC,OAAO6uC,GAAgB7uC,OAAO4uC,EAAa,oBAAsBA,EAAa,GAAI,OAI5FE,GAAa,SAAoBv6C,GACnC,IAAIw6C,EAAgBx6C,EAAMw6C,cACtBC,EAAgBz6C,EAAMy6C,cACtBC,EAAe16C,EAAM06C,aACrBC,EAAmB36C,EAAM26C,iBACzBrV,EAAYtlC,EAAMslC,UAClB2U,EAAcj6C,EAAMi6C,YACpB5N,EAAcrsC,EAAMqsC,YACpBuO,EAAK56C,EAAM46C,GACXC,EAAmBxO,EAAYwO,iBAC/BC,EAAiBzO,EAAYyO,eAC7BT,EAAahO,EAAYgO,WACzBnO,EAAUG,EAAYH,QACtB6O,EAAmB1O,EAAY0O,iBAC/BnB,EAAevN,EAAYuN,aAC3BjD,EAAatK,EAAYsK,WACzB3yC,EAAUqoC,EAAYroC,QACtBg3C,EAAqB3O,EAAY2O,mBACjCnB,EAAkBxN,EAAYwN,gBAC9BoB,EAAY5O,EAAY,cACxB6O,EAAW7O,EAAY,aAEvB8O,EAAWzb,mBAAQ,WACrB,OAAO0K,EAAeA,EAAe,GAAIsP,IAA0BmB,GAAoB,MACtF,CAACA,IAEAO,EAAe1b,mBAAQ,WACzB,IASmCt8B,EAT/B4Z,EAAU,GAEd,GAAIw9B,GAAiBW,EAASvkB,SAAU,CACtC,IAAIgK,EAAS4Z,EAAc5Z,OACvBya,EAAkBb,EAAcx2C,QAChCs3C,EAAed,EAAcc,aAC7BC,EAAgBf,EAAce,cAC9Bp8C,EAAQq7C,EAAcr7C,MAOtBq8C,EAAWF,GAAgB1a,IALEx9B,EAKiBjE,EAJxC2E,MAAMC,QAAQX,GAAa,KAANA,GAK3BwH,EAAQ4wC,EAAWV,EAAeU,GAAY,GAE9CC,EAAgBJ,GAAmBE,QAAiB/1C,EACpDquB,EAAS4nB,EAAgBA,EAAc7sC,IAAIksC,GAAkB,GAE7DY,EAAgBtR,EAAe,CAGjCsM,WAAY8E,GAAYT,EAAiBS,EAAUvB,GACnDrvC,MAAOA,EACPipB,OAAQA,GACP2mB,GAEHx9B,EAAUm+B,EAASvkB,SAAS8kB,GAG9B,OAAO1+B,IACN,CAACw9B,EAAeW,EAAUJ,EAAkBd,EAAaa,IACxDa,EAAcjc,mBAAQ,WACxB,IAAIkc,EAAW,GACX7B,EAAUU,GAAiBC,EAC3BpC,KAAgBmC,GAAiBR,GAAeA,EAAY4B,SAASpB,IAEzE,GAAIV,GAAWoB,EAAS5V,QAAS,CAC/B,IAAIuW,EAAe,CACjB/B,QAASA,EACTnvC,MAAOkwC,EAAef,GACtBrD,WAAYqE,EAAiBhB,EAASE,GACtC3B,WAAYA,EACZt0C,QAASA,EACTzC,QAASw4C,IAAYU,EAAgB,OAAS,QAC9CR,YAAaA,GAEf2B,EAAWT,EAAS5V,QAAQuW,GAG9B,OAAOF,IACN,CAACnB,EAAeC,EAAcI,EAAgBC,EAAkBI,EAAUn3C,EAASi2C,IAClF8B,EAAcrc,mBAAQ,WACxB,IAAIsc,EAAa,GAEjB,GAAIrF,GAAc3yC,EAAQ5E,QAAU+7C,EAASf,SAAU,CACrD,IAAIE,EAAiBU,EAAmB,CACtChnB,MAAO2mB,EAAiBv7C,SAE1B48C,EAAab,EAASf,SAAS,CAC7BC,WAAYA,EACZC,eAAgBA,IAIpB,OAAO0B,IACN,CAACrB,EAAkBN,EAAY1D,EAAYwE,EAAUn3C,EAASg3C,IAC7DiB,EAAevc,mBAAQ,WACzB,IAAIwc,EAAc,GAElB,GAAIf,EAASxB,SAAU,CACrB,IAAIp4C,EAAUm5C,EAAe,QAAU/D,EAAa,OAAS,QAC7DuF,EAAcf,EAASxB,SAAS,CAC9B,aAAcsB,EACd15C,QAASA,EACTm1C,WAAY+D,GAAiBM,EAAiBN,EAAeR,GAC7D/N,QAASA,EACT0N,aAAcA,EACdC,gBAAiBA,IAIrB,OAAOqC,IACN,CAACjB,EAAWR,EAAeC,EAAcxO,EAAS6O,EAAkBnB,EAAcjD,EAAYwE,EAAUlB,EAAaJ,IACpHsC,EAAc,GAAG1wC,OAAOkwC,EAAa,KAAKlwC,OAAOswC,EAAa,KAAKtwC,OAAOwwC,GAC1EG,EAAmBh3C,YAAI+C,WAAU,KAAM/C,YAAI,OAAQ,CACrDw1C,GAAI,kBACHQ,GAAeh2C,YAAI,OAAQ,CAC5Bw1C,GAAI,gBACHuB,IACCE,EAA0G,yBAAtE,OAAlB7B,QAA4C,IAAlBA,OAA2B,EAASA,EAAcn+B,QAClG,OAAOjX,YAAI+C,WAAU,KAAM/C,YAAIq0C,GAAU,CACvCmB,GAAIA,GACHyB,GAAkBD,GAAmBh3C,YAAIq0C,GAAU,CACpD,YAAayB,EACb,cAAe,QACf,gBAAiB,kBAChB5V,IAAc+W,GAAkBD,KAGjCE,GAAa,CAAC,CAChBtoC,KAAM,IACNuoC,QAAS,+LACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,KACNuoC,QAAS,oBACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,KACNuoC,QAAS,gBACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,IACNuoC,QAAS,qDACR,CACDvoC,KAAM,IACNuoC,QAAS,qEACR,CACDvoC,KAAM,IACNuoC,QAAS,mFACR,CACDvoC,KAAM,KACNuoC,QAAS,gBACR,CACDvoC,KAAM,KACNuoC,QAAS,gBACR,CACDvoC,KAAM,IACNuoC,QAAS,2KACR,CACDvoC,KAAM,IACNuoC,QAAS,mCACR,CACDvoC,KAAM,IACNuoC,QAAS,yFACR,CACDvoC,KAAM,IACNuoC,QAAS,mFACR,CACDvoC,KAAM,IACNuoC,QAAS,+GACR,CACDvoC,KAAM,IACNuoC,QAAS,6BACR,CACDvoC,KAAM,IACNuoC,QAAS,mFACR,CACDvoC,KAAM,IACNuoC,QAAS,2GACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,IACNuoC,QAAS,+CACR,CACDvoC,KAAM,IACNuoC,QAAS,6FACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,IACNuoC,QAAS,qPACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,IACNuoC,QAAS,2DACR,CACDvoC,KAAM,IACNuoC,QAAS,mCACR,CACDvoC,KAAM,IACNuoC,QAAS,qGACR,CACDvoC,KAAM,IACNuoC,QAAS,qGACR,CACDvoC,KAAM,IACNuoC,QAAS,yFACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,IACNuoC,QAAS,mMACR,CACDvoC,KAAM,IACNuoC,QAAS,+CACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,IACNuoC,QAAS,2DACR,CACDvoC,KAAM,IACNuoC,QAAS,6BACR,CACDvoC,KAAM,IACNuoC,QAAS,uFACR,CACDvoC,KAAM,IACNuoC,QAAS,mFACR,CACDvoC,KAAM,IACNuoC,QAAS,qMACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,KACNuoC,QAAS,oBACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,KACNuoC,QAAS,gBACR,CACDvoC,KAAM,KACNuoC,QAAS,UACR,CACDvoC,KAAM,IACNuoC,QAAS,qDACR,CACDvoC,KAAM,IACNuoC,QAAS,2EACR,CACDvoC,KAAM,IACNuoC,QAAS,mFACR,CA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","file":"static/js/2.86052875.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\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","import { unstable_capitalize as capitalize } from '@mui/utils';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path) {\n if (!path || typeof path !== 'string') {\n return null;\n } // Check if CSS variables are used\n\n\n if (obj && obj.vars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n\n if (val != null) {\n return val;\n }\n }\n\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n\n return null;\n }, obj);\n}\n\nfunction getValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n\n if (transform) {\n value = transform(value);\n }\n\n return value;\n}\n\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n\n if (cssProperty === false) {\n return value;\n }\n\n return {\n [cssProperty]: value\n };\n };\n\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\n\nexport default style;","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import * as React from 'react';\nimport { createElement, useLayoutEffect, useContext, useRef, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, u as useInsertionEffectMaybe } from './emotion-element-cbed451f.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, b as ThemeProvider, _ as __unsafe_useEmotionCache, a as useTheme, w as withEmotionCache, d as withTheme } from './emotion-element-cbed451f.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.9.0\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.cjs.js\": \"./dist/emotion-react.browser.cjs.js\",\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.js\",\n\t\t\"macro.d.ts\",\n\t\t\"macro.js.flow\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.13.10\",\n\t\t\"@emotion/babel-plugin\": \"^11.7.1\",\n\t\t\"@emotion/cache\": \"^11.7.1\",\n\t\t\"@emotion/serialize\": \"^1.0.3\",\n\t\t\"@emotion/utils\": \"^1.1.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.2.5\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\t\"@babel/core\": \"^7.0.0\",\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@babel/core\": {\n\t\t\toptional: true\n\t\t},\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@babel/core\": \"^7.13.10\",\n\t\t\"@emotion/css\": \"11.9.0\",\n\t\t\"@emotion/css-prettifier\": \"1.0.1\",\n\t\t\"@emotion/server\": \"11.4.0\",\n\t\t\"@emotion/styled\": \"11.8.1\",\n\t\t\"@types/react\": \"^16.9.11\",\n\t\tdtslint: \"^4.2.1\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\"\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : useLayoutEffect;\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = useRef();\n useInsertionEffect(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffect(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n var rules = useInsertionEffectMaybe(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n var res = insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727 for some reason Jest evaluates modules twice if some consuming module gets mocked with jest.mock\n\n var isJest = typeof jest !== 'undefined';\n\n if (isBrowser && !isJest) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _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}","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default isPropValid;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport { useContext, createElement, Fragment } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : function useInsertionEffect(create) {\n create();\n};\nfunction useInsertionEffectMaybe(create) {\n\n useInsertionEffect(create);\n}\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectMaybe(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport default createStyled;\n","import '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport default newStyled;\n","/** @license MUI v5.6.1\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 */\nimport emStyled from '@emotion/styled';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n\n return stylesFactory(...styles);\n };\n }\n\n return stylesFactory;\n}\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"variant\"];\nimport { unstable_capitalize as capitalize } from '@mui/utils';\n\nfunction isEmpty(string) {\n return string.length === 0;\n}\n/**\n * Generates string classKey based on the properties provided. It starts with the\n * variant if defined, and then it appends all other properties in alphabetical order.\n * @param {object} props - the properties for which the classKey should be created.\n */\n\n\nexport default function propsToClassKey(props) {\n const {\n variant\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n let classKey = variant || '';\n Object.keys(other).sort().forEach(key => {\n if (key === 'color') {\n classKey += isEmpty(classKey) ? props[key] : capitalize(props[key]);\n } else {\n classKey += `${isEmpty(classKey) ? key : capitalize(key)}${capitalize(props[key].toString())}`;\n }\n });\n return classKey;\n}","import merge from '../merge';\nimport { styleFunctionMapping as defaultStyleFunctionMapping } from '../getThemeValue';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\n\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\n\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n} // eslint-disable-next-line @typescript-eslint/naming-convention\n\n\nexport function unstable_createStyleFunctionSx(styleFunctionMapping = defaultStyleFunctionMapping) {\n const propToStyleFunction = Object.keys(styleFunctionMapping).reduce((acc, styleFnName) => {\n styleFunctionMapping[styleFnName].filterProps.forEach(propName => {\n acc[propName] = styleFunctionMapping[styleFnName];\n });\n return acc;\n }, {});\n\n function getThemeValue(prop, value, theme) {\n const inputProps = {\n [prop]: value,\n theme\n };\n const styleFunction = propToStyleFunction[prop];\n return styleFunction ? styleFunction(inputProps) : {\n [prop]: value\n };\n }\n\n function styleFunctionSx(props) {\n const {\n sx,\n theme = {}\n } = props || {};\n\n if (!sx) {\n return null; // emotion & styled-components will neglect null\n }\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n\n\n function traverse(sxInput) {\n let sxObject = sxInput;\n\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n\n if (!sxObject) {\n return null;\n }\n\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (propToStyleFunction[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme));\n }\n }\n });\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"],\n _excluded2 = [\"theme\"],\n _excluded3 = [\"theme\"];\nimport styledEngineStyled from '@mui/styled-engine';\nimport { getDisplayName } from '@mui/utils';\nimport createTheme from './createTheme';\nimport propsToClassKey from './propsToClassKey';\nimport defaultStyleFunctionSx from './styleFunctionSx';\n\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\nconst getStyleOverrides = (name, theme) => {\n if (theme.components && theme.components[name] && theme.components[name].styleOverrides) {\n return theme.components[name].styleOverrides;\n }\n\n return null;\n};\n\nconst getVariantStyles = (name, theme) => {\n let variants = [];\n\n if (theme && theme.components && theme.components[name] && theme.components[name].variants) {\n variants = theme.components[name].variants;\n }\n\n const variantsStyles = {};\n variants.forEach(definition => {\n const key = propsToClassKey(definition.props);\n variantsStyles[key] = definition.style;\n });\n return variantsStyles;\n};\n\nconst variantsResolver = (props, styles, theme, name) => {\n var _theme$components, _theme$components$nam;\n\n const {\n ownerState = {}\n } = props;\n const variantsStyles = [];\n const themeVariants = theme == null ? void 0 : (_theme$components = theme.components) == null ? void 0 : (_theme$components$nam = _theme$components[name]) == null ? void 0 : _theme$components$nam.variants;\n\n if (themeVariants) {\n themeVariants.forEach(themeVariant => {\n let isMatch = true;\n Object.keys(themeVariant.props).forEach(key => {\n if (ownerState[key] !== themeVariant.props[key] && props[key] !== themeVariant.props[key]) {\n isMatch = false;\n }\n });\n\n if (isMatch) {\n variantsStyles.push(styles[propsToClassKey(themeVariant.props)]);\n }\n });\n }\n\n return variantsStyles;\n}; // Update /system/styled/#api in case if this changes\n\n\nexport function shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport const systemDefaultTheme = createTheme();\n\nconst lowercaseFirstLetter = string => {\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\n\nexport default function createStyled(input = {}) {\n const {\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp,\n styleFunctionSx = defaultStyleFunctionSx\n } = input;\n return (tag, inputOptions = {}) => {\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n overridesResolver\n } = inputOptions,\n options = _objectWithoutPropertiesLoose(inputOptions, _excluded); // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n\n\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver : componentSlot && componentSlot !== 'Root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n\n let shouldForwardPropOption = shouldForwardProp;\n\n if (componentSlot === 'Root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n }\n\n const defaultStyledResolver = styledEngineStyled(tag, _extends({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n\n const muiStyledResolver = (styleArg, ...expressions) => {\n const expressionsWithDefaultTheme = expressions ? expressions.map(stylesArg => {\n // On the server emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n // eslint-disable-next-line no-underscore-dangle\n return typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg ? _ref => {\n let {\n theme: themeInput\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded2);\n\n return stylesArg(_extends({\n theme: isEmpty(themeInput) ? defaultTheme : themeInput\n }, other));\n } : stylesArg;\n }) : [];\n let transformedStyleArg = styleArg;\n\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = isEmpty(props.theme) ? defaultTheme : props.theme;\n const styleOverrides = getStyleOverrides(componentName, theme);\n\n if (styleOverrides) {\n const resolvedStyleOverrides = {};\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(_extends({}, props, {\n theme\n })) : slotStyle;\n });\n return overridesResolver(props, resolvedStyleOverrides);\n }\n\n return null;\n });\n }\n\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = isEmpty(props.theme) ? defaultTheme : props.theme;\n return variantsResolver(props, getVariantStyles(componentName, theme), theme, componentName);\n });\n }\n\n if (!skipSx) {\n expressionsWithDefaultTheme.push(props => {\n const theme = isEmpty(props.theme) ? defaultTheme : props.theme;\n return styleFunctionSx(_extends({}, props, {\n theme\n }));\n });\n }\n\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill(''); // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n } else if (typeof styleArg === 'function' && // On the server emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n // eslint-disable-next-line no-underscore-dangle\n styleArg.__emotion_real !== styleArg) {\n // If the type is function, we need to define the default theme.\n transformedStyleArg = _ref2 => {\n let {\n theme: themeInput\n } = _ref2,\n other = _objectWithoutPropertiesLoose(_ref2, _excluded3);\n\n return styleArg(_extends({\n theme: isEmpty(themeInput) ? defaultTheme : themeInput\n }, other));\n };\n }\n\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n\n if (componentName) {\n displayName = `${componentName}${componentSlot || ''}`;\n }\n\n if (displayName === undefined) {\n displayName = `Styled(${getDisplayName(tag)})`;\n }\n\n Component.displayName = displayName;\n }\n\n return Component;\n };\n\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n\n return muiStyledResolver;\n };\n}","import { createStyled, shouldForwardProp } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nexport const rootShouldForwardProp = prop => shouldForwardProp(prop) && prop !== 'classes';\nexport const slotShouldForwardProp = shouldForwardProp;\nconst styled = createStyled({\n defaultTheme,\n rootShouldForwardProp\n});\nexport default styled;","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _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}","import { internal_resolveProps as resolveProps } from '@mui/utils';\nexport default function getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n\n if (!theme || !theme.components || !theme.components[name] || !theme.components[name].defaultProps) {\n return props;\n }\n\n return resolveProps(theme.components[name].defaultProps, props);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\n/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param {object} defaultProps\n * @param {object} props\n * @returns {object} resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = _extends({}, props);\n\n Object.keys(defaultProps).forEach(propName => {\n if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n });\n return output;\n}","import { useThemeProps as systemUseThemeProps } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nexport default function useThemeProps({\n props,\n name\n}) {\n return systemUseThemeProps({\n props,\n name,\n defaultTheme\n });\n}","import getThemeProps from './getThemeProps';\nimport useTheme from '../useTheme';\nexport default function useThemeProps({\n props,\n name,\n defaultTheme\n}) {\n const theme = useTheme(defaultTheme);\n const mergedProps = getThemeProps({\n theme,\n name,\n props\n });\n return mergedProps;\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import * as React from 'react';\nimport { createContext, useContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : function useInsertionEffect(create) {\n create();\n};\nfunction useInsertionEffectMaybe(create) {\n\n useInsertionEffect(create);\n}\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectMaybe(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, useTheme as a, ThemeProvider as b, createEmotionProps as c, withTheme as d, hasOwnProperty as h, useInsertionEffectMaybe as u, withEmotionCache as w };\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport { deepmerge } from '@mui/utils';\nimport merge from './merge'; // The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\n\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n\n};\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n\n return acc;\n }, {});\n }\n\n const output = styleFromPropValue(propValue);\n return output;\n}\n\nfunction breakpoints(styleFunction) {\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n\n return acc;\n }, null);\n return merge(base, extended);\n };\n\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\n\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n\n const breakpointsInOrder = breakpointsInput == null ? void 0 : (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n\n if (isBreakpointUnused) {\n delete acc[key];\n }\n\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n} // compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\n\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n\n if (keys.length === 0) {\n return breakpointValues;\n }\n\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous] || breakpointValues;\n previous = breakpoint;\n }\n\n return acc;\n }, {});\n}\nexport default breakpoints;","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n}; // memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\n\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nconst marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nconst paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n\n const themeSpacing = (_getPath = getPath(theme, themeKey)) != null ? _getPath : defaultValue;\n\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n\n return themeSpacing * abs;\n };\n }\n\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n\n return themeSpacing[abs];\n };\n }\n\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n\n if (propValue >= 0) {\n return transformed;\n }\n\n if (typeof transformed === 'number') {\n return -transformed;\n }\n\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\n\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\n\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\n\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\n\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\n\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n\n return cache[arg];\n };\n}","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import { deepmerge } from '@mui/utils';\n\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n\n });\n}\n\nexport default merge;","import { unstable_capitalize as capitalize } from '@mui/utils';\nexport default capitalize;","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/* 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","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","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","// The minimum length of the national significant number.\r\nexport const MIN_LENGTH_FOR_NSN = 2\r\n\r\n// The ITU says the maximum length should be 15,\r\n// but one can find longer numbers in Germany.\r\nexport const MAX_LENGTH_FOR_NSN = 17\r\n\r\n// The maximum length of the country calling code.\r\nexport const MAX_LENGTH_COUNTRY_CODE = 3\r\n\r\n// Digits accepted in phone numbers\r\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\r\nexport const VALID_DIGITS = '0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9'\r\n\r\n// `DASHES` will be right after the opening square bracket of the \"character class\"\r\nconst DASHES = '-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D'\r\nconst SLASHES = '\\uFF0F/'\r\nconst DOTS = '\\uFF0E.'\r\nexport const WHITESPACE = ' \\u00A0\\u00AD\\u200B\\u2060\\u3000'\r\nconst BRACKETS = '()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]'\r\n// export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\r\nconst TILDES = '~\\u2053\\u223C\\uFF5E'\r\n\r\n// Regular expression of acceptable punctuation found in phone numbers. This\r\n// excludes punctuation found as a leading character only. This consists of dash\r\n// characters, white space characters, full stops, slashes, square brackets,\r\n// parentheses and tildes. Full-width variants are also present.\r\nexport const VALID_PUNCTUATION = `${DASHES}${SLASHES}${DOTS}${WHITESPACE}${BRACKETS}${TILDES}`\r\n\r\nexport const PLUS_CHARS = '+\\uFF0B'\r\n// const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')","// https://stackoverflow.com/a/46971044/970769\r\nexport default class ParseError {\r\n constructor(code) {\r\n this.name = this.constructor.name\r\n this.message = code\r\n this.stack = (new Error(code)).stack\r\n }\r\n}\r\n\r\nParseError.prototype = Object.create(Error.prototype)\r\nParseError.prototype.constructor = ParseError","// Copy-pasted from:\r\n// https://github.com/substack/semver-compare/blob/master/index.js\r\n//\r\n// Inlining this function because some users reported issues with\r\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\r\n//\r\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\r\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\r\nexport default function(a, b) {\r\n a = a.split('-')\r\n b = b.split('-')\r\n var pa = a[0].split('.')\r\n var pb = b[0].split('.')\r\n for (var i = 0; i < 3; i++) {\r\n var na = Number(pa[i])\r\n var nb = Number(pb[i])\r\n if (na > nb) return 1\r\n if (nb > na) return -1\r\n if (!isNaN(na) && isNaN(nb)) return 1\r\n if (isNaN(na) && !isNaN(nb)) return -1\r\n }\r\n if (a[1] && b[1]) {\r\n return a[1] > b[1] ? 1 : (a[1] < b[1] ? -1 : 0)\r\n }\r\n return !a[1] && b[1] ? 1 : (a[1] && !b[1] ? -1 : 0)\r\n}","import compare from './tools/semver-compare'\r\n\r\n// Added \"possibleLengths\" and renamed\r\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\r\nconst V2 = '1.0.18'\r\n\r\n// Added \"idd_prefix\" and \"default_idd_prefix\".\r\nconst V3 = '1.2.0'\r\n\r\n// Moved `001` country code to \"nonGeographic\" section of metadata.\r\nconst V4 = '1.7.35'\r\n\r\nconst DEFAULT_EXT_PREFIX = ' ext. '\r\n\r\nconst CALLING_CODE_REG_EXP = /^\\d+$/\r\n\r\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\r\nexport default class Metadata {\r\n\tconstructor(metadata) {\r\n\t\tvalidateMetadata(metadata)\r\n\t\tthis.metadata = metadata\r\n\t\tsetVersion.call(this, metadata)\r\n\t}\r\n\r\n\tgetCountries() {\r\n\t\treturn Object.keys(this.metadata.countries).filter(_ => _ !== '001')\r\n\t}\r\n\r\n\tgetCountryMetadata(countryCode) {\r\n\t\treturn this.metadata.countries[countryCode]\r\n\t}\r\n\r\n\tnonGeographic() {\r\n\t\tif (this.v1 || this.v2 || this.v3) return\r\n\t\t// `nonGeographical` was a typo.\r\n\t\t// It's present in metadata generated from `1.7.35` to `1.7.37`.\r\n\t\treturn this.metadata.nonGeographic || this.metadata.nonGeographical\r\n\t}\r\n\r\n\thasCountry(country) {\r\n\t\treturn this.getCountryMetadata(country) !== undefined\r\n\t}\r\n\r\n\thasCallingCode(callingCode) {\r\n\t\tif (this.getCountryCodesForCallingCode(callingCode)) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\tif (this.nonGeographic()[callingCode]) {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// A hacky workaround for old custom metadata (generated before V4).\r\n\t\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\t\tif (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisNonGeographicCallingCode(callingCode) {\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\treturn this.nonGeographic()[callingCode] ? true : false\r\n\t\t} else {\r\n\t\t\treturn this.getCountryCodesForCallingCode(callingCode) ? false : true\r\n\t\t}\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tcountry(countryCode) {\r\n\t\treturn this.selectNumberingPlan(countryCode)\r\n\t}\r\n\r\n\tselectNumberingPlan(countryCode, callingCode) {\r\n\t\t// Supports just passing `callingCode` as the first argument.\r\n\t\tif (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\r\n\t\t\tcallingCode = countryCode\r\n\t\t\tcountryCode = null\r\n\t\t}\r\n\t\tif (countryCode && countryCode !== '001') {\r\n\t\t\tif (!this.hasCountry(countryCode)) {\r\n\t\t\t\tthrow new Error(`Unknown country: ${countryCode}`)\r\n\t\t\t}\r\n\t\t\tthis.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this)\r\n\t\t} else if (callingCode) {\r\n\t\t\tif (!this.hasCallingCode(callingCode)) {\r\n\t\t\t\tthrow new Error(`Unknown calling code: ${callingCode}`)\r\n\t\t\t}\r\n\t\t\tthis.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this)\r\n\t\t} else {\r\n\t\t\tthis.numberingPlan = undefined\r\n\t\t}\r\n\t\treturn this\r\n\t}\r\n\r\n\tgetCountryCodesForCallingCode(callingCode) {\r\n\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\tif (countryCodes) {\r\n\t\t\t// Metadata before V4 included \"non-geographic entity\" calling codes\r\n\t\t\t// inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\r\n\t\t\t// Now the semantics of `country_calling_codes` has changed:\r\n\t\t\t// it's specifically for \"countries\" now.\r\n\t\t\t// Older versions of custom metadata will simply skip parsing\r\n\t\t\t// \"non-geographic entity\" phone numbers with new versions\r\n\t\t\t// of this library: it's not considered a bug,\r\n\t\t\t// because such numbers are extremely rare,\r\n\t\t\t// and developers extremely rarely use custom metadata.\r\n\t\t\tif (countryCodes.length === 1 && countryCodes[0].length === 3) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\treturn countryCodes\r\n\t\t}\r\n\t}\r\n\r\n\tgetCountryCodeForCallingCode(callingCode) {\r\n\t\tconst countryCodes = this.getCountryCodesForCallingCode(callingCode)\r\n\t\tif (countryCodes) {\r\n\t\t\treturn countryCodes[0]\r\n\t\t}\r\n\t}\r\n\r\n\tgetNumberingPlanMetadata(callingCode) {\r\n\t\tconst countryCode = this.getCountryCodeForCallingCode(callingCode)\r\n\t\tif (countryCode) {\r\n\t\t\treturn this.getCountryMetadata(countryCode)\r\n\t\t}\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\tconst metadata = this.nonGeographic()[callingCode]\r\n\t\t\tif (metadata) {\r\n\t\t\t\treturn metadata\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// A hacky workaround for old custom metadata (generated before V4).\r\n\t\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\t\tif (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\r\n\t\t\t\treturn this.metadata.countries['001']\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tcountryCallingCode() {\r\n\t\treturn this.numberingPlan.callingCode()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tIDDPrefix() {\r\n\t\treturn this.numberingPlan.IDDPrefix()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tdefaultIDDPrefix() {\r\n\t\treturn this.numberingPlan.defaultIDDPrefix()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalNumberPattern() {\r\n\t\treturn this.numberingPlan.nationalNumberPattern()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tpossibleLengths() {\r\n\t\treturn this.numberingPlan.possibleLengths()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tformats() {\r\n\t\treturn this.numberingPlan.formats()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalPrefixForParsing() {\r\n\t\treturn this.numberingPlan.nationalPrefixForParsing()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalPrefixTransformRule() {\r\n\t\treturn this.numberingPlan.nationalPrefixTransformRule()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tleadingDigits() {\r\n\t\treturn this.numberingPlan.leadingDigits()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\thasTypes() {\r\n\t\treturn this.numberingPlan.hasTypes()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\ttype(type) {\r\n\t\treturn this.numberingPlan.type(type)\r\n\t}\r\n\r\n\t// Deprecated.\r\n\text() {\r\n\t\treturn this.numberingPlan.ext()\r\n\t}\r\n\r\n\tcountryCallingCodes() {\r\n\t\tif (this.v1) return this.metadata.country_phone_code_to_countries\r\n\t\treturn this.metadata.country_calling_codes\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tchooseCountryByCountryCallingCode(callingCode) {\r\n\t\treturn this.selectNumberingPlan(callingCode)\r\n\t}\r\n\r\n\thasSelectedNumberingPlan() {\r\n\t\treturn this.numberingPlan !== undefined\r\n\t}\r\n}\r\n\r\nclass NumberingPlan {\r\n\tconstructor(metadata, globalMetadataObject) {\r\n\t\tthis.globalMetadataObject = globalMetadataObject\r\n\t\tthis.metadata = metadata\r\n\t\tsetVersion.call(this, globalMetadataObject.metadata)\r\n\t}\r\n\r\n\tcallingCode() {\r\n\t\treturn this.metadata[0]\r\n\t}\r\n\r\n\t// Formatting information for regions which share\r\n\t// a country calling code is contained by only one region\r\n\t// for performance reasons. For example, for NANPA region\r\n\t// (\"North American Numbering Plan Administration\",\r\n\t// which includes USA, Canada, Cayman Islands, Bahamas, etc)\r\n\t// it will be contained in the metadata for `US`.\r\n\tgetDefaultCountryMetadataForRegion() {\r\n\t\treturn this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode())\r\n\t}\r\n\r\n\t// Is always present.\r\n\tIDDPrefix() {\r\n\t\tif (this.v1 || this.v2) return\r\n\t\treturn this.metadata[1]\r\n\t}\r\n\r\n\t// Is only present when a country supports multiple IDD prefixes.\r\n\tdefaultIDDPrefix() {\r\n\t\tif (this.v1 || this.v2) return\r\n\t\treturn this.metadata[12]\r\n\t}\r\n\r\n\tnationalNumberPattern() {\r\n\t\tif (this.v1 || this.v2) return this.metadata[1]\r\n\t\treturn this.metadata[2]\r\n\t}\r\n\r\n\t// Is always present.\r\n\tpossibleLengths() {\r\n\t\tif (this.v1) return\r\n\t\treturn this.metadata[this.v2 ? 2 : 3]\r\n\t}\r\n\r\n\t_getFormats(metadata) {\r\n\t\treturn metadata[this.v1 ? 2 : this.v2 ? 3 : 4]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// formats are all stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tformats() {\r\n\t\tconst formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || []\r\n\t\treturn formats.map(_ => new Format(_, this))\r\n\t}\r\n\r\n\tnationalPrefix() {\r\n\t\treturn this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5]\r\n\t}\r\n\r\n\t_getNationalPrefixFormattingRule(metadata) {\r\n\t\treturn metadata[this.v1 ? 4 : this.v2 ? 5 : 6]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// national prefix formatting rule is stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tnationalPrefixFormattingRule() {\r\n\t\treturn this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion())\r\n\t}\r\n\r\n\t_nationalPrefixForParsing() {\r\n\t\treturn this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7]\r\n\t}\r\n\r\n\tnationalPrefixForParsing() {\r\n\t\t// If `national_prefix_for_parsing` is not set explicitly,\r\n\t\t// then infer it from `national_prefix` (if any)\r\n\t\treturn this._nationalPrefixForParsing() || this.nationalPrefix()\r\n\t}\r\n\r\n\tnationalPrefixTransformRule() {\r\n\t\treturn this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8]\r\n\t}\r\n\r\n\t_getNationalPrefixIsOptionalWhenFormatting() {\r\n\t\treturn !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// \"national prefix is optional when formatting\" flag is\r\n\t// stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tnationalPrefixIsOptionalWhenFormattingInNationalFormat() {\r\n\t\treturn this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) ||\r\n\t\t\tthis._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion())\r\n\t}\r\n\r\n\tleadingDigits() {\r\n\t\treturn this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10]\r\n\t}\r\n\r\n\ttypes() {\r\n\t\treturn this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11]\r\n\t}\r\n\r\n\thasTypes() {\r\n\t\t// Versions 1.2.0 - 1.2.4: can be `[]`.\r\n\t\t/* istanbul ignore next */\r\n\t\tif (this.types() && this.types().length === 0) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\t// Versions <= 1.2.4: can be `undefined`.\r\n\t\t// Version >= 1.2.5: can be `0`.\r\n\t\treturn !!this.types()\r\n\t}\r\n\r\n\ttype(type) {\r\n\t\tif (this.hasTypes() && getType(this.types(), type)) {\r\n\t\t\treturn new Type(getType(this.types(), type), this)\r\n\t\t}\r\n\t}\r\n\r\n\text() {\r\n\t\tif (this.v1 || this.v2) return DEFAULT_EXT_PREFIX\r\n\t\treturn this.metadata[13] || DEFAULT_EXT_PREFIX\r\n\t}\r\n}\r\n\r\nclass Format {\r\n\tconstructor(format, metadata) {\r\n\t\tthis._format = format\r\n\t\tthis.metadata = metadata\r\n\t}\r\n\r\n\tpattern() {\r\n\t\treturn this._format[0]\r\n\t}\r\n\r\n\tformat() {\r\n\t\treturn this._format[1]\r\n\t}\r\n\r\n\tleadingDigitsPatterns() {\r\n\t\treturn this._format[2] || []\r\n\t}\r\n\r\n\tnationalPrefixFormattingRule() {\r\n\t\treturn this._format[3] || this.metadata.nationalPrefixFormattingRule()\r\n\t}\r\n\r\n\tnationalPrefixIsOptionalWhenFormattingInNationalFormat() {\r\n\t\treturn !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat()\r\n\t}\r\n\r\n\tnationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\r\n\t\t// National prefix is omitted if there's no national prefix formatting rule\r\n\t\t// set for this country, or when the national prefix formatting rule\r\n\t\t// contains no national prefix itself, or when this rule is set but\r\n\t\t// national prefix is optional for this phone number format\r\n\t\t// (and it is not enforced explicitly)\r\n\t\treturn this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat()\r\n\t}\r\n\r\n\t// Checks whether national prefix formatting rule contains national prefix.\r\n\tusesNationalPrefix() {\r\n\t\treturn this.nationalPrefixFormattingRule() &&\r\n\t\t\t// Check that national prefix formatting rule is not a \"dummy\" one.\r\n\t\t\t!FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule())\r\n\t\t\t// In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\r\n\t\t\t// when `national_prefix_formatting_rule` is not present.\r\n\t\t\t// So, `true` or `false` are returned explicitly here, so that\r\n\t\t\t// `0` number isn't returned.\r\n\t\t\t? true\r\n\t\t\t: false\r\n\t}\r\n\r\n\tinternationalFormat() {\r\n\t\treturn this._format[5] || this.format()\r\n\t}\r\n}\r\n\r\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\r\nconst FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/\r\n\r\nclass Type {\r\n\tconstructor(type, metadata) {\r\n\t\tthis.type = type\r\n\t\tthis.metadata = metadata\r\n\t}\r\n\r\n\tpattern() {\r\n\t\tif (this.metadata.v1) return this.type\r\n\t\treturn this.type[0]\r\n\t}\r\n\r\n\tpossibleLengths() {\r\n\t\tif (this.metadata.v1) return\r\n\t\treturn this.type[1] || this.metadata.possibleLengths()\r\n\t}\r\n}\r\n\r\nfunction getType(types, type) {\r\n\tswitch (type) {\r\n\t\tcase 'FIXED_LINE':\r\n\t\t\treturn types[0]\r\n\t\tcase 'MOBILE':\r\n\t\t\treturn types[1]\r\n\t\tcase 'TOLL_FREE':\r\n\t\t\treturn types[2]\r\n\t\tcase 'PREMIUM_RATE':\r\n\t\t\treturn types[3]\r\n\t\tcase 'PERSONAL_NUMBER':\r\n\t\t\treturn types[4]\r\n\t\tcase 'VOICEMAIL':\r\n\t\t\treturn types[5]\r\n\t\tcase 'UAN':\r\n\t\t\treturn types[6]\r\n\t\tcase 'PAGER':\r\n\t\t\treturn types[7]\r\n\t\tcase 'VOIP':\r\n\t\t\treturn types[8]\r\n\t\tcase 'SHARED_COST':\r\n\t\t\treturn types[9]\r\n\t}\r\n}\r\n\r\nexport function validateMetadata(metadata) {\r\n\tif (!metadata) {\r\n\t\tthrow new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.')\r\n\t}\r\n\r\n\t// `country_phone_code_to_countries` was renamed to\r\n\t// `country_calling_codes` in `1.0.18`.\r\n\tif (!is_object(metadata) || !is_object(metadata.countries)) {\r\n\t\tthrow new Error(`[libphonenumber-js] \\`metadata\\` argument was passed but it's not a valid metadata. Must be an object having \\`.countries\\` child object property. Got ${is_object(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + type_of(metadata) + ': ' + metadata}.`)\r\n\t}\r\n}\r\n\r\n// Babel transforms `typeof` into some \"branches\"\r\n// so istanbul will show this as \"branch not covered\".\r\n/* istanbul ignore next */\r\nconst is_object = _ => typeof _ === 'object'\r\n\r\n// Babel transforms `typeof` into some \"branches\"\r\n// so istanbul will show this as \"branch not covered\".\r\n/* istanbul ignore next */\r\nconst type_of = _ => typeof _\r\n\r\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\r\nexport function getExtPrefix(country, metadata) {\r\n\tmetadata = new Metadata(metadata)\r\n\tif (metadata.hasCountry(country)) {\r\n\t\treturn metadata.country(country).ext()\r\n\t}\r\n\treturn DEFAULT_EXT_PREFIX\r\n}\r\n\r\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\r\nexport function getCountryCallingCode(country, metadata) {\r\n\tmetadata = new Metadata(metadata)\r\n\tif (metadata.hasCountry(country)) {\r\n\t\treturn metadata.country(country).countryCallingCode()\r\n\t}\r\n\tthrow new Error(`Unknown country: ${country}`)\r\n}\r\n\r\nexport function isSupportedCountry(country, metadata) {\r\n\t// metadata = new Metadata(metadata)\r\n\t// return metadata.hasCountry(country)\r\n\treturn metadata.countries[country] !== undefined\r\n}\r\n\r\nfunction setVersion(metadata) {\r\n\tconst { version } = metadata\r\n\tif (typeof version === 'number') {\r\n\t\tthis.v1 = version === 1\r\n\t\tthis.v2 = version === 2\r\n\t\tthis.v3 = version === 3\r\n\t\tthis.v4 = version === 4\r\n\t} else {\r\n\t\tif (!version) {\r\n\t\t\tthis.v1 = true\r\n\t\t} else if (compare(version, V3) === -1) {\r\n\t\t\tthis.v2 = true\r\n\t\t} else if (compare(version, V4) === -1) {\r\n\t\t\tthis.v3 = true\r\n\t\t} else {\r\n\t\t\tthis.v4 = true\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\r\n// function isCountryCode(countryCode) {\r\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\r\n// }","import { VALID_DIGITS } from '../../constants'\r\n\r\n// The RFC 3966 format for extensions.\r\nconst RFC3966_EXTN_PREFIX = ';ext='\r\n\r\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\r\nconst getExtensionDigitsPattern = (maxLength) => `([${VALID_DIGITS}]{1,${maxLength}})`\r\n\r\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\r\nexport default function createExtensionPattern(purpose) {\r\n\t// We cap the maximum length of an extension based on the ambiguity of the way\r\n\t// the extension is prefixed. As per ITU, the officially allowed length for\r\n\t// extensions is actually 40, but we don't support this since we haven't seen real\r\n\t// examples and this introduces many false interpretations as the extension labels\r\n\t// are not standardized.\r\n\t/** @type {string} */\r\n\tvar extLimitAfterExplicitLabel = '20';\r\n\t/** @type {string} */\r\n\tvar extLimitAfterLikelyLabel = '15';\r\n\t/** @type {string} */\r\n\tvar extLimitAfterAmbiguousChar = '9';\r\n\t/** @type {string} */\r\n\tvar extLimitWhenNotSure = '6';\r\n\r\n\t/** @type {string} */\r\n\tvar possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\u00A0\\\\t,]*\";\r\n\t// Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\r\n\t/** @type {string} */\r\n\tvar possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\u00A0\\\\t,-]*\";\r\n\t/** @type {string} */\r\n\tvar optionalExtnSuffix = \"#?\";\r\n\r\n\t// Here the extension is called out in more explicit way, i.e mentioning it obvious\r\n\t// patterns like \"ext.\".\r\n\t/** @type {string} */\r\n\tvar explicitExtLabels =\r\n\t \"(?:e?xt(?:ensi(?:o\\u0301?|\\u00F3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\";\r\n\t// One-character symbols that can be used to indicate an extension, and less\r\n\t// commonly used or more ambiguous extension labels.\r\n\t/** @type {string} */\r\n\tvar ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\";\r\n\t// When extension is not separated clearly.\r\n\t/** @type {string} */\r\n\tvar ambiguousSeparator = \"[- ]+\";\r\n\t// This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\r\n\t// comma as extension label may have it.\r\n\t/** @type {string} */\r\n\tvar possibleSeparatorsNumberExtLabelNoComma = \"[ \\u00A0\\\\t]*\";\r\n\t// \",,\" is commonly used for auto dialling the extension when connected. First\r\n\t// comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\r\n\t// not repeat it here. Semi-colon works in Iphone and Android also to pop up a\r\n\t// button with the extension number following.\r\n\t/** @type {string} */\r\n\tvar autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\r\n\r\n\t/** @type {string} */\r\n\tvar rfcExtn = RFC3966_EXTN_PREFIX\r\n\t + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\r\n\t/** @type {string} */\r\n\tvar explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels\r\n\t + possibleCharsAfterExtLabel\r\n\t + getExtensionDigitsPattern(extLimitAfterExplicitLabel)\r\n\t + optionalExtnSuffix;\r\n\t/** @type {string} */\r\n\tvar ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels\r\n\t + possibleCharsAfterExtLabel\r\n\t+ getExtensionDigitsPattern(extLimitAfterAmbiguousChar)\r\n\t+ optionalExtnSuffix;\r\n\t/** @type {string} */\r\n\tvar americanStyleExtnWithSuffix = ambiguousSeparator\r\n\t+ getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\r\n\r\n\t/** @type {string} */\r\n\tvar autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma\r\n\t + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel\r\n\t + getExtensionDigitsPattern(extLimitAfterLikelyLabel)\r\n\t+ optionalExtnSuffix;\r\n\t/** @type {string} */\r\n\tvar onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma\r\n\t + \"(?:,)+\" + possibleCharsAfterExtLabel\r\n\t + getExtensionDigitsPattern(extLimitAfterAmbiguousChar)\r\n\t + optionalExtnSuffix;\r\n\r\n\t// The first regular expression covers RFC 3966 format, where the extension is added\r\n\t// using \";ext=\". The second more generic where extension is mentioned with explicit\r\n\t// labels like \"ext:\". In both the above cases we allow more numbers in extension than\r\n\t// any other extension labels. The third one captures when single character extension\r\n\t// labels or less commonly used labels are used. In such cases we capture fewer\r\n\t// extension digits in order to reduce the chance of falsely interpreting two\r\n\t// numbers beside each other as a number + extension. The fourth one covers the\r\n\t// special case of American numbers where the extension is written with a hash\r\n\t// at the end, such as \"- 503#\". The fifth one is exclusively for extension\r\n\t// autodialling formats which are used when dialling and in this case we accept longer\r\n\t// extensions. The last one is more liberal on the number of commas that acts as\r\n\t// extension labels, so we have a strict cap on the number of digits in such extensions.\r\n\treturn rfcExtn + \"|\"\r\n\t + explicitExtn + \"|\"\r\n\t + ambiguousExtn + \"|\"\r\n\t + americanStyleExtnWithSuffix + \"|\"\r\n\t + autoDiallingExtn + \"|\"\r\n\t + onlyCommasExtn;\r\n}","import {\r\n\tMIN_LENGTH_FOR_NSN,\r\n\tVALID_DIGITS,\r\n\tVALID_PUNCTUATION,\r\n\tPLUS_CHARS\r\n} from '../constants'\r\n\r\nimport createExtensionPattern from './extension/createExtensionPattern'\r\n\r\n// Regular expression of viable phone numbers. This is location independent.\r\n// Checks we have at least three leading digits, and only valid punctuation,\r\n// alpha characters and digits in the phone number. Does not include extension\r\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\r\n// used as a placeholder for carrier codes, for example in Brazilian phone\r\n// numbers. We also allow multiple '+' characters at the start.\r\n//\r\n// Corresponds to the following:\r\n// [digits]{minLengthNsn}|\r\n// plus_sign*\r\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\r\n//\r\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\r\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\r\n// The second expression restricts the number of digits to three or more, but\r\n// then allows them to be in international form, and to have alpha-characters\r\n// and punctuation. We split up the two reg-exes here and combine them when\r\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\r\n// with ^ and append $ to each branch.\r\n//\r\n// \"Note VALID_PUNCTUATION starts with a -,\r\n// so must be the first in the range\" (c) Google devs.\r\n// (wtf did they mean by saying that; probably nothing)\r\n//\r\nconst MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'\r\n//\r\n// And this is the second reg-exp:\r\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\r\n//\r\nexport const VALID_PHONE_NUMBER =\r\n\t'[' + PLUS_CHARS + ']{0,1}' +\r\n\t'(?:' +\r\n\t\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t\t'[' + VALID_DIGITS + ']' +\r\n\t'){3,}' +\r\n\t'[' +\r\n\t\tVALID_PUNCTUATION +\r\n\t\tVALID_DIGITS +\r\n\t']*'\r\n\r\n// This regular expression isn't present in Google's `libphonenumber`\r\n// and is only used to determine whether the phone number being input\r\n// is too short for it to even consider it a \"valid\" number.\r\n// This is just a way to differentiate between a really invalid phone\r\n// number like \"abcde\" and a valid phone number that a user has just\r\n// started inputting, like \"+1\" or \"1\": both these cases would be\r\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\r\n// library can provide a more detailed error message — whether it's\r\n// really \"not a number\", or is it just a start of a valid phone number.\r\nconst VALID_PHONE_NUMBER_START_REG_EXP = new RegExp(\r\n\t'^' +\r\n\t'[' + PLUS_CHARS + ']{0,1}' +\r\n\t'(?:' +\r\n\t\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t\t'[' + VALID_DIGITS + ']' +\r\n\t'){1,2}' +\r\n\t'$'\r\n, 'i')\r\n\r\nexport const VALID_PHONE_NUMBER_WITH_EXTENSION =\r\n\tVALID_PHONE_NUMBER +\r\n\t// Phone number extensions\r\n\t'(?:' + createExtensionPattern() + ')?'\r\n\r\n// The combined regular expression for valid phone numbers:\r\n//\r\nconst VALID_PHONE_NUMBER_PATTERN = new RegExp(\r\n\t// Either a short two-digit-only phone number\r\n\t'^' +\r\n\t\tMIN_LENGTH_PHONE_NUMBER_PATTERN +\r\n\t'$' +\r\n\t'|' +\r\n\t// Or a longer fully parsed phone number (min 3 characters)\r\n\t'^' +\r\n\t\tVALID_PHONE_NUMBER_WITH_EXTENSION +\r\n\t'$'\r\n, 'i')\r\n\r\n// Checks to see if the string of characters could possibly be a phone number at\r\n// all. At the moment, checks to see that the string begins with at least 2\r\n// digits, ignoring any punctuation commonly found in phone numbers. This method\r\n// does not require the number to be normalized in advance - but does assume\r\n// that leading non-number symbols have been removed, such as by the method\r\n// `extract_possible_number`.\r\n//\r\nexport default function isViablePhoneNumber(number) {\r\n\treturn number.length >= MIN_LENGTH_FOR_NSN &&\r\n\t\tVALID_PHONE_NUMBER_PATTERN.test(number)\r\n}\r\n\r\n// This is just a way to differentiate between a really invalid phone\r\n// number like \"abcde\" and a valid phone number that a user has just\r\n// started inputting, like \"+1\" or \"1\": both these cases would be\r\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\r\n// library can provide a more detailed error message — whether it's\r\n// really \"not a number\", or is it just a start of a valid phone number.\r\nexport function isViablePhoneNumberStart(number) {\r\n\treturn VALID_PHONE_NUMBER_START_REG_EXP.test(number)\r\n}","import createExtensionPattern from './createExtensionPattern'\r\n\r\n// Regexp of all known extension prefixes used by different regions followed by\r\n// 1 or more valid digits, for use when parsing.\r\nconst EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i')\r\n\r\n// Strips any extension (as in, the part of the number dialled after the call is\r\n// connected, usually indicated with extn, ext, x or similar) from the end of\r\n// the number, and returns it.\r\nexport default function extractExtension(number) {\r\n\tconst start = number.search(EXTN_PATTERN)\r\n\tif (start < 0) {\r\n\t\treturn {}\r\n\t}\r\n\t// If we find a potential extension, and the number preceding this is a viable\r\n\t// number, we assume it is an extension.\r\n\tconst numberWithoutExtension = number.slice(0, start)\r\n\tconst matches = number.match(EXTN_PATTERN)\r\n\tlet i = 1\r\n\twhile (i < matches.length) {\r\n\t\tif (matches[i]) {\r\n\t\t\treturn {\r\n\t\t\t\tnumber: numberWithoutExtension,\r\n\t\t\t\text: matches[i]\r\n\t\t\t}\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n}","// These mappings map a character (key) to a specific digit that should\r\n// replace it for normalization purposes. Non-European digits that\r\n// may be used in phone numbers are mapped to a European equivalent.\r\n//\r\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n//\r\nexport const DIGITS = {\r\n\t'0': '0',\r\n\t'1': '1',\r\n\t'2': '2',\r\n\t'3': '3',\r\n\t'4': '4',\r\n\t'5': '5',\r\n\t'6': '6',\r\n\t'7': '7',\r\n\t'8': '8',\r\n\t'9': '9',\r\n\t'\\uFF10': '0', // Fullwidth digit 0\r\n\t'\\uFF11': '1', // Fullwidth digit 1\r\n\t'\\uFF12': '2', // Fullwidth digit 2\r\n\t'\\uFF13': '3', // Fullwidth digit 3\r\n\t'\\uFF14': '4', // Fullwidth digit 4\r\n\t'\\uFF15': '5', // Fullwidth digit 5\r\n\t'\\uFF16': '6', // Fullwidth digit 6\r\n\t'\\uFF17': '7', // Fullwidth digit 7\r\n\t'\\uFF18': '8', // Fullwidth digit 8\r\n\t'\\uFF19': '9', // Fullwidth digit 9\r\n\t'\\u0660': '0', // Arabic-indic digit 0\r\n\t'\\u0661': '1', // Arabic-indic digit 1\r\n\t'\\u0662': '2', // Arabic-indic digit 2\r\n\t'\\u0663': '3', // Arabic-indic digit 3\r\n\t'\\u0664': '4', // Arabic-indic digit 4\r\n\t'\\u0665': '5', // Arabic-indic digit 5\r\n\t'\\u0666': '6', // Arabic-indic digit 6\r\n\t'\\u0667': '7', // Arabic-indic digit 7\r\n\t'\\u0668': '8', // Arabic-indic digit 8\r\n\t'\\u0669': '9', // Arabic-indic digit 9\r\n\t'\\u06F0': '0', // Eastern-Arabic digit 0\r\n\t'\\u06F1': '1', // Eastern-Arabic digit 1\r\n\t'\\u06F2': '2', // Eastern-Arabic digit 2\r\n\t'\\u06F3': '3', // Eastern-Arabic digit 3\r\n\t'\\u06F4': '4', // Eastern-Arabic digit 4\r\n\t'\\u06F5': '5', // Eastern-Arabic digit 5\r\n\t'\\u06F6': '6', // Eastern-Arabic digit 6\r\n\t'\\u06F7': '7', // Eastern-Arabic digit 7\r\n\t'\\u06F8': '8', // Eastern-Arabic digit 8\r\n\t'\\u06F9': '9' // Eastern-Arabic digit 9\r\n}\r\n\r\nexport function parseDigit(character) {\r\n\treturn DIGITS[character]\r\n}\r\n\r\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\r\nexport default function parseDigits(string) {\r\n\tlet result = ''\r\n\t// Using `.split('')` here instead of normal `for ... of`\r\n\t// because the importing application doesn't neccessarily include an ES6 polyfill.\r\n\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\r\n\t// (the ones consisting of four bytes) but digits\r\n\t// (including non-European ones) don't fall into that range\r\n\t// so such \"exotic\" characters would be discarded anyway.\r\n\tfor (const character of string.split('')) {\r\n\t\tconst digit = parseDigit(character)\r\n\t\tif (digit) {\r\n\t\t\tresult += digit\r\n\t\t}\r\n\t}\r\n\treturn result\r\n}","import { parseDigit } from './helpers/parseDigits'\r\n\r\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\r\nexport default function parseIncompletePhoneNumber(string) {\r\n\tlet result = ''\r\n\t// Using `.split('')` here instead of normal `for ... of`\r\n\t// because the importing application doesn't neccessarily include an ES6 polyfill.\r\n\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\r\n\t// (the ones consisting of four bytes) but digits\r\n\t// (including non-European ones) don't fall into that range\r\n\t// so such \"exotic\" characters would be discarded anyway.\r\n\tfor (const character of string.split('')) {\r\n\t\tresult += parsePhoneNumberCharacter(character, result) || ''\r\n\t}\r\n\treturn result\r\n}\r\n\r\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {object} meta - Optional custom use-case-specific metadata.\r\n * @return {string?} The parsed character.\r\n */\r\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters) {\r\n\t// Only allow a leading `+`.\r\n\tif (character === '+') {\r\n\t\t// If this `+` is not the first parsed character\r\n\t\t// then discard it.\r\n\t\tif (prevParsedCharacters) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\treturn '+'\r\n\t}\r\n\t// Allow digits.\r\n\treturn parseDigit(character)\r\n}","import mergeArrays from './mergeArrays'\r\n\r\nexport default function checkNumberLength(nationalNumber, metadata) {\r\n\treturn checkNumberLengthForType(nationalNumber, undefined, metadata)\r\n}\r\n\r\n// Checks whether a number is possible for the country based on its length.\r\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\r\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\r\n\tconst type_info = metadata.type(type)\r\n\r\n\t// There should always be \"\" set for every type element.\r\n\t// This is declared in the XML schema.\r\n\t// For size efficiency, where a sub-description (e.g. fixed-line)\r\n\t// has the same \"\" as the \"general description\", this is missing,\r\n\t// so we fall back to the \"general description\". Where no numbers of the type\r\n\t// exist at all, there is one possible length (-1) which is guaranteed\r\n\t// not to match the length of any real phone number.\r\n\tlet possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths()\r\n\t// let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\r\n\r\n\t// Metadata before version `1.0.18` didn't contain `possible_lengths`.\r\n\tif (!possible_lengths) {\r\n\t\treturn 'IS_POSSIBLE'\r\n\t}\r\n\r\n\tif (type === 'FIXED_LINE_OR_MOBILE') {\r\n\t\t// No such country in metadata.\r\n\t\t/* istanbul ignore next */\r\n\t\tif (!metadata.type('FIXED_LINE')) {\r\n\t\t\t// The rare case has been encountered where no fixedLine data is available\r\n\t\t\t// (true for some non-geographic entities), so we just check mobile.\r\n\t\t\treturn checkNumberLengthForType(nationalNumber, 'MOBILE', metadata)\r\n\t\t}\r\n\r\n\t\tconst mobile_type = metadata.type('MOBILE')\r\n\t\tif (mobile_type) {\r\n\t\t\t// Merge the mobile data in if there was any. \"Concat\" creates a new\r\n\t\t\t// array, it doesn't edit possible_lengths in place, so we don't need a copy.\r\n\t\t\t// Note that when adding the possible lengths from mobile, we have\r\n\t\t\t// to again check they aren't empty since if they are this indicates\r\n\t\t\t// they are the same as the general desc and should be obtained from there.\r\n\t\t\tpossible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths())\r\n\t\t\t// The current list is sorted; we need to merge in the new list and\r\n\t\t\t// re-sort (duplicates are okay). Sorting isn't so expensive because\r\n\t\t\t// the lists are very small.\r\n\r\n\t\t\t// if (local_lengths) {\r\n\t\t\t// \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\r\n\t\t\t// } else {\r\n\t\t\t// \tlocal_lengths = mobile_type.possibleLengthsLocal()\r\n\t\t\t// }\r\n\t\t}\r\n\t}\r\n\t// If the type doesn't exist then return 'INVALID_LENGTH'.\r\n\telse if (type && !type_info) {\r\n\t\treturn 'INVALID_LENGTH'\r\n\t}\r\n\r\n\tconst actual_length = nationalNumber.length\r\n\r\n\t// In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\r\n\t// // This is safe because there is never an overlap beween the possible lengths\r\n\t// // and the local-only lengths; this is checked at build time.\r\n\t// if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\r\n\t// {\r\n\t// \treturn 'IS_POSSIBLE_LOCAL_ONLY'\r\n\t// }\r\n\r\n\tconst minimum_length = possible_lengths[0]\r\n\r\n\tif (minimum_length === actual_length) {\r\n\t\treturn 'IS_POSSIBLE'\r\n\t}\r\n\r\n\tif (minimum_length > actual_length) {\r\n\t\treturn 'TOO_SHORT'\r\n\t}\r\n\r\n\tif (possible_lengths[possible_lengths.length - 1] < actual_length) {\r\n\t\treturn 'TOO_LONG'\r\n\t}\r\n\r\n\t// We skip the first element since we've already checked it.\r\n\treturn possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH'\r\n}","/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\r\nexport default function mergeArrays(a, b) {\r\n\tconst merged = a.slice()\r\n\r\n\tfor (const element of b) {\r\n\t\tif (a.indexOf(element) < 0) {\r\n\t\t\tmerged.push(element)\r\n\t\t}\r\n\t}\r\n\r\n\treturn merged.sort((a, b) => a - b)\r\n\r\n\t// ES6 version, requires Set polyfill.\r\n\t// let merged = new Set(a)\r\n\t// for (const element of b) {\r\n\t// \tmerged.add(i)\r\n\t// }\r\n\t// return Array.from(merged).sort((a, b) => a - b)\r\n}","import Metadata from './metadata'\r\nimport checkNumberLength from './helpers/checkNumberLength'\r\n\r\nexport default function isPossiblePhoneNumber(input, options, metadata) {\r\n\t/* istanbul ignore if */\r\n\tif (options === undefined) {\r\n\t\toptions = {}\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tif (options.v2) {\r\n\t\tif (!input.countryCallingCode) {\r\n\t\t\tthrow new Error('Invalid phone number object passed')\r\n\t\t}\r\n\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\r\n\t} else {\r\n\t\tif (!input.phone) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\tif (input.country) {\r\n\t\t\tif (!metadata.hasCountry(input.country)) {\r\n\t\t\t\tthrow new Error(`Unknown country: ${input.country}`)\r\n\t\t\t}\r\n\t\t\tmetadata.country(input.country)\r\n\t\t} else {\r\n\t\t\tif (!input.countryCallingCode) {\r\n\t\t\t\tthrow new Error('Invalid phone number object passed')\r\n\t\t\t}\r\n\t\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\r\n\t\t}\r\n\t}\r\n\r\n\tif (metadata.possibleLengths()) {\r\n\t\treturn isPossibleNumber(input.phone || input.nationalNumber, metadata)\r\n\t} else {\r\n\t\t// There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\r\n\t\t// were missing for \"non-geographical\" numbering plans.\r\n\t\t// Just assume the number is possible in such cases:\r\n\t\t// it's unlikely that anyone generated their custom metadata\r\n\t\t// in that short period of time (one day).\r\n\t\t// This code can be removed in some future major version update.\r\n\t\tif (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\r\n\t\t\t// \"Non-geographic entities\" did't have `possibleLengths`\r\n\t\t\t// due to a bug in metadata generation process.\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\tthrow new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function isPossibleNumber(nationalNumber, metadata) { //, isInternational) {\r\n\tswitch (checkNumberLength(nationalNumber, metadata)) {\r\n\t\tcase 'IS_POSSIBLE':\r\n\t\t\treturn true\r\n\t\t// This library ignores \"local-only\" phone numbers (for simplicity).\r\n\t\t// See the readme for more info on what are \"local-only\" phone numbers.\r\n\t\t// case 'IS_POSSIBLE_LOCAL_ONLY':\r\n\t\t// \treturn !isInternational\r\n\t\tdefault:\r\n\t\t\treturn false\r\n\t}\r\n}","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\r\nexport default function matchesEntirely(text, regular_expression) {\r\n\t// If assigning the `''` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\ttext = text || ''\r\n\treturn new RegExp('^(?:' + regular_expression + ')$').test(text)\r\n}","import Metadata from '../metadata'\r\nimport matchesEntirely from './matchesEntirely'\r\n\r\nconst NON_FIXED_LINE_PHONE_TYPES = [\r\n\t'MOBILE',\r\n\t'PREMIUM_RATE',\r\n\t'TOLL_FREE',\r\n\t'SHARED_COST',\r\n\t'VOIP',\r\n\t'PERSONAL_NUMBER',\r\n\t'PAGER',\r\n\t'UAN',\r\n\t'VOICEMAIL'\r\n]\r\n\r\n// Finds out national phone number type (fixed line, mobile, etc)\r\nexport default function getNumberType(input, options, metadata)\r\n{\r\n\t// If assigning the `{}` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\toptions = options || {}\r\n\r\n\t// When `parse()` returned `{}`\r\n\t// meaning that the phone number is not a valid one.\r\n\tif (!input.country) {\r\n\t\treturn\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tmetadata.selectNumberingPlan(input.country, input.countryCallingCode)\r\n\r\n\tconst nationalNumber = options.v2 ? input.nationalNumber : input.phone\r\n\r\n\t// The following is copy-pasted from the original function:\r\n\t// https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\r\n\r\n\t// Is this national number even valid for this country\r\n\tif (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\r\n\t\treturn\r\n\t}\r\n\r\n\t// Is it fixed line number\r\n\tif (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\r\n\t\t// Because duplicate regular expressions are removed\r\n\t\t// to reduce metadata size, if \"mobile\" pattern is \"\"\r\n\t\t// then it means it was removed due to being a duplicate of the fixed-line pattern.\r\n\t\t//\r\n\t\tif (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\r\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\r\n\t\t}\r\n\r\n\t\t// v1 metadata.\r\n\t\t// Legacy.\r\n\t\t// Deprecated.\r\n\t\tif (!metadata.type('MOBILE')) {\r\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\r\n\t\t}\r\n\r\n\t\t// Check if the number happens to qualify as both fixed line and mobile.\r\n\t\t// (no such country in the minimal metadata set)\r\n\t\t/* istanbul ignore if */\r\n\t\tif (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\r\n\t\t\treturn 'FIXED_LINE_OR_MOBILE'\r\n\t\t}\r\n\r\n\t\treturn 'FIXED_LINE'\r\n\t}\r\n\r\n\tfor (const type of NON_FIXED_LINE_PHONE_TYPES) {\r\n\t\tif (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\r\n\t\t\treturn type\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\r\n\ttype = metadata.type(type)\r\n\tif (!type || !type.pattern()) {\r\n\t\treturn false\r\n\t}\r\n\t// Check if any possible number lengths are present;\r\n\t// if so, we use them to avoid checking\r\n\t// the validation pattern if they don't match.\r\n\t// If they are absent, this means they match\r\n\t// the general description, which we have\r\n\t// already checked before a specific number type.\r\n\tif (type.possibleLengths() &&\r\n\t\ttype.possibleLengths().indexOf(nationalNumber.length) < 0) {\r\n\t\treturn false\r\n\t}\r\n\treturn matchesEntirely(nationalNumber, type.pattern())\r\n}","import { VALID_PUNCTUATION } from '../constants'\r\n\r\n// Removes brackets and replaces dashes with spaces.\r\n//\r\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\r\n//\r\n// For some reason Google's metadata contains ``s with brackets and dashes.\r\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\r\n//\r\n// For example, Google's `` for USA is `+1 213-373-4253`.\r\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\r\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\r\n//\r\n// \"The country calling code for all countries participating in the NANP is 1.\r\n// In international format, an NANP number should be listed as +1 301 555 01 00,\r\n// where 301 is an area code (Maryland).\"\r\n//\r\n// I personally prefer the international format without any punctuation.\r\n// For example, brackets are remnants of the old age, meaning that the\r\n// phone number part in brackets (so called \"area code\") can be omitted\r\n// if dialing within the same \"area\".\r\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\r\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\r\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\r\n// He has a couple of seconds to memorize that number until it passes by.\r\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\r\n// but with hyphens instead of spaces the grouping is more explicit.\r\n// I personally think that hyphens introduce visual clutter,\r\n// so I prefer replacing them with spaces in international numbers.\r\n// In the modern age all output is done on displays where spaces are clearly distinguishable\r\n// so hyphens can be safely replaced with spaces without losing any legibility.\r\n//\r\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\r\n\treturn formattedNumber.replace(new RegExp(`[${VALID_PUNCTUATION}]+`, 'g'), ' ').trim()\r\n}","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle'\r\n\r\n// This was originally set to $1 but there are some countries for which the\r\n// first group is not used in the national pattern (e.g. Argentina) so the $1\r\n// group does not match correctly. Therefore, we use `\\d`, so that the first\r\n// group actually used in the pattern will be matched.\r\nexport const FIRST_GROUP_PATTERN = /(\\$\\d)/\r\n\r\nexport default function formatNationalNumberUsingFormat(\r\n\tnumber,\r\n\tformat,\r\n\t{\r\n\t\tuseInternationalFormat,\r\n\t\twithNationalPrefix,\r\n\t\tcarrierCode,\r\n\t\tmetadata\r\n\t}\r\n) {\r\n\tconst formattedNumber = number.replace(\r\n\t\tnew RegExp(format.pattern()),\r\n\t\tuseInternationalFormat\r\n\t\t\t? format.internationalFormat()\r\n\t\t\t: (\r\n\t\t\t\t// This library doesn't use `domestic_carrier_code_formatting_rule`,\r\n\t\t\t\t// because that one is only used when formatting phone numbers\r\n\t\t\t\t// for dialing from a mobile phone, and this is not a dialing library.\r\n\t\t\t\t// carrierCode && format.domesticCarrierCodeFormattingRule()\r\n\t\t\t\t// \t// First, replace the $CC in the formatting rule with the desired carrier code.\r\n\t\t\t\t// \t// Then, replace the $FG in the formatting rule with the first group\r\n\t\t\t\t// \t// and the carrier code combined in the appropriate way.\r\n\t\t\t\t// \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\r\n\t\t\t\t// \t: (\r\n\t\t\t\t// \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\r\n\t\t\t\t// \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\r\n\t\t\t\t// \t\t\t: format.format()\r\n\t\t\t\t// \t)\r\n\t\t\t\twithNationalPrefix && format.nationalPrefixFormattingRule()\r\n\t\t\t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\r\n\t\t\t\t\t: format.format()\r\n\t\t\t)\r\n\t)\r\n\tif (useInternationalFormat) {\r\n\t\treturn applyInternationalSeparatorStyle(formattedNumber)\r\n\t}\r\n\treturn formattedNumber\r\n}","import Metadata from '../metadata'\r\n\r\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\r\nconst SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/\r\n\r\n// For regions that have multiple IDD prefixes\r\n// a preferred IDD prefix is returned.\r\nexport default function getIddPrefix(country, callingCode, metadata) {\r\n\tconst countryMetadata = new Metadata(metadata)\r\n\tcountryMetadata.selectNumberingPlan(country, callingCode)\r\n\tif (countryMetadata.defaultIDDPrefix()) {\r\n\t\treturn countryMetadata.defaultIDDPrefix()\r\n\t}\r\n\tif (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\r\n\t\treturn countryMetadata.IDDPrefix()\r\n\t}\r\n}\r\n","// This is a port of Google Android `libphonenumber`'s\r\n// `phonenumberutil.js` of December 31th, 2018.\r\n//\r\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\r\n\r\nimport matchesEntirely from './helpers/matchesEntirely'\r\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat'\r\nimport Metadata, { getCountryCallingCode } from './metadata'\r\nimport getIddPrefix from './helpers/getIddPrefix'\r\nimport { formatRFC3966 } from './helpers/RFC3966'\r\n\r\nconst DEFAULT_OPTIONS = {\r\n\tformatExtension: (formattedNumber, extension, metadata) => `${formattedNumber}${metadata.ext()}${extension}`\r\n}\r\n\r\n// Formats a phone number\r\n//\r\n// Example use cases:\r\n//\r\n// ```js\r\n// formatNumber('8005553535', 'RU', 'INTERNATIONAL')\r\n// formatNumber('8005553535', 'RU', 'INTERNATIONAL', metadata)\r\n// formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL')\r\n// formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', metadata)\r\n// formatNumber('+78005553535', 'NATIONAL')\r\n// formatNumber('+78005553535', 'NATIONAL', metadata)\r\n// ```\r\n//\r\nexport default function formatNumber(input, format, options, metadata) {\r\n\t// Apply default options.\r\n\tif (options) {\r\n\t\toptions = { ...DEFAULT_OPTIONS, ...options }\r\n\t} else {\r\n\t\toptions = DEFAULT_OPTIONS\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\tif (input.country && input.country !== '001') {\r\n\t\t// Validate `input.country`.\r\n\t\tif (!metadata.hasCountry(input.country)) {\r\n\t\t\tthrow new Error(`Unknown country: ${input.country}`)\r\n\t\t}\r\n\t\tmetadata.country(input.country)\r\n\t}\r\n\telse if (input.countryCallingCode) {\r\n\t\tmetadata.selectNumberingPlan(input.countryCallingCode)\r\n\t}\r\n\telse return input.phone || ''\r\n\r\n\tconst countryCallingCode = metadata.countryCallingCode()\r\n\r\n\tconst nationalNumber = options.v2 ? input.nationalNumber : input.phone\r\n\r\n\t// This variable should have been declared inside `case`s\r\n\t// but Babel has a bug and it says \"duplicate variable declaration\".\r\n\tlet number\r\n\r\n\tswitch (format) {\r\n\t\tcase 'NATIONAL':\r\n\t\t\t// Legacy argument support.\r\n\t\t\t// (`{ country: ..., phone: '' }`)\r\n\t\t\tif (!nationalNumber) {\r\n\t\t\t\treturn ''\r\n\t\t\t}\r\n\t\t\tnumber = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options)\r\n\t\t\treturn addExtension(number, input.ext, metadata, options.formatExtension)\r\n\r\n\t\tcase 'INTERNATIONAL':\r\n\t\t\t// Legacy argument support.\r\n\t\t\t// (`{ country: ..., phone: '' }`)\r\n\t\t\tif (!nationalNumber) {\r\n\t\t\t\treturn `+${countryCallingCode}`\r\n\t\t\t}\r\n\t\t\tnumber = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options)\r\n\t\t\tnumber = `+${countryCallingCode} ${number}`\r\n\t\t\treturn addExtension(number, input.ext, metadata, options.formatExtension)\r\n\r\n\t\tcase 'E.164':\r\n\t\t\t// `E.164` doesn't define \"phone number extensions\".\r\n\t\t\treturn `+${countryCallingCode}${nationalNumber}`\r\n\r\n\t\tcase 'RFC3966':\r\n\t\t\treturn formatRFC3966({\r\n\t\t\t\tnumber: `+${countryCallingCode}${nationalNumber}`,\r\n\t\t\t\text: input.ext\r\n\t\t\t})\r\n\r\n\t\t// For reference, here's Google's IDD formatter:\r\n\t\t// https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\r\n\t\t// Not saying that this IDD formatter replicates it 1:1, but it seems to work.\r\n\t\t// Who would even need to format phone numbers in IDD format anyway?\r\n\t\tcase 'IDD':\r\n\t\t\tif (!options.fromCountry) {\r\n\t\t\t\treturn\r\n\t\t\t\t// throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\r\n\t\t\t}\r\n\t\t\tconst formattedNumber = formatIDD(\r\n\t\t\t\tnationalNumber,\r\n\t\t\t\tinput.carrierCode,\r\n\t\t\t\tcountryCallingCode,\r\n\t\t\t\toptions.fromCountry,\r\n\t\t\t\tmetadata\r\n\t\t\t)\r\n\t\t\treturn addExtension(formattedNumber, input.ext, metadata, options.formatExtension)\r\n\r\n\t\tdefault:\r\n\t\t\tthrow new Error(`Unknown \"format\" argument passed to \"formatNumber()\": \"${format}\"`)\r\n\t}\r\n}\r\n\r\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\r\n\tconst format = chooseFormatForNumber(metadata.formats(), number)\r\n\tif (!format) {\r\n\t\treturn number\r\n\t}\r\n\treturn formatNationalNumberUsingFormat(\r\n\t\tnumber,\r\n\t\tformat,\r\n\t\t{\r\n\t\t\tuseInternationalFormat: formatAs === 'INTERNATIONAL',\r\n\t\t\twithNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && (options && options.nationalPrefix === false) ? false : true,\r\n\t\t\tcarrierCode,\r\n\t\t\tmetadata\r\n\t\t}\r\n\t)\r\n}\r\n\r\nfunction chooseFormatForNumber(availableFormats, nationalNnumber) {\r\n\tfor (const format of availableFormats) {\r\n\t\t// Validate leading digits\r\n\t\tif (format.leadingDigitsPatterns().length > 0) {\r\n\t\t\t// The last leading_digits_pattern is used here, as it is the most detailed\r\n\t\t\tconst lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]\r\n\t\t\t// If leading digits don't match then move on to the next phone number format\r\n\t\t\tif (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Check that the national number matches the phone number format regular expression\r\n\t\tif (matchesEntirely(nationalNnumber, format.pattern())) {\r\n\t\t\treturn format\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\r\n\treturn ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber\r\n}\r\n\r\nfunction formatIDD(\r\n\tnationalNumber,\r\n\tcarrierCode,\r\n\tcountryCallingCode,\r\n\tfromCountry,\r\n\tmetadata\r\n) {\r\n\tconst fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata)\r\n\t// When calling within the same country calling code.\r\n\tif (fromCountryCallingCode === countryCallingCode) {\r\n\t\tconst formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata)\r\n\t\t// For NANPA regions, return the national format for these regions\r\n\t\t// but prefix it with the country calling code.\r\n\t\tif (countryCallingCode === '1') {\r\n\t\t\treturn countryCallingCode + ' ' + formattedNumber\r\n\t\t}\r\n\t\t// If regions share a country calling code, the country calling code need\r\n\t\t// not be dialled. This also applies when dialling within a region, so this\r\n\t\t// if clause covers both these cases. Technically this is the case for\r\n\t\t// dialling from La Reunion to other overseas departments of France (French\r\n\t\t// Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\r\n\t\t// this edge case for now and for those cases return the version including\r\n\t\t// country calling code. Details here:\r\n\t\t// http://www.petitfute.com/voyage/225-info-pratiques-reunion\r\n\t\t//\r\n\t\treturn formattedNumber\r\n\t}\r\n\tconst iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata)\r\n\tif (iddPrefix) {\r\n\t\treturn `${iddPrefix} ${countryCallingCode} ${formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata)}`\r\n\t}\r\n}","import isViablePhoneNumber from './isViablePhoneNumber'\r\n\r\n// https://www.ietf.org/rfc/rfc3966.txt\r\n\r\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\r\nexport function parseRFC3966(text) {\r\n\tlet number\r\n\tlet ext\r\n\r\n\t// Replace \"tel:\" with \"tel=\" for parsing convenience.\r\n\ttext = text.replace(/^tel:/, 'tel=')\r\n\r\n\tfor (const part of text.split(';')) {\r\n\t\tconst [name, value] = part.split('=')\r\n\t\tswitch (name) {\r\n\t\t\tcase 'tel':\r\n\t\t\t\tnumber = value\r\n\t\t\t\tbreak\r\n\t\t\tcase 'ext':\r\n\t\t\t\text = value\r\n\t\t\t\tbreak\r\n\t\t\tcase 'phone-context':\r\n\t\t\t\t// Only \"country contexts\" are supported.\r\n\t\t\t\t// \"Domain contexts\" are ignored.\r\n\t\t\t\tif (value[0] === '+') {\r\n\t\t\t\t\tnumber = value + number\r\n\t\t\t\t}\r\n\t\t\t\tbreak\r\n\t\t}\r\n\t}\r\n\r\n\t// If the phone number is not viable, then abort.\r\n\tif (!isViablePhoneNumber(number)) {\r\n\t\treturn {}\r\n\t}\r\n\r\n\tconst result = { number }\r\n\tif (ext) {\r\n\t\tresult.ext = ext\r\n\t}\r\n\treturn result\r\n}\r\n\r\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\r\nexport function formatRFC3966({ number, ext }) {\r\n\tif (!number) {\r\n\t\treturn ''\r\n\t}\r\n\tif (number[0] !== '+') {\r\n\t\tthrow new Error(`\"formatRFC3966()\" expects \"number\" to be in E.164 format.`)\r\n\t}\r\n\treturn `tel:${number}${ext ? ';ext=' + ext : ''}`\r\n}","import Metadata from './metadata'\r\nimport isPossibleNumber from './isPossibleNumber_'\r\nimport isValidNumber from './validate_'\r\nimport isValidNumberForRegion from './isValidNumberForRegion_'\r\nimport getNumberType from './helpers/getNumberType'\r\nimport formatNumber from './format_'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default class PhoneNumber {\r\n\tconstructor(countryCallingCode, nationalNumber, metadata) {\r\n\t\tif (!countryCallingCode) {\r\n\t\t\tthrow new TypeError('`country` or `countryCallingCode` not passed')\r\n\t\t}\r\n\t\tif (!nationalNumber) {\r\n\t\t\tthrow new TypeError('`nationalNumber` not passed')\r\n\t\t}\r\n\t\tif (!metadata) {\r\n\t\t\tthrow new TypeError('`metadata` not passed')\r\n\t\t}\r\n\t\tconst _metadata = new Metadata(metadata)\r\n\t\t// If country code is passed then derive `countryCallingCode` from it.\r\n\t\t// Also store the country code as `.country`.\r\n\t\tif (isCountryCode(countryCallingCode)) {\r\n\t\t\tthis.country = countryCallingCode\r\n\t\t\t_metadata.country(countryCallingCode)\r\n\t\t\tcountryCallingCode = _metadata.countryCallingCode()\r\n\t\t} else {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t\tif (_metadata.isNonGeographicCallingCode(countryCallingCode)) {\r\n\t\t\t\t\tthis.country = '001'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.countryCallingCode = countryCallingCode\r\n\t\tthis.nationalNumber = nationalNumber\r\n\t\tthis.number = '+' + this.countryCallingCode + this.nationalNumber\r\n\t\tthis.metadata = metadata\r\n\t}\r\n\r\n\tsetExt(ext) {\r\n\t\tthis.ext = ext\r\n\t}\r\n\r\n\tisPossible() {\r\n\t\treturn isPossibleNumber(this, { v2: true }, this.metadata)\r\n\t}\r\n\r\n\tisValid() {\r\n\t\treturn isValidNumber(this, { v2: true }, this.metadata)\r\n\t}\r\n\r\n\tisNonGeographic() {\r\n\t\tconst metadata = new Metadata(this.metadata)\r\n\t\treturn metadata.isNonGeographicCallingCode(this.countryCallingCode)\r\n\t}\r\n\r\n\tisEqual(phoneNumber) {\r\n\t\treturn this.number === phoneNumber.number && this.ext === phoneNumber.ext\r\n\t}\r\n\r\n\t// // Is just an alias for `this.isValid() && this.country === country`.\r\n\t// // https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n\t// isValidForRegion(country) {\r\n\t// \treturn isValidNumberForRegion(this, country, { v2: true }, this.metadata)\r\n\t// }\r\n\r\n\tgetType() {\r\n\t\treturn getNumberType(this, { v2: true }, this.metadata)\r\n\t}\r\n\r\n\tformat(format, options) {\r\n\t\treturn formatNumber(\r\n\t\t\tthis,\r\n\t\t\tformat,\r\n\t\t\toptions ? { ...options, v2: true } : { v2: true },\r\n\t\t\tthis.metadata\r\n\t\t)\r\n\t}\r\n\r\n\tformatNational(options) {\r\n\t\treturn this.format('NATIONAL', options)\r\n\t}\r\n\r\n\tformatInternational(options) {\r\n\t\treturn this.format('INTERNATIONAL', options)\r\n\t}\r\n\r\n\tgetURI(options) {\r\n\t\treturn this.format('RFC3966', options)\r\n\t}\r\n}\r\n\r\nconst isCountryCode = (value) => /^[A-Z]{2}$/.test(value)","import Metadata from './metadata'\r\nimport matchesEntirely from './helpers/matchesEntirely'\r\nimport getNumberType from './helpers/getNumberType'\r\n\r\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\r\nexport default function isValidNumber(input, options, metadata)\r\n{\r\n\t// If assigning the `{}` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\toptions = options || {}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\t// This is just to support `isValidNumber({})`\r\n\t// for cases when `parseNumber()` returns `{}`.\r\n\tif (!input.country)\r\n\t{\r\n\t\treturn false\r\n\t}\r\n\r\n\tmetadata.selectNumberingPlan(input.country, input.countryCallingCode)\r\n\r\n\t// By default, countries only have type regexps when it's required for\r\n\t// distinguishing different countries having the same `countryCallingCode`.\r\n\tif (metadata.hasTypes())\r\n\t{\r\n\t\treturn getNumberType(input, options, metadata.metadata) !== undefined\r\n\t}\r\n\r\n\t// If there are no type regexps for this country in metadata then use\r\n\t// `nationalNumberPattern` as a \"better than nothing\" replacement.\r\n\tconst national_number = options.v2 ? input.nationalNumber : input.phone\r\n\treturn matchesEntirely(national_number, metadata.nationalNumberPattern())\r\n}","import Metadata from '../metadata'\r\nimport { VALID_DIGITS } from '../constants'\r\n\r\nconst CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])')\r\n\r\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\r\n\tif (!country) {\r\n\t\treturn\r\n\t}\r\n\t// Check if the number is IDD-prefixed.\r\n\tconst countryMetadata = new Metadata(metadata)\r\n\tcountryMetadata.selectNumberingPlan(country, callingCode)\r\n\tconst IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix())\r\n\tif (number.search(IDDPrefixPattern) !== 0) {\r\n\t\treturn\r\n\t}\r\n\t// Strip IDD prefix.\r\n\tnumber = number.slice(number.match(IDDPrefixPattern)[0].length)\r\n\t// If there're any digits after an IDD prefix,\r\n\t// then those digits are a country calling code.\r\n\t// Since no country code starts with a `0`,\r\n\t// the code below validates that the next digit (if present) is not `0`.\r\n\tconst matchedGroups = number.match(CAPTURING_DIGIT_PATTERN)\r\n\tif (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\r\n\t\tif (matchedGroups[1] === '0') {\r\n\t\t\treturn\r\n\t\t}\r\n\t}\r\n\treturn number\r\n}","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`.\r\n */\r\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\r\n\tif (number && metadata.numberingPlan.nationalPrefixForParsing()) {\r\n\t\t// See METADATA.md for the description of\r\n\t\t// `national_prefix_for_parsing` and `national_prefix_transform_rule`.\r\n\t\t// Attempt to parse the first digits as a national prefix.\r\n\t\tconst prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')')\r\n\t\tconst prefixMatch = prefixPattern.exec(number)\r\n\t\tif (prefixMatch) {\r\n\t\t\tlet nationalNumber\r\n\t\t\tlet carrierCode\r\n\t\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\r\n\t\t\t// If a `national_prefix_for_parsing` has any \"capturing groups\"\r\n\t\t\t// then it means that the national (significant) number is equal to\r\n\t\t\t// those \"capturing groups\" transformed via `national_prefix_transform_rule`,\r\n\t\t\t// and nothing could be said about the actual national prefix:\r\n\t\t\t// what is it and was it even there.\r\n\t\t\t// If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\r\n\t\t\t// then everything it matches is a national prefix.\r\n\t\t\t// To determine whether `national_prefix_for_parsing` matched any\r\n\t\t\t// \"capturing groups\", the value of the result of calling `.exec()`\r\n\t\t\t// is looked at, and if it has non-undefined values where there're\r\n\t\t\t// \"capturing groups\" in the regular expression, then it means\r\n\t\t\t// that \"capturing groups\" have been matched.\r\n\t\t\t// It's not possible to tell whether there'll be any \"capturing gropus\"\r\n\t\t\t// before the matching process, because a `national_prefix_for_parsing`\r\n\t\t\t// could exhibit both behaviors.\r\n\t\t\tconst capturedGroupsCount = prefixMatch.length - 1\r\n\t\t\tconst hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount]\r\n\t\t\tif (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\r\n\t\t\t\tnationalNumber = number.replace(\r\n\t\t\t\t\tprefixPattern,\r\n\t\t\t\t\tmetadata.nationalPrefixTransformRule()\r\n\t\t\t\t)\r\n\t\t\t\t// If there's more than one captured group,\r\n\t\t\t\t// then carrier code is the second one.\r\n\t\t\t\tif (capturedGroupsCount > 1) {\r\n\t\t\t\t\tcarrierCode = prefixMatch[1]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If there're no \"capturing groups\",\r\n\t\t\t// or if there're \"capturing groups\" but no\r\n\t\t\t// `national_prefix_transform_rule`,\r\n\t\t\t// then just strip the national prefix from the number,\r\n\t\t\t// and possibly a carrier code.\r\n\t\t\t// Seems like there could be more.\r\n\t\t\telse {\r\n\t\t\t\t// `prefixBeforeNationalNumber` is the whole substring matched by\r\n\t\t\t\t// the `national_prefix_for_parsing` regular expression.\r\n\t\t\t\t// There seem to be no guarantees that it's just a national prefix.\r\n\t\t\t\t// For example, if there's a carrier code, it's gonna be a\r\n\t\t\t\t// part of `prefixBeforeNationalNumber` too.\r\n\t\t\t\tconst prefixBeforeNationalNumber = prefixMatch[0]\r\n\t\t\t\tnationalNumber = number.slice(prefixBeforeNationalNumber.length)\r\n\t\t\t\t// If there's at least one captured group,\r\n\t\t\t\t// then carrier code is the first one.\r\n\t\t\t\tif (hasCapturedGroups) {\r\n\t\t\t\t\tcarrierCode = prefixMatch[1]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Tries to guess whether a national prefix was present in the input.\r\n\t\t\t// This is not something copy-pasted from Google's library:\r\n\t\t\t// they don't seem to have an equivalent for that.\r\n\t\t\t// So this isn't an \"officially approved\" way of doing something like that.\r\n\t\t\t// But since there seems no other existing method, this library uses it.\r\n\t\t\tlet nationalPrefix\r\n\t\t\tif (hasCapturedGroups) {\r\n\t\t\t\tconst possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1])\r\n\t\t\t\tconst possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup)\r\n\t\t\t\t// Example: an Argentinian (AR) phone number `0111523456789`.\r\n\t\t\t\t// `prefixMatch[0]` is `01115`, and `$1` is `11`,\r\n\t\t\t\t// and the rest of the phone number is `23456789`.\r\n\t\t\t\t// The national number is transformed via `9$1` to `91123456789`.\r\n\t\t\t\t// National prefix `0` is detected being present at the start.\r\n\t\t\t\t// if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\r\n\t\t\t\tif (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\r\n\t\t\t\t\tnationalPrefix = metadata.numberingPlan.nationalPrefix()\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tnationalPrefix = prefixMatch[0]\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tnationalNumber,\r\n\t\t\t\tnationalPrefix,\r\n\t\t\t\tcarrierCode\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n return {\r\n \tnationalNumber: number\r\n }\r\n}","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber'\r\nimport matchesEntirely from './matchesEntirely'\r\nimport checkNumberLength from './checkNumberLength'\r\n\r\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\r\nexport default function extractNationalNumber(number, metadata) {\r\n\t// Parsing national prefixes and carrier codes\r\n\t// is only required for local phone numbers\r\n\t// but some people don't understand that\r\n\t// and sometimes write international phone numbers\r\n\t// with national prefixes (or maybe even carrier codes).\r\n\t// http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\r\n\t// Google's original library forgives such mistakes\r\n\t// and so does this library, because it has been requested:\r\n\t// https://github.com/catamphetamine/libphonenumber-js/issues/127\r\n\tconst {\r\n\t\tnationalNumber,\r\n\t\tcarrierCode\r\n\t} = extractNationalNumberFromPossiblyIncompleteNumber(\r\n\t\tnumber,\r\n\t\tmetadata\r\n\t)\r\n\tif (!shouldExtractNationalPrefix(number, nationalNumber, metadata)) {\r\n\t\t// Don't strip the national prefix.\r\n\t\treturn { nationalNumber: number }\r\n\t}\r\n\t// If a national prefix has been extracted, check to see\r\n\t// if the resultant number isn't too short.\r\n\t// Same code in Google's `libphonenumber`:\r\n\t// https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3291-L3302\r\n\t// For some reason, they do this check right after the `national_number_pattern` check\r\n\t// this library does in `shouldExtractNationalPrefix()` function.\r\n\t// Why is there a second \"resultant\" number validity check?\r\n\t// They don't provide an explanation.\r\n\t// This library just copies the behavior.\r\n\tif (number.length !== nationalNumber.length + (carrierCode ? carrierCode.length : 0)) {\r\n\t\t// If not using legacy generated metadata (before version `1.0.18`)\r\n\t\t// then it has \"possible lengths\", so use those to validate the number length.\r\n\t\tif (metadata.possibleLengths()) {\r\n\t\t\t// \"We require that the NSN remaining after stripping the national prefix and\r\n\t\t\t// carrier code be long enough to be a possible length for the region.\r\n\t\t\t// Otherwise, we don't do the stripping, since the original number could be\r\n\t\t\t// a valid short number.\"\r\n\t\t\t// https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\r\n\t\t\tswitch (checkNumberLength(nationalNumber, metadata)) {\r\n\t\t\t\tcase 'TOO_SHORT':\r\n\t\t\t\tcase 'INVALID_LENGTH':\r\n\t\t\t\t// case 'IS_POSSIBLE_LOCAL_ONLY':\r\n\t\t\t\t\t// Don't strip the national prefix.\r\n\t\t\t\t\treturn { nationalNumber: number }\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn { nationalNumber, carrierCode }\r\n}\r\n\r\n// In some countries, the same digit could be a national prefix\r\n// or a leading digit of a valid phone number.\r\n// For example, in Russia, national prefix is `8`,\r\n// and also `800 555 35 35` is a valid number\r\n// in which `8` is not a national prefix, but the first digit\r\n// of a national (significant) number.\r\n// Same's with Belarus:\r\n// `82004910060` is a valid national (significant) number,\r\n// but `2004910060` is not.\r\n// To support such cases (to prevent the code from always stripping\r\n// national prefix), a condition is imposed: a national prefix\r\n// is not extracted when the original number is \"viable\" and the\r\n// resultant number is not, a \"viable\" national number being the one\r\n// that matches `national_number_pattern`.\r\nfunction shouldExtractNationalPrefix(number, nationalSignificantNumber, metadata) {\r\n\t// The equivalent in Google's code is:\r\n\t// https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\r\n\tif (matchesEntirely(number, metadata.nationalNumberPattern()) &&\r\n\t\t!matchesEntirely(nationalSignificantNumber, metadata.nationalNumberPattern())) {\r\n\t\treturn false\r\n\t}\r\n\t// Just \"possible\" number check would be more relaxed, so it's not used.\r\n\t// if (isPossibleNumber(number, metadata) &&\r\n\t// \t!isPossibleNumber(numberWithNationalPrefixExtracted, metadata)) {\r\n\t// \treturn false\r\n\t// }\r\n\treturn true\r\n}","import Metadata from '../metadata'\r\nimport matchesEntirely from './matchesEntirely'\r\nimport extractNationalNumber from './extractNationalNumber'\r\nimport checkNumberLength from './checkNumberLength'\r\nimport getCountryCallingCode from '../getCountryCallingCode'\r\n\r\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\r\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\r\n\tnumber,\r\n\tcountry,\r\n\tcallingCode,\r\n\tmetadata\r\n) {\r\n\tconst countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode\r\n\tif (number.indexOf(countryCallingCode) === 0) {\r\n\t\tmetadata = new Metadata(metadata)\r\n\t\tmetadata.selectNumberingPlan(country, callingCode)\r\n\t\tconst possibleShorterNumber = number.slice(countryCallingCode.length)\r\n\t\tconst {\r\n\t\t\tnationalNumber: possibleShorterNationalNumber,\r\n\t\t} = extractNationalNumber(\r\n\t\t\tpossibleShorterNumber,\r\n\t\t\tmetadata\r\n\t\t)\r\n\t\tconst {\r\n\t\t\tnationalNumber\r\n\t\t} = extractNationalNumber(\r\n\t\t\tnumber,\r\n\t\t\tmetadata\r\n\t\t)\r\n\t\t// If the number was not valid before but is valid now,\r\n\t\t// or if it was too long before, we consider the number\r\n\t\t// with the country calling code stripped to be a better result\r\n\t\t// and keep that instead.\r\n\t\t// For example, in Germany (+49), `49` is a valid area code,\r\n\t\t// so if a number starts with `49`, it could be both a valid\r\n\t\t// national German number or an international number without\r\n\t\t// a leading `+`.\r\n\t\tif (\r\n\t\t\t(\r\n\t\t\t\t!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())\r\n\t\t\t\t&&\r\n\t\t\t\tmatchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern())\r\n\t\t\t)\r\n\t\t\t||\r\n\t\t\tcheckNumberLength(nationalNumber, metadata) === 'TOO_LONG'\r\n\t\t) {\r\n\t\t\treturn {\r\n\t\t\t\tcountryCallingCode,\r\n\t\t\t\tnumber: possibleShorterNumber\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn { number }\r\n}","import stripIddPrefix from './stripIddPrefix'\r\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign'\r\nimport Metadata from '../metadata'\r\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants'\r\n\r\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\r\nexport default function extractCountryCallingCode(\r\n\tnumber,\r\n\tcountry,\r\n\tcallingCode,\r\n\tmetadata\r\n) {\r\n\tif (!number) {\r\n\t\treturn {}\r\n\t}\r\n\r\n\t// If this is not an international phone number,\r\n\t// then either extract an \"IDD\" prefix, or extract a\r\n\t// country calling code from a number by autocorrecting it\r\n\t// by prepending a leading `+` in cases when it starts\r\n\t// with the country calling code.\r\n\t// https://wikitravel.org/en/International_dialling_prefix\r\n\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\r\n\tif (number[0] !== '+') {\r\n\t\t// Convert an \"out-of-country\" dialing phone number\r\n\t\t// to a proper international phone number.\r\n\t\tconst numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata)\r\n\t\t// If an IDD prefix was stripped then\r\n\t\t// convert the number to international one\r\n\t\t// for subsequent parsing.\r\n\t\tif (numberWithoutIDD && numberWithoutIDD !== number) {\r\n\t\t\tnumber = '+' + numberWithoutIDD\r\n\t\t} else {\r\n\t\t\t// Check to see if the number starts with the country calling code\r\n\t\t\t// for the default country. If so, we remove the country calling code,\r\n\t\t\t// and do some checks on the validity of the number before and after.\r\n\t\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\r\n\t\t\tif (country || callingCode) {\r\n\t\t\t\tconst {\r\n\t\t\t\t\tcountryCallingCode,\r\n\t\t\t\t\tnumber: shorterNumber\r\n\t\t\t\t} = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\r\n\t\t\t\t\tnumber,\r\n\t\t\t\t\tcountry,\r\n\t\t\t\t\tcallingCode,\r\n\t\t\t\t\tmetadata\r\n\t\t\t\t)\r\n\t\t\t\tif (countryCallingCode) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tcountryCallingCode,\r\n\t\t\t\t\t\tnumber: shorterNumber\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn { number }\r\n\t\t}\r\n\t}\r\n\r\n\t// Fast abortion: country codes do not begin with a '0'\r\n\tif (number[1] === '0') {\r\n\t\treturn {}\r\n\t}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\t// The thing with country phone codes\r\n\t// is that they are orthogonal to each other\r\n\t// i.e. there's no such country phone code A\r\n\t// for which country phone code B exists\r\n\t// where B starts with A.\r\n\t// Therefore, while scanning digits,\r\n\t// if a valid country code is found,\r\n\t// that means that it is the country code.\r\n\t//\r\n\tlet i = 2\r\n\twhile (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\r\n\t\tconst countryCallingCode = number.slice(1, i)\r\n\t\tif (metadata.hasCallingCode(countryCallingCode)) {\r\n\t\t\tmetadata.selectNumberingPlan(countryCallingCode)\r\n\t\t\treturn {\r\n\t\t\t\tcountryCallingCode,\r\n\t\t\t\tnumber: number.slice(i)\r\n\t\t\t}\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\r\n\treturn {}\r\n}","import Metadata from '../metadata'\r\nimport getNumberType from './getNumberType'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default function getCountryByCallingCode(callingCode, nationalPhoneNumber, metadata) {\r\n\t/* istanbul ignore if */\r\n\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\tif (metadata.isNonGeographicCallingCode(callingCode)) {\r\n\t\t\treturn '001'\r\n\t\t}\r\n\t}\r\n\t// Is always non-empty, because `callingCode` is always valid\r\n\tconst possibleCountries = metadata.getCountryCodesForCallingCode(callingCode)\r\n\tif (!possibleCountries) {\r\n\t\treturn\r\n\t}\r\n\t// If there's just one country corresponding to the country code,\r\n\t// then just return it, without further phone number digits validation.\r\n\tif (possibleCountries.length === 1) {\r\n\t\treturn possibleCountries[0]\r\n\t}\r\n\treturn selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata.metadata)\r\n}\r\n\r\nfunction selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata) {\r\n\t// Re-create `metadata` because it will be selecting a `country`.\r\n\tmetadata = new Metadata(metadata)\r\n\tfor (const country of possibleCountries) {\r\n\t\tmetadata.country(country)\r\n\t\t// Leading digits check would be the simplest and fastest one.\r\n\t\t// Leading digits patterns are only defined for about 20% of all countries.\r\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\r\n\t\t// Matching \"leading digits\" is a sufficient but not necessary condition.\r\n\t\tif (metadata.leadingDigits()) {\r\n\t\t\tif (nationalPhoneNumber &&\r\n\t\t\t\tnationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\r\n\t\t\t\treturn country\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Else perform full validation with all of those\r\n\t\t// fixed-line/mobile/etc regular expressions.\r\n\t\telse if (getNumberType({ phone: nationalPhoneNumber, country }, undefined, metadata.metadata)) {\r\n\t\t\treturn country\r\n\t\t}\r\n\t}\r\n}","// This is a port of Google Android `libphonenumber`'s\r\n// `phonenumberutil.js` of December 31th, 2018.\r\n//\r\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\r\n\r\nimport {\r\n\tVALID_DIGITS,\r\n\tPLUS_CHARS,\r\n\tMIN_LENGTH_FOR_NSN,\r\n\tMAX_LENGTH_FOR_NSN\r\n} from './constants'\r\n\r\nimport ParseError from './ParseError'\r\nimport Metadata from './metadata'\r\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber'\r\nimport extractExtension from './helpers/extension/extractExtension'\r\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber'\r\nimport getCountryCallingCode from './getCountryCallingCode'\r\nimport { isPossibleNumber } from './isPossibleNumber_'\r\nimport { parseRFC3966 } from './helpers/RFC3966'\r\nimport PhoneNumber from './PhoneNumber'\r\nimport matchesEntirely from './helpers/matchesEntirely'\r\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode'\r\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign'\r\nimport extractNationalNumber from './helpers/extractNationalNumber'\r\nimport stripIddPrefix from './helpers/stripIddPrefix'\r\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode'\r\n\r\n// We don't allow input strings for parsing to be longer than 250 chars.\r\n// This prevents malicious input from consuming CPU.\r\nconst MAX_INPUT_STRING_LENGTH = 250\r\n\r\n// This consists of the plus symbol, digits, and arabic-indic digits.\r\nconst PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']')\r\n\r\n// Regular expression of trailing characters that we want to remove.\r\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\r\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\r\nconst AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$')\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\n// Examples:\r\n//\r\n// ```js\r\n// parse('8 (800) 555-35-35', 'RU')\r\n// parse('8 (800) 555-35-35', 'RU', metadata)\r\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\r\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\r\n// parse('+7 800 555 35 35')\r\n// parse('+7 800 555 35 35', metadata)\r\n// ```\r\n//\r\nexport default function parse(text, options, metadata) {\r\n\t// If assigning the `{}` default value is moved to the arguments above,\r\n\t// code coverage would decrease for some weird reason.\r\n\toptions = options || {}\r\n\r\n\tmetadata = new Metadata(metadata)\r\n\r\n\t// Validate `defaultCountry`.\r\n\tif (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('INVALID_COUNTRY')\r\n\t\t}\r\n\t\tthrow new Error(`Unknown country: ${options.defaultCountry}`)\r\n\t}\r\n\r\n\t// Parse the phone number.\r\n\tconst { number: formattedPhoneNumber, ext, error } = parseInput(text, options.v2, options.extract)\r\n\r\n\t// If the phone number is not viable then return nothing.\r\n\tif (!formattedPhoneNumber) {\r\n\t\tif (options.v2) {\r\n\t\t\tif (error === 'TOO_SHORT') {\r\n\t\t\t\tthrow new ParseError('TOO_SHORT')\r\n\t\t\t}\r\n\t\t\tthrow new ParseError('NOT_A_NUMBER')\r\n\t\t}\r\n\t\treturn {}\r\n\t}\r\n\r\n\tconst {\r\n\t\tcountry,\r\n\t\tnationalNumber,\r\n\t\tcountryCallingCode,\r\n\t\tcarrierCode\r\n\t} = parsePhoneNumber(\r\n\t\tformattedPhoneNumber,\r\n\t\toptions.defaultCountry,\r\n\t\toptions.defaultCallingCode,\r\n\t\tmetadata\r\n\t)\r\n\r\n\tif (!metadata.hasSelectedNumberingPlan()) {\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('INVALID_COUNTRY')\r\n\t\t}\r\n\t\treturn {}\r\n\t}\r\n\r\n\t// Validate national (significant) number length.\r\n\tif (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\r\n\t\t// Won't throw here because the regexp already demands length > 1.\r\n\t\t/* istanbul ignore if */\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('TOO_SHORT')\r\n\t\t}\r\n\t\t// Google's demo just throws an error in this case.\r\n\t\treturn {}\r\n\t}\r\n\r\n\t// Validate national (significant) number length.\r\n\t//\r\n\t// A sidenote:\r\n\t//\r\n\t// They say that sometimes national (significant) numbers\r\n\t// can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\r\n\t// https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\r\n\t// Such numbers will just be discarded.\r\n\t//\r\n\tif (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\r\n\t\tif (options.v2) {\r\n\t\t\tthrow new ParseError('TOO_LONG')\r\n\t\t}\r\n\t\t// Google's demo just throws an error in this case.\r\n\t\treturn {}\r\n\t}\r\n\r\n\tif (options.v2) {\r\n\t\tconst phoneNumber = new PhoneNumber(\r\n\t\t\tcountryCallingCode,\r\n\t\t\tnationalNumber,\r\n\t\t\tmetadata.metadata\r\n\t\t)\r\n\t\tif (country) {\r\n\t\t\tphoneNumber.country = country\r\n\t\t}\r\n\t\tif (carrierCode) {\r\n\t\t\tphoneNumber.carrierCode = carrierCode\r\n\t\t}\r\n\t\tif (ext) {\r\n\t\t\tphoneNumber.ext = ext\r\n\t\t}\r\n\t\treturn phoneNumber\r\n\t}\r\n\r\n\t// Check if national phone number pattern matches the number.\r\n\t// National number pattern is different for each country,\r\n\t// even for those ones which are part of the \"NANPA\" group.\r\n\tconst valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ?\r\n\t\tmatchesEntirely(nationalNumber, metadata.nationalNumberPattern()) :\r\n\t\tfalse\r\n\r\n\tif (!options.extended) {\r\n\t\treturn valid ? result(country, nationalNumber, ext) : {}\r\n\t}\r\n\r\n\t// isInternational: countryCallingCode !== undefined\r\n\r\n\treturn {\r\n\t\tcountry,\r\n\t\tcountryCallingCode,\r\n\t\tcarrierCode,\r\n\t\tvalid,\r\n\t\tpossible: valid ? true : (\r\n\t\t\toptions.extended === true &&\r\n\t\t\tmetadata.possibleLengths() &&\r\n\t\t\tisPossibleNumber(nationalNumber, metadata) ? true : false\r\n\t\t),\r\n\t\tphone: nationalNumber,\r\n\t\text\r\n\t}\r\n}\r\n\r\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\r\nfunction extractFormattedPhoneNumber(text, extract, throwOnError) {\r\n\tif (!text) {\r\n\t\treturn\r\n\t}\r\n\tif (text.length > MAX_INPUT_STRING_LENGTH) {\r\n\t\tif (throwOnError) {\r\n\t\t\tthrow new ParseError('TOO_LONG')\r\n\t\t}\r\n\t\treturn\r\n\t}\r\n\tif (extract === false) {\r\n\t\treturn text\r\n\t}\r\n\t// Attempt to extract a possible number from the string passed in\r\n\tconst startsAt = text.search(PHONE_NUMBER_START_PATTERN)\r\n\tif (startsAt < 0) {\r\n\t\treturn\r\n\t}\r\n\treturn text\r\n\t\t// Trim everything to the left of the phone number\r\n\t\t.slice(startsAt)\r\n\t\t// Remove trailing non-numerical characters\r\n\t\t.replace(AFTER_PHONE_NUMBER_END_PATTERN, '')\r\n}\r\n\r\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\r\nfunction parseInput(text, v2, extract) {\r\n\t// Parse RFC 3966 phone number URI.\r\n\tif (text && text.indexOf('tel:') === 0) {\r\n\t\treturn parseRFC3966(text)\r\n\t}\r\n\tlet number = extractFormattedPhoneNumber(text, extract, v2)\r\n\t// If the phone number is not viable, then abort.\r\n\tif (!number) {\r\n\t\treturn {}\r\n\t}\r\n\tif (!isViablePhoneNumber(number)) {\r\n\t\tif (isViablePhoneNumberStart(number)) {\r\n\t\t\treturn { error: 'TOO_SHORT' }\r\n\t\t}\r\n\t\treturn {}\r\n\t}\r\n\t// Attempt to parse extension first, since it doesn't require region-specific\r\n\t// data and we want to have the non-normalised number here.\r\n\tconst withExtensionStripped = extractExtension(number)\r\n\tif (withExtensionStripped.ext) {\r\n\t\treturn withExtensionStripped\r\n\t}\r\n\treturn { number }\r\n}\r\n\r\n/**\r\n * Creates `parse()` result object.\r\n */\r\nfunction result(country, nationalNumber, ext) {\r\n\tconst result = {\r\n\t\tcountry,\r\n\t\tphone: nationalNumber\r\n\t}\r\n\tif (ext) {\r\n\t\tresult.ext = ext\r\n\t}\r\n\treturn result\r\n}\r\n\r\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\r\nfunction parsePhoneNumber(\r\n\tformattedPhoneNumber,\r\n\tdefaultCountry,\r\n\tdefaultCallingCode,\r\n\tmetadata\r\n) {\r\n\t// Extract calling code from phone number.\r\n\tlet { countryCallingCode, number } = extractCountryCallingCode(\r\n\t\tparseIncompletePhoneNumber(formattedPhoneNumber),\r\n\t\tdefaultCountry,\r\n\t\tdefaultCallingCode,\r\n\t\tmetadata.metadata\r\n\t)\r\n\r\n\t// Choose a country by `countryCallingCode`.\r\n\tlet country\r\n\tif (countryCallingCode) {\r\n\t\tmetadata.selectNumberingPlan(countryCallingCode)\r\n\t}\r\n\t// If `formattedPhoneNumber` is in \"national\" format\r\n\t// then `number` is defined and `countryCallingCode` isn't.\r\n\telse if (number && (defaultCountry || defaultCallingCode)) {\r\n\t\tmetadata.selectNumberingPlan(defaultCountry, defaultCallingCode)\r\n\t\tif (defaultCountry) {\r\n\t\t\tcountry = defaultCountry\r\n\t\t} else {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t\tif (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\r\n\t\t\t\t\tcountry = '001'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tcountryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata)\r\n\t}\r\n\telse return {}\r\n\r\n\tif (!number) {\r\n\t\treturn { countryCallingCode }\r\n\t}\r\n\r\n\tconst {\r\n\t\tnationalNumber,\r\n\t\tcarrierCode\r\n\t} = extractNationalNumber(\r\n\t\tparseIncompletePhoneNumber(number),\r\n\t\tmetadata\r\n\t)\r\n\r\n\t// Sometimes there are several countries\r\n\t// corresponding to the same country phone code\r\n\t// (e.g. NANPA countries all having `1` country phone code).\r\n\t// Therefore, to reliably determine the exact country,\r\n\t// national (significant) number should have been parsed first.\r\n\t//\r\n\t// When `metadata.json` is generated, all \"ambiguous\" country phone codes\r\n\t// get their countries populated with the full set of\r\n\t// \"phone number type\" regular expressions.\r\n\t//\r\n\tconst exactCountry = getCountryByCallingCode(countryCallingCode, nationalNumber, metadata)\r\n\tif (exactCountry) {\r\n\t\tcountry = exactCountry\r\n\t\t/* istanbul ignore if */\r\n\t\tif (exactCountry === '001') {\r\n\t\t\t// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\r\n\t\t\t// If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\r\n\t\t\t// then remove the \"istanbul ignore if\".\r\n\t\t} else {\r\n\t\t\tmetadata.country(country)\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tcountry,\r\n\t\tcountryCallingCode,\r\n\t\tnationalNumber,\r\n\t\tcarrierCode\r\n\t}\r\n}","import parseNumber from './parse_'\r\n\r\nexport default function parsePhoneNumber(text, options, metadata) {\r\n\treturn parseNumber(text, { ...options, v2: true }, metadata)\r\n}","import parsePhoneNumber_ from './parsePhoneNumber_'\r\n\r\nexport default function parsePhoneNumber() {\r\n\tconst { text, options, metadata } = normalizeArguments(arguments)\r\n\treturn parsePhoneNumber_(text, options, metadata)\r\n}\r\n\r\nexport function normalizeArguments(args)\r\n{\r\n\tconst [arg_1, arg_2, arg_3, arg_4] = Array.prototype.slice.call(args)\r\n\r\n\tlet text\r\n\tlet options\r\n\tlet metadata\r\n\r\n\t// If the phone number is passed as a string.\r\n\t// `parsePhoneNumber('88005553535', ...)`.\r\n\tif (typeof arg_1 === 'string') {\r\n\t\ttext = arg_1\r\n\t}\r\n\telse throw new TypeError('A text for parsing must be a string.')\r\n\r\n\t// If \"default country\" argument is being passed then move it to `options`.\r\n\t// `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\r\n\tif (!arg_2 || typeof arg_2 === 'string')\r\n\t{\r\n\t\tif (arg_4) {\r\n\t\t\toptions = arg_3\r\n\t\t\tmetadata = arg_4\r\n\t\t} else {\r\n\t\t\toptions = undefined\r\n\t\t\tmetadata = arg_3\r\n\t\t}\r\n\r\n\t\tif (arg_2) {\r\n\t\t\toptions = { defaultCountry: arg_2, ...options }\r\n\t\t}\r\n\t}\r\n\t// `defaultCountry` is not passed.\r\n\t// Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\r\n\telse if (isObject(arg_2))\r\n\t{\r\n\t\tif (arg_3) {\r\n\t\t\toptions = arg_2\r\n\t\t\tmetadata = arg_3\r\n\t\t} else {\r\n\t\t\tmetadata = arg_2\r\n\t\t}\r\n\t}\r\n\telse throw new Error(`Invalid second argument: ${arg_2}`)\r\n\r\n\treturn {\r\n\t\ttext,\r\n\t\toptions,\r\n\t\tmetadata\r\n\t}\r\n}\r\n\r\n// Otherwise istanbul would show this as \"branch not covered\".\r\n/* istanbul ignore next */\r\nconst isObject = _ => typeof _ === 'object'","import parsePhoneNumber from './parsePhoneNumber_'\r\nimport ParseError from './ParseError'\r\nimport { isSupportedCountry } from './metadata'\r\n\r\nexport default function parsePhoneNumberFromString(text, options, metadata) {\r\n\t// Validate `defaultCountry`.\r\n\tif (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\r\n\t\toptions = {\r\n\t\t\t...options,\r\n\t\t\tdefaultCountry: undefined\r\n\t\t}\r\n\t}\r\n\t// Parse phone number.\r\n\ttry {\r\n\t\treturn parsePhoneNumber(text, options, metadata)\r\n\t} catch (error) {\r\n\t\t/* istanbul ignore else */\r\n\t\tif (error instanceof ParseError) {\r\n\t\t\t//\r\n\t\t} else {\r\n\t\t\tthrow error\r\n\t\t}\r\n\t}\r\n}\r\n","import { normalizeArguments } from './parsePhoneNumber'\r\nimport parsePhoneNumberFromString_ from './parsePhoneNumberFromString_'\r\n\r\nexport default function parsePhoneNumberFromString() {\r\n\tconst { text, options, metadata } = normalizeArguments(arguments)\r\n\treturn parsePhoneNumberFromString_(text, options, metadata)\r\n}\r\n","import Metadata from './metadata'\r\n\r\nexport default function getCountries(metadata) {\r\n\treturn new Metadata(metadata).getCountries()\r\n}","import PropTypes from 'prop-types'\r\n\r\nexport const metadata = PropTypes.shape({\r\n\tcountry_calling_codes : PropTypes.object.isRequired,\r\n\tcountries : PropTypes.object.isRequired\r\n})\r\n\r\nexport const labels = PropTypes.objectOf(PropTypes.string)","// Counts all occurences of a symbol in a string\r\nexport function count_occurences(symbol, string) {\r\n\tlet count = 0\r\n\t// Using `.split('')` here instead of normal `for ... of`\r\n\t// because the importing application doesn't neccessarily include an ES6 polyfill.\r\n\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\r\n\t// (the ones consisting of four bytes)\r\n\t// but template placeholder characters don't fall into that range\r\n\t// so skipping such miscellaneous \"exotic\" characters\r\n\t// won't matter here for just counting placeholder character occurrences.\r\n\tfor (const character of string.split('')) {\r\n\t\tif (character === symbol) {\r\n\t\t\tcount++\r\n\t\t}\r\n\t}\r\n\treturn count\r\n}","import { count_occurences } from './helpers'\r\n\r\nexport default function closeBraces(retained_template, template, placeholder = 'x', empty_placeholder = ' ')\r\n{\r\n\tlet cut_before = retained_template.length\r\n\r\n\tconst opening_braces = count_occurences('(', retained_template)\r\n\tconst closing_braces = count_occurences(')', retained_template)\r\n\r\n\tlet dangling_braces = opening_braces - closing_braces\r\n\r\n\twhile (dangling_braces > 0 && cut_before < template.length)\r\n\t{\r\n\t\tretained_template += template[cut_before].replace(placeholder, empty_placeholder)\r\n\r\n\t\tif (template[cut_before] === ')')\r\n\t\t{\r\n\t\t\tdangling_braces--\r\n\t\t}\r\n\r\n\t\tcut_before++\r\n\t}\r\n\r\n\treturn retained_template\r\n}\r\n","import template_formatter from './templateFormatter'\r\n\r\n// Formats `value` value preserving `caret` at the same character.\r\n//\r\n// `{ value, caret }` attribute is the result of `parse()` function call.\r\n//\r\n// Returns `{ text, caret }` where the new `caret` is the caret position\r\n// inside `text` text corresponding to the original `caret` position inside `value`.\r\n//\r\n// `formatter(value)` is a function returning `{ text, template }`.\r\n//\r\n// `text` is the `value` value formatted using `template`.\r\n// It may either cut off the non-filled right part of the `template`\r\n// or it may fill the non-filled character placeholders\r\n// in the right part of the `template` with `spacer`\r\n// which is a space (' ') character by default.\r\n//\r\n// `template` is the template used to format the `value`.\r\n// It can be either a full-length template or a partial template.\r\n//\r\n// `formatter` can also be a string — a `template`\r\n// where character placeholders are denoted by 'x'es.\r\n// In this case `formatter` function is automatically created.\r\n//\r\n// Example:\r\n//\r\n// `value` is '880',\r\n// `caret` is `2` (before the first `0`)\r\n//\r\n// `formatter` is `'880' =>\r\n// { text: '8 (80 )', template: 'x (xxx) xxx-xx-xx' }`\r\n//\r\n// The result is `{ text: '8 (80 )', caret: 4 }`.\r\n//\r\nexport default function format(value, caret, formatter)\r\n{\r\n\tif (typeof formatter === 'string')\r\n\t{\r\n\t\tformatter = template_formatter(formatter)\r\n\t}\r\n\r\n\tlet { text, template } = formatter(value) || {}\r\n\r\n\tif (text === undefined)\r\n\t{\r\n\t\t text = value\r\n\t}\r\n\r\n\tif (template)\r\n\t{\r\n\t\tif (caret === undefined)\r\n\t\t{\r\n\t\t\tcaret = text.length\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tlet index = 0\r\n\t\t\tlet found = false\r\n\r\n\t\t\tlet possibly_last_input_character_index = -1\r\n\r\n\t\t\twhile (index < text.length && index < template.length)\r\n\t\t\t{\r\n\t\t\t\t// Character placeholder found\r\n\t\t\t\tif (text[index] !== template[index])\r\n\t\t\t\t{\r\n\t\t\t\t\tif (caret === 0)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfound = true\r\n\t\t\t\t\t\tcaret = index\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tpossibly_last_input_character_index = index\r\n\r\n\t\t\t\t\tcaret--\r\n\t\t\t\t}\r\n\r\n\t\t\t\tindex++\r\n\t\t\t}\r\n\r\n\t\t\t// If the caret was positioned after last input character,\r\n\t\t\t// then the text caret index is just after the last input character.\r\n\t\t\tif (!found)\r\n\t\t\t{\r\n\t\t\t\tcaret = possibly_last_input_character_index + 1\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn { text, caret }\r\n}","import { count_occurences } from './helpers'\r\nimport close_braces from './closeBraces'\r\n\r\n// Takes a `template` where character placeholders\r\n// are denoted by 'x'es (e.g. 'x (xxx) xxx-xx-xx').\r\n//\r\n// Returns a function which takes `value` characters\r\n// and returns the `template` filled with those characters.\r\n// If the `template` can only be partially filled\r\n// then it is cut off.\r\n//\r\n// If `should_close_braces` is `true`,\r\n// then it will also make sure all dangling braces are closed,\r\n// e.g. \"8 (8\" -> \"8 (8 )\" (iPhone style phone number input).\r\n//\r\nexport default function(template, placeholder = 'x', should_close_braces)\r\n{\r\n\tif (!template)\r\n\t{\r\n\t\treturn value => ({ text: value })\r\n\t}\r\n\r\n\tconst characters_in_template = count_occurences(placeholder, template)\r\n\r\n\treturn function(value)\r\n\t{\r\n\t\tif (!value)\r\n\t\t{\r\n\t\t\treturn { text: '', template }\r\n\t\t}\r\n\r\n\t\tlet value_character_index = 0\r\n\t\tlet filled_in_template = ''\r\n\r\n\t\t// Using `.split('')` here instead of normal `for ... of`\r\n\t\t// because the importing application doesn't neccessarily include an ES6 polyfill.\r\n\t\t// The `.split('')` approach discards \"exotic\" UTF-8 characters\r\n\t\t// (the ones consisting of four bytes)\r\n\t\t// but template placeholder characters don't fall into that range\r\n\t\t// and appending UTF-8 characters to a string in parts still works.\r\n\t\tfor (const character of template.split(''))\r\n\t\t{\r\n\t\t\tif (character !== placeholder)\r\n\t\t\t{\r\n\t\t\t\tfilled_in_template += character\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tfilled_in_template += value[value_character_index]\r\n\t\t\tvalue_character_index++\r\n\r\n\t\t\t// If the last available value character has been filled in,\r\n\t\t\t// then return the filled in template\r\n\t\t\t// (either trim the right part or retain it,\r\n\t\t\t// if no more character placeholders in there)\r\n\t\t\tif (value_character_index === value.length)\r\n\t\t\t{\r\n\t\t\t\t// If there are more character placeholders\r\n\t\t\t\t// in the right part of the template\r\n\t\t\t\t// then simply trim it.\r\n\t\t\t\tif (value.length < characters_in_template)\r\n\t\t\t\t{\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (should_close_braces)\r\n\t\t{\r\n\t\t\tfilled_in_template = close_braces(filled_in_template, template)\r\n\t\t}\r\n\r\n\t\treturn { text: filled_in_template, template }\r\n\t}\r\n}","export function isReadOnly(element)\r\n{\r\n\treturn element.hasAttribute('readonly')\r\n}\r\n\r\n// Gets selection bounds\r\nexport function getSelection(element)\r\n{\r\n\t// If no selection, return nothing\r\n\tif (element.selectionStart === element.selectionEnd)\r\n\t{\r\n\t\treturn\r\n\t}\r\n\r\n\treturn { start: element.selectionStart, end: element.selectionEnd }\r\n}\r\n\r\n// Key codes\r\nexport const Keys =\r\n{\r\n\tBackspace : 8,\r\n\tDelete : 46\r\n}\r\n\r\n// Finds out the operation to be intercepted and performed\r\n// based on the key down event `keyCode`.\r\nexport function getOperation(event)\r\n{\r\n\tswitch (event.keyCode)\r\n\t{\r\n\t\tcase Keys.Backspace:\r\n\t\t\treturn 'Backspace'\r\n\r\n\t\tcase Keys.Delete:\r\n\t\t\treturn 'Delete'\r\n\t}\r\n}\r\n\r\n// Gets caret position\r\nexport function getCaretPosition(element)\r\n{\r\n\treturn element.selectionStart\r\n}\r\n\r\n// Sets caret position\r\nexport function setCaretPosition(element, caret_position)\r\n{\r\n\t// Sanity check\r\n\tif (caret_position === undefined)\r\n\t{\r\n\t\treturn\r\n\t}\r\n\r\n\t// Set caret position.\r\n\t// There has been an issue with caret positioning on Android devices.\r\n\t// https://github.com/catamphetamine/input-format/issues/2\r\n\t// I was revisiting this issue and looked for similar issues in other libraries.\r\n\t// For example, there's [`text-mask`](https://github.com/text-mask/text-mask) library.\r\n\t// They've had exactly the same issue when the caret seemingly refused to be repositioned programmatically.\r\n\t// The symptoms were the same: whenever the caret passed through a non-digit character of a mask (a whitespace, a bracket, a dash, etc), it looked as if it placed itself one character before its correct position.\r\n\t// https://github.com/text-mask/text-mask/issues/300\r\n\t// They seem to have found a basic fix for it: calling `input.setSelectionRange()` in a timeout rather than instantly for Android devices.\r\n\t// https://github.com/text-mask/text-mask/pull/400/files\r\n\t// I've implemented the same workaround here.\r\n\tif (isAndroid()) {\r\n setTimeout(() => element.setSelectionRange(caret_position, caret_position), 0)\r\n\t} else {\r\n\t\telement.setSelectionRange(caret_position, caret_position)\r\n\t}\r\n}\r\n\r\nfunction isAndroid() {\r\n\t// `navigator` is not defined when running mocha tests.\r\n\tif (typeof navigator !== 'undefined') {\r\n\t\treturn ANDROID_USER_AGENT_REG_EXP.test(navigator.userAgent)\r\n\t}\r\n}\r\n\r\nconst ANDROID_USER_AGENT_REG_EXP = /Android/i","import edit from './edit'\r\nimport parse from './parse'\r\nimport format from './format'\r\n\r\nimport\r\n{\r\n\tisReadOnly,\r\n\tgetOperation,\r\n\tgetSelection,\r\n\tgetCaretPosition,\r\n\tsetCaretPosition\r\n}\r\nfrom './dom'\r\n\r\n// Deprecated.\r\n// I don't know why this function exists.\r\nexport function onCut(event, input, _parse, _format, on_change)\r\n{\r\n\tif (isReadOnly(input)) {\r\n\t\treturn\r\n\t}\r\n\r\n\t// The actual cut hasn't happened just yet hence the timeout.\r\n\tsetTimeout(() => formatInputText(input, _parse, _format, undefined, on_change), 0)\r\n}\r\n\r\n// Deprecated.\r\n// I don't know why this function exists.\r\nexport function onPaste(event, input, _parse, _format, on_change)\r\n{\r\n\tif (isReadOnly(input)) {\r\n\t\treturn\r\n\t}\r\n\r\n\tconst selection = getSelection(input)\r\n\r\n\t// If selection is made,\r\n\t// just erase the selected text\r\n\t// prior to pasting\r\n\tif (selection)\r\n\t{\r\n\t\teraseSelection(input, selection)\r\n\t}\r\n\r\n\tformatInputText(input, _parse, _format, undefined, on_change)\r\n}\r\n\r\nexport function onChange(event, input, _parse, _format, on_change)\r\n{\r\n\tformatInputText(input, _parse, _format, undefined, on_change)\r\n}\r\n\r\n// \"Delete\" and \"Backspace\" keys are special\r\n// in a way that they're not handled by the regular `onChange()` handler\r\n// and instead are intercepted and re-applied manually.\r\n// The reason is that normally hitting \"Backspace\" or \"Delete\"\r\n// results in erasing a character, but that character might be any character,\r\n// while it would be a better \"user experience\" if it erased not just any character\r\n// but the closest \"meaningful\" character.\r\n// For example, if a template is `(xxx) xxx-xxxx`,\r\n// and the `` value is `(111) 222-3333`,\r\n// then, if a user begins erasing the `3333` part via \"Backspace\"\r\n// and reaches the \"-\" character, then it would just erase the \"-\" character.\r\n// Nothing wrong with that, but it would be a better \"user experience\"\r\n// if hitting \"Backspace\" at that position would erase the closest \"meaningful\"\r\n// character, which would be the rightmost `2`.\r\n// So, what this `onKeyDown()` handler does is it intercepts\r\n// \"Backspace\" and \"Delete\" keys and re-applies those operations manually\r\n// following the logic described above.\r\nexport function onKeyDown(event, input, _parse, _format, on_change)\r\n{\r\n\tif (isReadOnly(input)) {\r\n\t\treturn\r\n\t}\r\n\r\n\tconst operation = getOperation(event)\r\n\tswitch (operation)\r\n\t{\r\n\t\tcase 'Delete':\r\n\t\tcase 'Backspace':\r\n\t\t\t// Intercept this operation and perform it manually.\r\n\t\t\tevent.preventDefault()\r\n\r\n\t\t\tconst selection = getSelection(input)\r\n\r\n\t\t\t// If a selection is made, just erase the selected text.\r\n\t\t\tif (selection)\r\n\t\t\t{\r\n\t\t\t\teraseSelection(input, selection)\r\n\t\t\t\treturn formatInputText(input, _parse, _format, undefined, on_change)\r\n\t\t\t}\r\n\r\n\t\t\t// Else, perform the (character erasing) operation manually.\r\n\t\t\treturn formatInputText(input, _parse, _format, operation, on_change)\r\n\r\n\t\tdefault:\r\n\t\t\t// Will be handled normally as part of the `onChange` handler.\r\n\t}\r\n}\r\n\r\n/**\r\n * Erases the selected text inside an ``.\r\n * @param {DOMElement} input\r\n * @param {Selection} selection\r\n */\r\nfunction eraseSelection(input, selection)\r\n{\r\n\tlet text = input.value\r\n\ttext = text.slice(0, selection.start) + text.slice(selection.end)\r\n\r\n\tinput.value = text\r\n\tsetCaretPosition(input, selection.start)\r\n}\r\n\r\n/**\r\n * Parses and re-formats `` textual value.\r\n * E.g. when a user enters something into the ``\r\n * that raw input must first be parsed and the re-formatted properly.\r\n * Is called either after some user input (e.g. entered a character, pasted something)\r\n * or after the user performed an `operation` (e.g. \"Backspace\", \"Delete\").\r\n * @param {DOMElement} input\r\n * @param {Function} parse\r\n * @param {Function} format\r\n * @param {string} [operation] - The operation that triggered `` textual value change. E.g. \"Backspace\", \"Delete\".\r\n * @param {Function} onChange\r\n */\r\nfunction formatInputText(input, _parse, _format, operation, on_change)\r\n{\r\n\t// Parse `` textual value.\r\n\t// Get the `value` and `caret` position.\r\n\tlet { value, caret } = parse(input.value, getCaretPosition(input), _parse)\r\n\r\n\t// If a user performed an operation (\"Backspace\", \"Delete\")\r\n\t// then apply that operation and get the new `value` and `caret` position.\r\n\tif (operation)\r\n\t{\r\n\t\tconst newValueAndCaret = edit(value, caret, operation)\r\n\r\n\t\tvalue = newValueAndCaret.value\r\n\t\tcaret = newValueAndCaret.caret\r\n\t}\r\n\r\n\t// Format the `value`.\r\n\t// (and reposition the caret accordingly)\r\n\tconst formatted = format(value, caret, _format)\r\n\r\n\tconst text = formatted.text\r\n\tcaret = formatted.caret\r\n\r\n\t// Set `` textual value manually\r\n\t// to prevent React from resetting the caret position\r\n\t// later inside a subsequent `render()`.\r\n\t// Doesn't work for custom `inputComponent`s for some reason.\r\n\tinput.value = text\r\n\t// Position the caret properly.\r\n\tsetCaretPosition(input, caret)\r\n\r\n\t// If the `` textual value did change,\r\n\t// then the parsed `value` may have changed too.\r\n\ton_change(value)\r\n}","// Parses the `text`.\r\n//\r\n// Returns `{ value, caret }` where `caret` is\r\n// the caret position inside `value`\r\n// corresponding to the `caret_position` inside `text`.\r\n//\r\n// The `text` is parsed by feeding each character sequentially to\r\n// `parse_character(character, value)` function\r\n// and appending the result (if it's not `undefined`) to `value`.\r\n//\r\n// Example:\r\n//\r\n// `text` is `8 (800) 555-35-35`,\r\n// `caret_position` is `4` (before the first `0`).\r\n// `parse_character` is `(character, value) =>\r\n// if (character >= '0' && character <= '9') { return character }`.\r\n//\r\n// then `parse()` outputs `{ value: '88005553535', caret: 2 }`.\r\n//\r\nexport default function parse(text, caret_position, parse_character)\r\n{\r\n\tlet value = ''\r\n\r\n\tlet focused_input_character_index = 0\r\n\r\n\tlet index = 0\r\n\twhile (index < text.length)\r\n\t{\r\n\t\tconst character = parse_character(text[index], value)\r\n\r\n\t\tif (character !== undefined)\r\n\t\t{\r\n\t\t\tvalue += character\r\n\r\n\t\t\tif (caret_position !== undefined)\r\n\t\t\t{\r\n\t\t\t\tif (caret_position === index)\r\n\t\t\t\t{\r\n\t\t\t\t\tfocused_input_character_index = value.length - 1;\r\n\t\t\t\t}\r\n\t\t\t\telse if (caret_position > index)\r\n\t\t\t\t{\r\n\t\t\t\t\tfocused_input_character_index = value.length\r\n\t\t\t\t}\r\n\t\t\t }\r\n\t\t}\r\n\r\n\t\tindex++\r\n\t}\r\n\r\n\t// If caret position wasn't specified\r\n\tif (caret_position === undefined)\r\n\t{\r\n\t\t// Then set caret position to \"after the last input character\"\r\n\t\tfocused_input_character_index = value.length\r\n\t}\r\n\r\n\tconst result =\r\n\t{\r\n\t\tvalue,\r\n\t\tcaret : focused_input_character_index\r\n\t}\r\n\r\n\treturn result\r\n}","// Edits text `value` (if `operation` is passed) and repositions the `caret` if needed.\r\n//\r\n// Example:\r\n//\r\n// value - '88005553535'\r\n// caret - 2 // starting from 0; is positioned before the first zero\r\n// operation - 'Backspace'\r\n//\r\n// Returns\r\n// {\r\n// \tvalue: '8005553535'\r\n// \tcaret: 1\r\n// }\r\n//\r\n// Currently supports just 'Delete' and 'Backspace' operations\r\n//\r\nexport default function edit(value, caret, operation)\r\n{\r\n\tswitch (operation)\r\n\t{\r\n\t\tcase 'Backspace':\r\n\t\t\t// If there exists the previous character,\r\n\t\t\t// then erase it and reposition the caret.\r\n\t\t\tif (caret > 0)\r\n\t\t\t{\r\n\t\t\t\t// Remove the previous character\r\n\t\t\t\tvalue = value.slice(0, caret - 1) + value.slice(caret)\r\n\t\t\t\t// Position the caret where the previous (erased) character was\r\n\t\t\t\tcaret--\r\n\t\t\t}\r\n\t\t\tbreak\r\n\r\n\t\tcase 'Delete':\r\n\t\t\t// Remove current digit (if any)\r\n\t\t\tvalue = value.slice(0, caret) + value.slice(caret + 1)\r\n\t\t\tbreak\r\n\t}\r\n\r\n\treturn { value, caret }\r\n}","// This is just `./ReactInput.js` rewritten in Hooks.\r\n\r\nimport React, { useCallback, useRef } from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport {\r\n\tonChange as onInputChange,\r\n\tonKeyDown as onInputKeyDown\r\n} from '../inputControl'\r\n\r\n// Usage:\r\n//\r\n// this.setState({ phone })}\r\n// \tparse={character => character}\r\n// \tformat={value => ({ text: value, template: 'xxxxxxxx' })}/>\r\n//\r\nfunction Input({\r\n\tvalue,\r\n\tparse,\r\n\tformat,\r\n\tinputComponent: InputComponent,\r\n\tonChange,\r\n\tonKeyDown,\r\n\t...rest\r\n}, ref) {\r\n\tconst internalRef = useRef();\r\n\tconst setRef = useCallback((instance) => {\r\n\t\tinternalRef.current = instance;\r\n\t\tif (ref) {\r\n\t\t\tif (typeof ref === 'function') {\r\n\t\t\t\tref(instance)\r\n\t\t\t} else {\r\n\t\t\t\tref.current = instance\r\n\t\t\t}\r\n\t\t}\r\n\t}, [ref]);\r\n\tconst _onChange = useCallback((event) => {\r\n\t\treturn onInputChange(\r\n\t\t\tevent,\r\n\t\t\tinternalRef.current,\r\n\t\t\tparse,\r\n\t\t\tformat,\r\n\t\t\tonChange\r\n\t\t)\r\n\t}, [internalRef, parse, format, onChange])\r\n\r\n\tconst _onKeyDown = useCallback((event) => {\r\n\t\tif (onKeyDown) {\r\n\t\t\tonKeyDown(event)\r\n\t\t}\r\n\t\treturn onInputKeyDown(\r\n\t\t\tevent,\r\n\t\t\tinternalRef.current,\r\n\t\t\tparse,\r\n\t\t\tformat,\r\n\t\t\tonChange\r\n\t\t)\r\n\t}, [internalRef, parse, format, onChange, onKeyDown])\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nInput = React.forwardRef(Input)\r\n\r\nInput.propTypes = {\r\n\t// Parses a single characher of `` text.\r\n\tparse: PropTypes.func.isRequired,\r\n\r\n\t// Formats `value` into `` text.\r\n\tformat: PropTypes.func.isRequired,\r\n\r\n\t// Renders `` by default.\r\n\tinputComponent: PropTypes.elementType.isRequired,\r\n\r\n\t// `` `type` attribute.\r\n\ttype: PropTypes.string.isRequired,\r\n\r\n\t// Is parsed from text.\r\n\tvalue: PropTypes.string,\r\n\r\n\t// This handler is called each time `` text is changed.\r\n\tonChange: PropTypes.func.isRequired,\r\n\r\n\t// Passthrough\r\n\tonKeyDown: PropTypes.func,\r\n\tonCut: PropTypes.func,\r\n\tonPaste: PropTypes.func\r\n}\r\n\r\nInput.defaultProps = {\r\n\t// Renders `` by default.\r\n\tinputComponent: 'input',\r\n\r\n\t// `` `type` attribute.\r\n\ttype: 'text'\r\n}\r\n\r\nexport default Input\r\n\r\nfunction isEmptyValue(value) {\r\n\treturn value === undefined || value === null\r\n}","export default class AsYouTypeState {\r\n\tconstructor({ onCountryChange, onCallingCodeChange }) {\r\n\t\tthis.onCountryChange = onCountryChange\r\n\t\tthis.onCallingCodeChange = onCallingCodeChange\r\n\t}\r\n\r\n\treset(defaultCountry, defaultCallingCode) {\r\n\t\tthis.international = false\r\n\t\tthis.IDDPrefix = undefined\r\n\t\tthis.missingPlus = undefined\r\n\t\tthis.callingCode = undefined\r\n\t\tthis.digits = ''\r\n\t\tthis.resetNationalSignificantNumber()\r\n\t\tthis.initCountryAndCallingCode(defaultCountry, defaultCallingCode)\r\n\t}\r\n\r\n\tresetNationalSignificantNumber() {\r\n\t\tthis.nationalSignificantNumber = this.getNationalDigits()\r\n\t\tthis.nationalSignificantNumberMatchesInput = true\r\n\t\tthis.nationalPrefix = undefined\r\n\t\tthis.carrierCode = undefined\r\n\t\tthis.complexPrefixBeforeNationalSignificantNumber = undefined\r\n\t}\r\n\r\n\tupdate = (properties) => {\r\n\t\tfor (const key of Object.keys(properties)) {\r\n\t\t\tthis[key] = properties[key]\r\n\t\t}\r\n\t}\r\n\r\n\tinitCountryAndCallingCode(country, callingCode) {\r\n\t\tthis.setCountry(country)\r\n\t\tthis.setCallingCode(callingCode)\r\n\t}\r\n\r\n\tsetCountry(country) {\r\n\t\tthis.country = country\r\n\t\tthis.onCountryChange(country)\r\n\t}\r\n\r\n\tsetCallingCode(callingCode) {\r\n\t\tthis.callingCode = callingCode\r\n\t\treturn this.onCallingCodeChange(this.country, callingCode)\r\n\t}\r\n\r\n\tstartInternationalNumber() {\r\n\t\t// Prepend the `+` to parsed input.\r\n\t\tthis.international = true\r\n\t\t// If a default country was set then reset it\r\n\t\t// because an explicitly international phone\r\n\t\t// number is being entered.\r\n\t\tthis.initCountryAndCallingCode()\r\n\t}\r\n\r\n\tappendDigits(nextDigits) {\r\n\t\tthis.digits += nextDigits\r\n\t}\r\n\r\n\tappendNationalSignificantNumberDigits(nextDigits) {\r\n\t\tthis.nationalSignificantNumber += nextDigits\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the part of `this.digits` that corresponds to the national number.\r\n\t * Basically, all digits that have been input by the user, except for the\r\n\t * international prefix and the country calling code part\r\n\t * (if the number is an international one).\r\n\t * @return {string}\r\n\t */\r\n\tgetNationalDigits() {\r\n\t\tif (this.international) {\r\n\t\t\treturn this.digits.slice(\r\n\t\t\t\t(this.IDDPrefix ? this.IDDPrefix.length : 0) +\r\n\t\t\t\t(this.callingCode ? this.callingCode.length : 0)\r\n\t\t\t)\r\n\t\t}\r\n\t\treturn this.digits\r\n\t}\r\n\r\n\tgetDigitsWithoutInternationalPrefix() {\r\n\t\tif (this.international) {\r\n\t\t\tif (this.IDDPrefix) {\r\n\t\t\t\treturn this.digits.slice(this.IDDPrefix.length)\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.digits\r\n\t}\r\n}","// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\r\nexport const DIGIT_PLACEHOLDER = 'x' // '\\u2008' (punctuation space)\r\nconst DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER)\r\n\r\n// Counts all occurences of a symbol in a string.\r\n// Unicode-unsafe (because using `.split()`).\r\nexport function countOccurences(symbol, string) {\r\n\tlet count = 0\r\n\t// Using `.split('')` to iterate through a string here\r\n\t// to avoid requiring `Symbol.iterator` polyfill.\r\n\t// `.split('')` is generally not safe for Unicode,\r\n\t// but in this particular case for counting brackets it is safe.\r\n\t// for (const character of string)\r\n\tfor (const character of string.split('')) {\r\n\t\tif (character === symbol) {\r\n\t\t\tcount++\r\n\t\t}\r\n\t}\r\n\treturn count\r\n}\r\n\r\n// Repeats a string (or a symbol) N times.\r\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\r\nexport function repeat(string, times) {\r\n\tif (times < 1) {\r\n\t\treturn ''\r\n\t}\r\n\tlet result = ''\r\n\twhile (times > 1) {\r\n\t\tif (times & 1) {\r\n\t\t\tresult += string\r\n\t\t}\r\n\t\ttimes >>= 1\r\n\t\tstring += string\r\n\t}\r\n\treturn result + string\r\n}\r\n\r\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\r\n\tif (string[cutBeforeIndex] === ')') {\r\n\t\tcutBeforeIndex++\r\n\t}\r\n\treturn stripNonPairedParens(string.slice(0, cutBeforeIndex))\r\n}\r\n\r\nexport function closeNonPairedParens(template, cut_before) {\r\n\tconst retained_template = template.slice(0, cut_before)\r\n\tconst opening_braces = countOccurences('(', retained_template)\r\n\tconst closing_braces = countOccurences(')', retained_template)\r\n\tlet dangling_braces = opening_braces - closing_braces\r\n\twhile (dangling_braces > 0 && cut_before < template.length) {\r\n\t\tif (template[cut_before] === ')') {\r\n\t\t\tdangling_braces--\r\n\t\t}\r\n\t\tcut_before++\r\n\t}\r\n\treturn template.slice(0, cut_before)\r\n}\r\n\r\nexport function stripNonPairedParens(string) {\r\n\tconst dangling_braces =[]\r\n\tlet i = 0\r\n\twhile (i < string.length) {\r\n\t\tif (string[i] === '(') {\r\n\t\t\tdangling_braces.push(i)\r\n\t\t}\r\n\t\telse if (string[i] === ')') {\r\n\t\t\tdangling_braces.pop()\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\tlet start = 0\r\n\tlet cleared_string = ''\r\n\tdangling_braces.push(string.length)\r\n\tfor (const index of dangling_braces) {\r\n\t\tcleared_string += string.slice(start, index)\r\n\t\tstart = index + 1\r\n\t}\r\n\treturn cleared_string\r\n}\r\n\r\nexport function populateTemplateWithDigits(template, position, digits) {\r\n\t// Using `.split('')` to iterate through a string here\r\n\t// to avoid requiring `Symbol.iterator` polyfill.\r\n\t// `.split('')` is generally not safe for Unicode,\r\n\t// but in this particular case for `digits` it is safe.\r\n\t// for (const digit of digits)\r\n\tfor (const digit of digits.split('')) {\r\n\t\t// If there is room for more digits in current `template`,\r\n\t\t// then set the next digit in the `template`,\r\n\t\t// and return the formatted digits so far.\r\n\t\t// If more digits are entered than the current format could handle.\r\n\t\tif (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tposition = template.search(DIGIT_PLACEHOLDER_MATCHER)\r\n\t\ttemplate = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit)\r\n\t}\r\n\treturn [template, position]\r\n}","import checkNumberLength from './helpers/checkNumberLength'\r\nimport parseDigits from './helpers/parseDigits'\r\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat'\r\n\r\nexport default function formatCompleteNumber(state, format, {\r\n\tmetadata,\r\n\tshouldTryNationalPrefixFormattingRule,\r\n\tgetSeparatorAfterNationalPrefix\r\n}) {\r\n\tconst matcher = new RegExp(`^(?:${format.pattern()})$`)\r\n\tif (matcher.test(state.nationalSignificantNumber)) {\r\n\t\treturn formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(\r\n\t\t\tstate,\r\n\t\t\tformat,\r\n\t\t\t{\r\n\t\t\t\tmetadata,\r\n\t\t\t\tshouldTryNationalPrefixFormattingRule,\r\n\t\t\t\tgetSeparatorAfterNationalPrefix\r\n\t\t\t}\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport function canFormatCompleteNumber(nationalSignificantNumber, metadata) {\r\n\treturn checkNumberLength(nationalSignificantNumber, metadata) === 'IS_POSSIBLE'\r\n}\r\n\r\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\r\n\tmetadata,\r\n\tshouldTryNationalPrefixFormattingRule,\r\n\tgetSeparatorAfterNationalPrefix\r\n}) {\r\n\t// `format` has already been checked for `nationalPrefix` requirement.\r\n\r\n\tconst {\r\n\t\tnationalSignificantNumber,\r\n\t\tinternational,\r\n\t\tnationalPrefix,\r\n\t\tcarrierCode\r\n\t} = state\r\n\r\n\t// Format the number with using `national_prefix_formatting_rule`.\r\n\t// If the resulting formatted number is a valid formatted number, then return it.\r\n\t//\r\n\t// Google's AsYouType formatter is different in a way that it doesn't try\r\n\t// to format using the \"national prefix formatting rule\", and instead it\r\n\t// simply prepends a national prefix followed by a \" \" character.\r\n\t// This code does that too, but as a fallback.\r\n\t// The reason is that \"national prefix formatting rule\" may use parentheses,\r\n\t// which wouldn't be included has it used the simpler Google's way.\r\n\t//\r\n\tif (shouldTryNationalPrefixFormattingRule(format)) {\r\n\t\tconst formattedNumber = formatNationalNumber(state, format, {\r\n\t\t\tuseNationalPrefixFormattingRule: true,\r\n\t\t\tgetSeparatorAfterNationalPrefix,\r\n\t\t\tmetadata\r\n\t\t})\r\n\t\tif (formattedNumber) {\r\n\t\t\treturn formattedNumber\r\n\t\t}\r\n\t}\r\n\r\n\t// Format the number without using `national_prefix_formatting_rule`.\r\n\treturn formatNationalNumber(state, format, {\r\n\t\tuseNationalPrefixFormattingRule: false,\r\n\t\tgetSeparatorAfterNationalPrefix,\r\n\t\tmetadata\r\n\t})\r\n}\r\n\r\nfunction formatNationalNumber(state, format, {\r\n\tmetadata,\r\n\tuseNationalPrefixFormattingRule,\r\n\tgetSeparatorAfterNationalPrefix\r\n}) {\r\n\tlet formattedNationalNumber = formatNationalNumberUsingFormat(\r\n\t\tstate.nationalSignificantNumber,\r\n\t\tformat,\r\n\t\t{\r\n\t\t\tcarrierCode: state.carrierCode,\r\n\t\t\tuseInternationalFormat: state.international,\r\n\t\t\twithNationalPrefix: useNationalPrefixFormattingRule,\r\n\t\t\tmetadata\r\n\t\t}\r\n\t)\r\n\tif (!useNationalPrefixFormattingRule) {\r\n\t\tif (state.nationalPrefix) {\r\n\t\t\t// If a national prefix was extracted, then just prepend it,\r\n\t\t\t// followed by a \" \" character.\r\n\t\t\tformattedNationalNumber = state.nationalPrefix +\r\n\t\t\t\tgetSeparatorAfterNationalPrefix(format) +\r\n\t\t\t\tformattedNationalNumber\r\n\t\t} else if (state.complexPrefixBeforeNationalSignificantNumber) {\r\n\t\t\tformattedNationalNumber = state.complexPrefixBeforeNationalSignificantNumber +\r\n\t\t\t\t' ' +\r\n\t\t\t\tformattedNationalNumber\r\n\t\t}\r\n\t}\r\n\tif (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\r\n\t\treturn formattedNationalNumber\r\n\t}\r\n}\r\n\r\n// Check that the formatted phone number contains exactly\r\n// the same digits that have been input by the user.\r\n// For example, when \"0111523456789\" is input for `AR` country,\r\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\r\n// which means that the national part of `this.digits` isn't simply equal to\r\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\r\n//\r\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\r\n// being formatted via `metadata[country].national_prefix_transform_rule`.\r\n// For example, for `VI` country, it prepends `340` to the national number,\r\n// and if this check hasn't been implemented, then there would be a bug\r\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\r\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\r\n//\r\n// So, all these \"gotchas\" are filtered out.\r\n//\r\n// In the original Google's code, the comments say:\r\n// \"Check that we didn't remove nor add any extra digits when we matched\r\n// this formatting pattern. This usually happens after we entered the last\r\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\r\n// formatted but AYTF should retain all the number entered and not change\r\n// in order to match a format (of same leading digits and length) display\r\n// in that way.\"\r\n// \"If it's the same (i.e entered number and format is same), then it's\r\n// safe to return this in formatted number as nothing is lost / added.\"\r\n// Otherwise, don't use this format.\r\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\r\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\r\n//\r\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\r\n\treturn parseDigits(formattedNationalNumber) === state.getNationalDigits()\r\n}","export default class PatternMatcher {\r\n\tconstructor(pattern) {\r\n\t\tthis.matchTree = new PatternParser().parse(pattern)\r\n\t}\r\n\r\n\tmatch(string, { allowOverflow } = {}) {\r\n\t\tif (!string) {\r\n\t\t\tthrow new Error('String is required')\r\n\t\t}\r\n\t\tconst result = match(string.split(''), this.matchTree, true)\r\n\t\tif (result && result.match) {\r\n\t\t\tdelete result.matchedChars\r\n\t\t}\r\n\t\tif (result && result.overflow) {\r\n\t\t\tif (!allowOverflow) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result\r\n\t}\r\n}\r\n\r\nfunction match(characters, tree, last) {\r\n\tif (typeof tree === 'string') {\r\n\t\tif (last) {\r\n\t\t\t// `tree` is always a single character.\r\n\t\t\tif (characters.length > tree.length) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\toverflow: true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst characterString = characters.join('')\r\n\t\tif (tree.indexOf(characterString) === 0) {\r\n\t\t\t// `tree` is always a single character.\r\n\t\t\t// If `tree.indexOf(characterString) === 0`\r\n\t\t\t// then `characters.length === tree.length`.\r\n\t\t\t/* istanbul ignore else */\r\n\t\t\tif (characters.length === tree.length) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tmatch: true,\r\n\t\t\t\t\tmatchedChars: characters\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// `tree` is always a single character.\r\n\t\t\t// If `tree.indexOf(characterString) === 0`\r\n\t\t\t// then `characters.length === tree.length`.\r\n\t\t\t/* istanbul ignore next */\r\n\t\t\treturn {\r\n\t\t\t\tpartialMatch: true,\r\n\t\t\t\t// matchedChars: characters\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (characterString.indexOf(tree) === 0) {\r\n\t\t\treturn {\r\n\t\t\t\tmatch: true,\r\n\t\t\t\tmatchedChars: characters.slice(0, tree.length)\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn\r\n\t}\r\n\r\n\tif (Array.isArray(tree)) {\r\n\t\tlet restCharacters = characters.slice()\r\n\t\tlet i = 0\r\n\t\twhile (i < tree.length) {\r\n\t\t\tconst subtree = tree[i]\r\n\t\t\tconst result = match(restCharacters, subtree, last && (i === tree.length - 1))\r\n\t\t\tif (!result) {\r\n\t\t\t\treturn\r\n\t\t\t} else if (result.overflow) {\r\n\t\t\t\treturn result\r\n\t\t\t} else if (result.match) {\r\n\t\t\t\t// Continue with the next subtree with the rest of the characters.\r\n\t\t\t\trestCharacters = restCharacters.slice(result.matchedChars.length)\r\n\t\t\t\tif (restCharacters.length === 0) {\r\n\t\t\t\t\tif (i === tree.length - 1) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\t\tmatchedChars: characters\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tpartialMatch: true,\r\n\t\t\t\t\t\t\t// matchedChars: characters\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\tif (result.partialMatch) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tpartialMatch: true,\r\n\t\t\t\t\t\t// matchedChars: characters\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthrow new Error(`Unsupported match result:\\n${JSON.stringify(result, null, 2)}`)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ti++\r\n\t\t}\r\n\t\t// If `last` then overflow has already been checked\r\n\t\t// by the last element of the `tree` array.\r\n\t\t/* istanbul ignore if */\r\n\t\tif (last) {\r\n\t\t\treturn {\r\n\t\t\t\toverflow: true\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tmatch: true,\r\n\t\t\tmatchedChars: characters.slice(0, characters.length - restCharacters.length)\r\n\t\t}\r\n\t}\r\n\r\n\tswitch (tree.op) {\r\n\t\tcase '|':\r\n\t\t\tlet partialMatch\r\n\t\t\tfor (const branch of tree.args) {\r\n\t\t\t\tconst result = match(characters, branch, last)\r\n\t\t\t\tif (result) {\r\n\t\t\t\t\tif (result.overflow) {\r\n\t\t\t\t\t\treturn result\r\n\t\t\t\t\t} else if (result.match) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\t\tmatchedChars: result.matchedChars\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\t\t\tif (result.partialMatch) {\r\n\t\t\t\t\t\t\tpartialMatch = true\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthrow new Error(`Unsupported match result:\\n${JSON.stringify(result, null, 2)}`)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (partialMatch) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tpartialMatch: true,\r\n\t\t\t\t\t// matchedChars: ...\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Not even a partial match.\r\n\t\t\treturn\r\n\r\n\t\tcase '[]':\r\n\t\t\tfor (const char of tree.args) {\r\n\t\t\t\tif (characters[0] === char) {\r\n\t\t\t\t\tif (characters.length === 1) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\t\tmatchedChars: characters\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (last) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\toverflow: true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\tmatchedChars: [char]\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// No character matches.\r\n\t\t\treturn\r\n\r\n\t\t/* istanbul ignore next */\r\n\t\tdefault:\r\n\t\t\tthrow new Error(`Unsupported instruction tree: ${tree}`)\r\n\t}\r\n}\r\n\r\nconst OPERATOR = new RegExp(\r\n\t// any of:\r\n\t'(' +\r\n\t\t// or operator\r\n\t\t'\\\\|' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// or group start\r\n\t\t'\\\\(\\\\?\\\\:' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// or group end\r\n\t\t'\\\\)' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// one-of set start\r\n\t\t'\\\\[' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// one-of set end\r\n\t\t'\\\\]' +\r\n\t')'\r\n)\r\n\r\nconst ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/\r\n\r\nclass PatternParser {\r\n\tparse(pattern) {\r\n\t\tthis.context = [{\r\n\t\t\tor: true,\r\n\t\t\tinstructions: []\r\n\t\t}]\r\n\r\n\t\tthis.parsePattern(pattern)\r\n\r\n\t\tif (this.context.length !== 1) {\r\n\t\t\tthrow new Error('Non-finalized contexts left when pattern parse ended')\r\n\t\t}\r\n\r\n\t\tconst { branches, instructions } = this.context[0]\r\n\r\n\t\tif (branches) {\r\n\t\t\treturn [{\r\n\t\t\t\top: '|',\r\n\t\t\t\targs: branches.concat([instructions])\r\n\t\t\t}]\r\n\t\t}\r\n\r\n\t\t/* istanbul ignore if */\r\n\t\tif (instructions.length === 0) {\r\n\t\t\tthrow new Error('Pattern is required')\r\n\t\t}\r\n\r\n\t\treturn instructions\r\n\t}\r\n\r\n\tstartContext(context) {\r\n\t\tthis.context.push(context)\r\n\t}\r\n\r\n\tendContext() {\r\n\t\tthis.context.pop()\r\n\t}\r\n\r\n\tgetContext() {\r\n\t\treturn this.context[this.context.length - 1]\r\n\t}\r\n\r\n\tparsePattern(pattern) {\r\n\t\tif (!pattern) {\r\n\t\t\tthrow new Error('Pattern is required')\r\n\t\t}\r\n\r\n\t\tconst match = pattern.match(OPERATOR)\r\n\t\tif (!match) {\r\n\t\t\tif (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\r\n\t\t\t\tthrow new Error(`Illegal characters found in a pattern: ${pattern}`)\r\n\t\t\t}\r\n\t\t\tthis.getContext().instructions = this.getContext().instructions.concat(\r\n\t\t\t\tpattern.split('')\r\n\t\t\t)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst operator = match[1]\r\n\t\tconst before = pattern.slice(0, match.index)\r\n\t\tconst rightPart = pattern.slice(match.index + operator.length)\r\n\r\n\t\tswitch (operator) {\r\n\t\t\tcase '(?:':\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\tthis.startContext({\r\n\t\t\t\t\tor: true,\r\n\t\t\t\t\tinstructions: [],\r\n\t\t\t\t\tbranches: []\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase ')':\r\n\t\t\t\tif (!this.getContext().or) {\r\n\t\t\t\t\tthrow new Error('\")\" operator must be preceded by \"(?:\" operator')\r\n\t\t\t\t}\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\tif (this.getContext().instructions.length === 0) {\r\n\t\t\t\t\tthrow new Error('No instructions found after \"|\" operator in an \"or\" group')\r\n\t\t\t\t}\r\n\t\t\t\tconst { branches } = this.getContext()\r\n\t\t\t\tbranches.push(\r\n\t\t\t\t\tthis.getContext().instructions\r\n\t\t\t\t)\r\n\t\t\t\tthis.endContext()\r\n\t\t\t\tthis.getContext().instructions.push({\r\n\t\t\t\t\top: '|',\r\n\t\t\t\t\targs: branches\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase '|':\r\n\t\t\t\tif (!this.getContext().or) {\r\n\t\t\t\t\tthrow new Error('\"|\" operator can only be used inside \"or\" groups')\r\n\t\t\t\t}\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\t// The top-level is an implicit \"or\" group, if required.\r\n\t\t\t\tif (!this.getContext().branches) {\r\n\t\t\t\t\t// `branches` are not defined only for the root implicit \"or\" operator.\r\n\t\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\t\tif (this.context.length === 1) {\r\n\t\t\t\t\t\tthis.getContext().branches = []\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthrow new Error('\"branches\" not found in an \"or\" group context')\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.getContext().branches.push(\r\n\t\t\t\t\tthis.getContext().instructions\r\n\t\t\t\t)\r\n\t\t\t\tthis.getContext().instructions = []\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase '[':\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\tthis.startContext({\r\n\t\t\t\t\toneOfSet: true\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase ']':\r\n\t\t\t\tif (!this.getContext().oneOfSet) {\r\n\t\t\t\t\tthrow new Error('\"]\" operator must be preceded by \"[\" operator')\r\n\t\t\t\t}\r\n\t\t\t\tthis.endContext()\r\n\t\t\t\tthis.getContext().instructions.push({\r\n\t\t\t\t\top: '[]',\r\n\t\t\t\t\targs: parseOneOfSet(before)\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\t/* istanbul ignore next */\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(`Unknown operator: ${operator}`)\r\n\t\t}\r\n\r\n\t\tif (rightPart) {\r\n\t\t\tthis.parsePattern(rightPart)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction parseOneOfSet(pattern) {\r\n\tconst values = []\r\n\tlet i = 0\r\n\twhile (i < pattern.length) {\r\n\t\tif (pattern[i] === '-') {\r\n\t\t\tif (i === 0 || i === pattern.length - 1) {\r\n\t\t\t\tthrow new Error(`Couldn't parse a one-of set pattern: ${pattern}`)\r\n\t\t\t}\r\n\t\t\tconst prevValue = pattern[i - 1].charCodeAt(0) + 1\r\n\t\t\tconst nextValue = pattern[i + 1].charCodeAt(0) - 1\r\n\t\t\tlet value = prevValue\r\n\t\t\twhile (value <= nextValue) {\r\n\t\t\t\tvalues.push(String.fromCharCode(value))\r\n\t\t\t\tvalue++\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvalues.push(pattern[i])\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn values\r\n}","import {\r\n\tDIGIT_PLACEHOLDER,\r\n\tcountOccurences,\r\n\trepeat,\r\n\tcutAndStripNonPairedParens,\r\n\tcloseNonPairedParens,\r\n\tstripNonPairedParens,\r\n\tpopulateTemplateWithDigits\r\n} from './AsYouTypeFormatter.util'\r\n\r\nimport formatCompleteNumber, {\r\n\tcanFormatCompleteNumber\r\n} from './AsYouTypeFormatter.complete'\r\n\r\nimport PatternMatcher from './AsYouTypeFormatter.PatternMatcher'\r\n\r\nimport parseDigits from './helpers/parseDigits'\r\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util'\r\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat'\r\nimport { VALID_PUNCTUATION } from './constants'\r\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle'\r\n\r\n// Used in phone number format template creation.\r\n// Could be any digit, I guess.\r\nconst DUMMY_DIGIT = '9'\r\n// I don't know why is it exactly `15`\r\nconst LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15\r\n// Create a phone number consisting only of the digit 9 that matches the\r\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\r\nconst LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH)\r\n\r\n// A set of characters that, if found in a national prefix formatting rules, are an indicator to\r\n// us that we should separate the national prefix from the number when formatting.\r\nconst NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/\r\n\r\n// Deprecated: Google has removed some formatting pattern related code from their repo.\r\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\r\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\r\n// Because this library supports generating custom metadata\r\n// some users may still be using old metadata so the relevant\r\n// code seems to stay until some next major version update.\r\nconst SUPPORT_LEGACY_FORMATTING_PATTERNS = true\r\n\r\n// A pattern that is used to match character classes in regular expressions.\r\n// An example of a character class is \"[1-4]\".\r\nconst CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && (() => /\\[([^\\[\\]])*\\]/g)\r\n\r\n// Any digit in a regular expression that actually denotes a digit. For\r\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\r\n// (8 and 0) are standalone digits, but the rest are not.\r\n// Two look-aheads are needed because the number following \\\\d could be a\r\n// two-digit number, since the phone number can be as long as 15 digits.\r\nconst CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && (() => /\\d(?=[^,}][^,}])/g)\r\n\r\n// A regular expression that is used to determine if a `format` is\r\n// suitable to be used in the \"as you type formatter\".\r\n// A `format` is suitable when the resulting formatted number has\r\n// the same digits as the user has entered.\r\n//\r\n// In the simplest case, that would mean that the format\r\n// doesn't add any additional digits when formatting a number.\r\n// Google says that it also shouldn't add \"star\" (`*`) characters,\r\n// like it does in some Israeli formats.\r\n// Such basic format would only contain \"valid punctuation\"\r\n// and \"captured group\" identifiers ($1, $2, etc).\r\n//\r\n// An example of a format that adds additional digits:\r\n//\r\n// Country: `AR` (Argentina).\r\n// Format:\r\n// {\r\n// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\r\n// \"leading_digits_patterns\": [\"91\"],\r\n// \"national_prefix_formatting_rule\": \"0$1\",\r\n// \"format\": \"$2 15-$3-$4\",\r\n// \"international_format\": \"$1 $2 $3-$4\"\r\n// }\r\n//\r\n// In the format above, the `format` adds `15` to the digits when formatting a number.\r\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\r\n// has previously removed `15` from a national number, so re-adding `15` in `format`\r\n// doesn't actually result in any extra digits added to user's input.\r\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\r\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\r\n//\r\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\r\n// `libphonenumber` code.\r\n//\r\nconst NON_ALTERING_FORMAT_REG_EXP = new RegExp(\r\n\t'^' +\r\n\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t'(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)+' +\r\n\t'$'\r\n)\r\n\r\n// This is the minimum length of the leading digits of a phone number\r\n// to guarantee the first \"leading digits pattern\" for a phone number format\r\n// to be preemptive.\r\nconst MIN_LEADING_DIGITS_LENGTH = 3\r\n\r\nexport default class AsYouTypeFormatter {\r\n\tconstructor({\r\n\t\tstate,\r\n\t\tmetadata\r\n\t}) {\r\n\t\tthis.metadata = metadata\r\n\t\tthis.resetFormat()\r\n\t}\r\n\r\n\tresetFormat() {\r\n\t\tthis.chosenFormat = undefined\r\n\t\tthis.template = undefined\r\n\t\tthis.nationalNumberTemplate = undefined\r\n\t\tthis.populatedNationalNumberTemplate = undefined\r\n\t\tthis.populatedNationalNumberTemplatePosition = -1\r\n\t}\r\n\r\n\treset(numberingPlan, state) {\r\n\t\tthis.resetFormat()\r\n\t\tif (numberingPlan) {\r\n\t\t\tthis.isNANP = numberingPlan.callingCode() === '1'\r\n\t\t\tthis.matchingFormats = numberingPlan.formats()\r\n\t\t\tif (state.nationalSignificantNumber) {\r\n\t\t\t\tthis.narrowDownMatchingFormats(state)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.isNANP = undefined\r\n\t\t\tthis.matchingFormats = []\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Formats an updated phone number.\r\n\t * @param {string} nextDigits — Additional phone number digits.\r\n\t * @param {object} state — `AsYouType` state.\r\n\t * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\r\n\t */\r\n\tformat(nextDigits, state) {\r\n\t\t// See if the phone number digits can be formatted as a complete phone number.\r\n\t\t// If not, use the results from `formatNationalNumberWithNextDigits()`,\r\n\t\t// which formats based on the chosen formatting pattern.\r\n\t\t//\r\n\t\t// Attempting to format complete phone number first is how it's done\r\n\t\t// in Google's `libphonenumber`, so this library just follows it.\r\n\t\t// Google's `libphonenumber` code doesn't explain in detail why does it\r\n\t\t// attempt to format digits as a complete phone number\r\n\t\t// instead of just going with a previoulsy (or newly) chosen `format`:\r\n\t\t//\r\n\t\t// \"Checks to see if there is an exact pattern match for these digits.\r\n\t\t// If so, we should use this instead of any other formatting template\r\n\t\t// whose leadingDigitsPattern also matches the input.\"\r\n\t\t//\r\n\t\tif (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\r\n\t\t\tfor (const format of this.matchingFormats) {\r\n\t\t\t\tconst formattedCompleteNumber = formatCompleteNumber(\r\n\t\t\t\t\tstate,\r\n\t\t\t\t\tformat,\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmetadata: this.metadata,\r\n\t\t\t\t\t\tshouldTryNationalPrefixFormattingRule: format => this.shouldTryNationalPrefixFormattingRule(format, {\r\n\t\t\t\t\t\t\tinternational: state.international,\r\n\t\t\t\t\t\t\tnationalPrefix: state.nationalPrefix\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tgetSeparatorAfterNationalPrefix: this.getSeparatorAfterNationalPrefix\r\n\t\t\t\t\t}\r\n\t\t\t\t)\r\n\t\t\t\tif (formattedCompleteNumber) {\r\n\t\t\t\t\tthis.resetFormat()\r\n\t\t\t\t\tthis.chosenFormat = format\r\n\t\t\t\t\tthis.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state)\r\n\t\t\t\t\tthis.populatedNationalNumberTemplate = formattedCompleteNumber\r\n\t\t\t\t\t// With a new formatting template, the matched position\r\n\t\t\t\t\t// using the old template needs to be reset.\r\n\t\t\t\t\tthis.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER)\r\n\t\t\t\t\treturn formattedCompleteNumber\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Format the digits as a partial (incomplete) phone number\r\n\t\t// using the previously chosen formatting pattern (or a newly chosen one).\r\n\t\treturn this.formatNationalNumberWithNextDigits(nextDigits, state)\r\n\t}\r\n\r\n\t// Formats the next phone number digits.\r\n\tformatNationalNumberWithNextDigits(nextDigits, state) {\r\n\t\tconst previouslyChosenFormat = this.chosenFormat\r\n\t\t// Choose a format from the list of matching ones.\r\n\t\tconst newlyChosenFormat = this.chooseFormat(state)\r\n\t\tif (newlyChosenFormat) {\r\n\t\t\tif (newlyChosenFormat === previouslyChosenFormat) {\r\n\t\t\t\t// If it can format the next (current) digits\r\n\t\t\t\t// using the previously chosen phone number format\r\n\t\t\t\t// then return the updated formatted number.\r\n\t\t\t\treturn this.formatNextNationalNumberDigits(nextDigits)\r\n\t\t\t} else {\r\n\t\t\t\t// If a more appropriate phone number format\r\n\t\t\t\t// has been chosen for these \"leading digits\",\r\n\t\t\t\t// then re-format the national phone number part\r\n\t\t\t\t// using the newly selected format.\r\n\t\t\t\treturn this.formatNextNationalNumberDigits(state.getNationalDigits())\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tnarrowDownMatchingFormats({\r\n\t\tnationalSignificantNumber,\r\n\t\tnationalPrefix,\r\n\t\tinternational\r\n\t}) {\r\n\t\tconst leadingDigits = nationalSignificantNumber\r\n\r\n\t\t// \"leading digits\" pattern list starts with a\r\n\t\t// \"leading digits\" pattern fitting a maximum of 3 leading digits.\r\n\t\t// So, after a user inputs 3 digits of a national (significant) phone number\r\n\t\t// this national (significant) number can already be formatted.\r\n\t\t// The next \"leading digits\" pattern is for 4 leading digits max,\r\n\t\t// and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\r\n\r\n\t\t// This implementation is different from Google's\r\n\t\t// in that it searches for a fitting format\r\n\t\t// even if the user has entered less than\r\n\t\t// `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\r\n\t\t// Because some leading digit patterns already match for a single first digit.\r\n\t\tlet leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH\r\n\t\tif (leadingDigitsPatternIndex < 0) {\r\n\t\t\tleadingDigitsPatternIndex = 0\r\n\t\t}\r\n\r\n\t\tthis.matchingFormats = this.matchingFormats.filter(\r\n\t\t\tformat => this.formatSuits(format, international, nationalPrefix)\r\n\t\t\t\t&& this.formatMatches(format, leadingDigits, leadingDigitsPatternIndex)\r\n\t\t)\r\n\r\n\t\t// If there was a phone number format chosen\r\n\t\t// and it no longer holds given the new leading digits then reset it.\r\n\t\t// The test for this `if` condition is marked as:\r\n\t\t// \"Reset a chosen format when it no longer holds given the new leading digits\".\r\n\t\t// To construct a valid test case for this one can find a country\r\n\t\t// in `PhoneNumberMetadata.xml` yielding one format for 3 ``\r\n\t\t// and yielding another format for 4 `` (Australia in this case).\r\n\t\tif (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\r\n\t\t\tthis.resetFormat()\r\n\t\t}\r\n\t}\r\n\r\n\tformatSuits(format, international, nationalPrefix) {\r\n\t\t// When a prefix before a national (significant) number is\r\n\t\t// simply a national prefix, then it's parsed as `this.nationalPrefix`.\r\n\t\t// In more complex cases, a prefix before national (significant) number\r\n\t\t// could include a national prefix as well as some \"capturing groups\",\r\n\t\t// and in that case there's no info whether a national prefix has been parsed.\r\n\t\t// If national prefix is not used when formatting a phone number\r\n\t\t// using this format, but a national prefix has been entered by the user,\r\n\t\t// and was extracted, then discard such phone number format.\r\n\t\t// In Google's \"AsYouType\" formatter code, the equivalent would be this part:\r\n\t\t// https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\r\n\t\tif (nationalPrefix &&\r\n\t\t\t!format.usesNationalPrefix() &&\r\n\t\t\t// !format.domesticCarrierCodeFormattingRule() &&\r\n\t\t\t!format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\t// If national prefix is mandatory for this phone number format\r\n\t\t// and there're no guarantees that a national prefix is present in user input\r\n\t\t// then discard this phone number format as not suitable.\r\n\t\t// In Google's \"AsYouType\" formatter code, the equivalent would be this part:\r\n\t\t// https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\r\n\t\tif (!international &&\r\n\t\t\t!nationalPrefix &&\r\n\t\t\tformat.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn true\r\n\t}\r\n\r\n\tformatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\r\n\t\tconst leadingDigitsPatternsCount = format.leadingDigitsPatterns().length\r\n\r\n\t\t// If this format is not restricted to a certain\r\n\t\t// leading digits pattern then it fits.\r\n\t\tif (leadingDigitsPatternsCount === 0) {\r\n\t\t\treturn true\r\n\t\t}\r\n\r\n\t\t// Start narrowing down the list of possible formats based on the leading digits.\r\n\t\t// (only previously matched formats take part in the narrowing down process)\r\n\r\n\t\t// `leading_digits_patterns` start with 3 digits min\r\n\t\t// and then go up from there one digit at a time.\r\n\t\tleadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1)\r\n\t\tconst leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]\r\n\r\n\t\t// Google imposes a requirement on the leading digits\r\n\t\t// to be minimum 3 digits long in order to be eligible\r\n\t\t// for checking those with a leading digits pattern.\r\n\t\t//\r\n\t\t// Since `leading_digits_patterns` start with 3 digits min,\r\n\t\t// Google's original `libphonenumber` library only starts\r\n\t\t// excluding any non-matching formats only when the\r\n\t\t// national number entered so far is at least 3 digits long,\r\n\t\t// otherwise format matching would give false negatives.\r\n\t\t//\r\n\t\t// For example, when the digits entered so far are `2`\r\n\t\t// and the leading digits pattern is `21` –\r\n\t\t// it's quite obvious in this case that the format could be the one\r\n\t\t// but due to the absence of further digits it would give false negative.\r\n\t\t//\r\n\t\t// Also, `leading_digits_patterns` doesn't always correspond to a single\r\n\t\t// digits count. For example, `60|8` pattern would already match `8`\r\n\t\t// but the `60` part would require having at least two leading digits,\r\n\t\t// so the whole pattern would require inputting two digits first in order to\r\n\t\t// decide on whether it matches the input, even when the input is \"80\".\r\n\t\t//\r\n\t\t// This library — `libphonenumber-js` — allows filtering by `leading_digits_patterns`\r\n\t\t// even when there's only 1 or 2 digits of the national (significant) number.\r\n\t\t// To do that, it uses a non-strict pattern matcher written specifically for that.\r\n\t\t//\r\n\t\tif (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\r\n\t\t\t// Before leading digits < 3 matching was implemented:\r\n\t\t\t// return true\r\n\t\t\t//\r\n\t\t\t// After leading digits < 3 matching was implemented:\r\n\t\t\ttry {\r\n\t\t\t\treturn new PatternMatcher(leadingDigitsPattern).match(leadingDigits, { allowOverflow: true }) !== undefined\r\n\t\t\t} catch (error) /* istanbul ignore next */ {\r\n\t\t\t\t// There's a slight possibility that there could be some undiscovered bug\r\n\t\t\t\t// in the pattern matcher code. Since the \"leading digits < 3 matching\"\r\n\t\t\t\t// feature is not \"essential\" for operation, it can fall back to the old way\r\n\t\t\t\t// in case of any issues rather than halting the application's execution.\r\n\t\t\t\tconsole.error(error)\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\r\n\t\t// available then use the usual regular expression matching.\r\n\t\t//\r\n\t\t// The whole pattern is wrapped in round brackets (`()`) because\r\n\t\t// the pattern can use \"or\" operator (`|`) at the top level of the pattern.\r\n\t\t//\r\n\t\treturn new RegExp(`^(${leadingDigitsPattern})`).test(leadingDigits)\r\n\t}\r\n\r\n\tgetFormatFormat(format, international) {\r\n\t\treturn international ? format.internationalFormat() : format.format()\r\n\t}\r\n\r\n\tchooseFormat(state) {\r\n\t\t// When there are multiple available formats, the formatter uses the first\r\n\t\t// format where a formatting template could be created.\r\n\t\tfor (const format of this.matchingFormats.slice()) {\r\n\t\t\t// If this format is currently being used\r\n\t\t\t// and is still suitable, then stick to it.\r\n\t\t\tif (this.chosenFormat === format) {\r\n\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t\t// Sometimes, a formatting rule inserts additional digits in a phone number,\r\n\t\t\t// and \"as you type\" formatter can't do that: it should only use the digits\r\n\t\t\t// that the user has input.\r\n\t\t\t//\r\n\t\t\t// For example, in Argentina, there's a format for mobile phone numbers:\r\n\t\t\t//\r\n\t\t\t// {\r\n\t\t\t// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\r\n\t\t\t// \"leading_digits_patterns\": [\"91\"],\r\n\t\t\t// \"national_prefix_formatting_rule\": \"0$1\",\r\n\t\t\t// \"format\": \"$2 15-$3-$4\",\r\n\t\t\t// \"international_format\": \"$1 $2 $3-$4\"\r\n\t\t\t// }\r\n\t\t\t//\r\n\t\t\t// In that format, `international_format` is used instead of `format`\r\n\t\t\t// because `format` inserts `15` in the formatted number,\r\n\t\t\t// and `AsYouType` formatter should only use the digits\r\n\t\t\t// the user has actually input, without adding any extra digits.\r\n\t\t\t// In this case, it wouldn't make a difference, because the `15`\r\n\t\t\t// is first stripped when applying `national_prefix_for_parsing`\r\n\t\t\t// and then re-added when using `format`, so in reality it doesn't\r\n\t\t\t// add any new digits to the number, but to detect that, the code\r\n\t\t\t// would have to be more complex: it would have to try formatting\r\n\t\t\t// the digits using the format and then see if any digits have\r\n\t\t\t// actually been added or removed, and then, every time a new digit\r\n\t\t\t// is input, it should re-check whether the chosen format doesn't\r\n\t\t\t// alter the digits.\r\n\t\t\t//\r\n\t\t\t// Google's code doesn't go that far, and so does this library:\r\n\t\t\t// it simply requires that a `format` doesn't add any additonal\r\n\t\t\t// digits to user's input.\r\n\t\t\t//\r\n\t\t\t// Also, people in general should move from inputting phone numbers\r\n\t\t\t// in national format (possibly with national prefixes)\r\n\t\t\t// and use international phone number format instead:\r\n\t\t\t// it's a logical thing in the modern age of mobile phones,\r\n\t\t\t// globalization and the internet.\r\n\t\t\t//\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (!NON_ALTERING_FORMAT_REG_EXP.test(this.getFormatFormat(format, state.international))) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t\tif (!this.createTemplateForFormat(format, state)) {\r\n\t\t\t\t// Remove the format if it can't generate a template.\r\n\t\t\t\tthis.matchingFormats = this.matchingFormats.filter(_ => _ !== format)\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t\tthis.chosenFormat = format\r\n\t\t\tbreak\r\n\t\t}\r\n\t\tif (!this.chosenFormat) {\r\n\t\t\t// No format matches the national (significant) phone number.\r\n\t\t\tthis.resetFormat()\r\n\t\t}\r\n\t\treturn this.chosenFormat\r\n\t}\r\n\r\n\tcreateTemplateForFormat(format, state) {\r\n\t\t// The formatter doesn't format numbers when numberPattern contains '|', e.g.\r\n\t\t// (20|3)\\d{4}. In those cases we quickly return.\r\n\t\t// (Though there's no such format in current metadata)\r\n\t\t/* istanbul ignore if */\r\n\t\tif (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// Get formatting template for this phone number format\r\n\t\tconst template = this.getTemplateForFormat(format, state)\r\n\t\t// If the national number entered is too long\r\n\t\t// for any phone number format, then abort.\r\n\t\tif (template) {\r\n\t\t\tthis.setNationalNumberTemplate(template, state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\tgetSeparatorAfterNationalPrefix = (format) => {\r\n\t\t// `US` metadata doesn't have a `national_prefix_formatting_rule`,\r\n\t\t// so the `if` condition below doesn't apply to `US`,\r\n\t\t// but in reality there shoudl be a separator\r\n\t\t// between a national prefix and a national (significant) number.\r\n\t\t// So `US` national prefix separator is a \"special\" \"hardcoded\" case.\r\n\t\tif (this.isNANP) {\r\n\t\t\treturn ' '\r\n\t\t}\r\n\t\t// If a `format` has a `national_prefix_formatting_rule`\r\n\t\t// and that rule has a separator after a national prefix,\r\n\t\t// then it means that there should be a separator\r\n\t\t// between a national prefix and a national (significant) number.\r\n\t\tif (format &&\r\n\t\t\tformat.nationalPrefixFormattingRule() &&\r\n\t\t\tNATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\r\n\t\t\treturn ' '\r\n\t\t}\r\n\t\t// At this point, there seems to be no clear evidence that\r\n\t\t// there should be a separator between a national prefix\r\n\t\t// and a national (significant) number. So don't insert one.\r\n\t\treturn ''\r\n\t}\r\n\r\n\tgetInternationalPrefixBeforeCountryCallingCode({ IDDPrefix, missingPlus }, options) {\r\n\t\tif (IDDPrefix) {\r\n\t\t\treturn options && options.spacing === false ? IDDPrefix : IDDPrefix + ' '\r\n\t\t}\r\n\t\tif (missingPlus) {\r\n\t\t\treturn ''\r\n\t\t}\r\n\t\treturn '+'\r\n\t}\r\n\r\n\tgetTemplate(state) {\r\n\t\tif (!this.template) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// `this.template` holds the template for a \"complete\" phone number.\r\n\t\t// The currently entered phone number is most likely not \"complete\",\r\n\t\t// so trim all non-populated digits.\r\n\t\tlet index = -1\r\n\t\tlet i = 0\r\n\t\tconst internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, { spacing: false }) : ''\r\n\t\twhile (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\r\n\t\t\tindex = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1)\r\n\t\t\ti++\r\n\t\t}\r\n\t\treturn cutAndStripNonPairedParens(this.template, index + 1)\r\n\t}\r\n\r\n\tsetNationalNumberTemplate(template, state) {\r\n\t\tthis.nationalNumberTemplate = template\r\n\t\tthis.populatedNationalNumberTemplate = template\r\n\t\t// With a new formatting template, the matched position\r\n\t\t// using the old template needs to be reset.\r\n\t\tthis.populatedNationalNumberTemplatePosition = -1\r\n\t\t// For convenience, the public `.template` property\r\n\t\t// contains the whole international number\r\n\t\t// if the phone number being input is international:\r\n\t\t// 'x' for the '+' sign, 'x'es for the country phone code,\r\n\t\t// a spacebar and then the template for the formatted national number.\r\n\t\tif (state.international) {\r\n\t\t\tthis.template =\r\n\t\t\t\tthis.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) +\r\n\t\t\t\trepeat(DIGIT_PLACEHOLDER, state.callingCode.length) +\r\n\t\t\t\t' ' +\r\n\t\t\t\ttemplate\r\n\t\t} else {\r\n\t\t\tthis.template = template\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Generates formatting template for a national phone number,\r\n\t * optionally containing a national prefix, for a format.\r\n\t * @param {Format} format\r\n\t * @param {string} nationalPrefix\r\n\t * @return {string}\r\n\t */\r\n\tgetTemplateForFormat(format, {\r\n\t\tnationalSignificantNumber,\r\n\t\tinternational,\r\n\t\tnationalPrefix,\r\n\t\tcomplexPrefixBeforeNationalSignificantNumber\r\n\t}) {\r\n\t\tlet pattern = format.pattern()\r\n\r\n\t\t/* istanbul ignore else */\r\n\t\tif (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\r\n\t\t\tpattern = pattern\r\n\t\t\t\t// Replace anything in the form of [..] with \\d\r\n\t\t\t\t.replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d')\r\n\t\t\t\t// Replace any standalone digit (not the one in `{}`) with \\d\r\n\t\t\t\t.replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d')\r\n\t\t}\r\n\r\n\t\t// Generate a dummy national number (consisting of `9`s)\r\n\t\t// that fits this format's `pattern`.\r\n\t\t//\r\n\t\t// This match will always succeed,\r\n\t\t// because the \"longest dummy phone number\"\r\n\t\t// has enough length to accomodate any possible\r\n\t\t// national phone number format pattern.\r\n\t\t//\r\n\t\tlet digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]\r\n\r\n\t\t// If the national number entered is too long\r\n\t\t// for any phone number format, then abort.\r\n\t\tif (nationalSignificantNumber.length > digits.length) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// Get a formatting template which can be used to efficiently format\r\n\t\t// a partial number where digits are added one by one.\r\n\r\n\t\t// Below `strictPattern` is used for the\r\n\t\t// regular expression (with `^` and `$`).\r\n\t\t// This wasn't originally in Google's `libphonenumber`\r\n\t\t// and I guess they don't really need it\r\n\t\t// because they're not using \"templates\" to format phone numbers\r\n\t\t// but I added `strictPattern` after encountering\r\n\t\t// South Korean phone number formatting bug.\r\n\t\t//\r\n\t\t// Non-strict regular expression bug demonstration:\r\n\t\t//\r\n\t\t// this.nationalSignificantNumber : `111111111` (9 digits)\r\n\t\t//\r\n\t\t// pattern : (\\d{2})(\\d{3,4})(\\d{4})\r\n\t\t// format : `$1 $2 $3`\r\n\t\t// digits : `9999999999` (10 digits)\r\n\t\t//\r\n\t\t// '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\r\n\t\t//\r\n\t\t// template : xx xxxx xxxx\r\n\t\t//\r\n\t\t// But the correct template in this case is `xx xxx xxxx`.\r\n\t\t// The template was generated incorrectly because of the\r\n\t\t// `{3,4}` variability in the `pattern`.\r\n\t\t//\r\n\t\t// The fix is, if `this.nationalSignificantNumber` has already sufficient length\r\n\t\t// to satisfy the `pattern` completely then `this.nationalSignificantNumber`\r\n\t\t// is used instead of `digits`.\r\n\r\n\t\tconst strictPattern = new RegExp('^' + pattern + '$')\r\n\t\tconst nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT)\r\n\r\n\t\t// If `this.nationalSignificantNumber` has already sufficient length\r\n\t\t// to satisfy the `pattern` completely then use it\r\n\t\t// instead of `digits`.\r\n\t\tif (strictPattern.test(nationalNumberDummyDigits)) {\r\n\t\t\tdigits = nationalNumberDummyDigits\r\n\t\t}\r\n\r\n\t\tlet numberFormat = this.getFormatFormat(format, international)\r\n\t\tlet nationalPrefixIncludedInTemplate\r\n\r\n\t\t// If a user did input a national prefix (and that's guaranteed),\r\n\t\t// and if a `format` does have a national prefix formatting rule,\r\n\t\t// then see if that national prefix formatting rule\r\n\t\t// prepends exactly the same national prefix the user has input.\r\n\t\t// If that's the case, then use the `format` with the national prefix formatting rule.\r\n\t\t// Otherwise, use the `format` without the national prefix formatting rule,\r\n\t\t// and prepend a national prefix manually to it.\r\n\t\tif (this.shouldTryNationalPrefixFormattingRule(format, { international, nationalPrefix })) {\r\n\t\t\tconst numberFormatWithNationalPrefix = numberFormat.replace(\r\n\t\t\t\tFIRST_GROUP_PATTERN,\r\n\t\t\t\tformat.nationalPrefixFormattingRule()\r\n\t\t\t)\r\n\t\t\t// If `national_prefix_formatting_rule` of a `format` simply prepends\r\n\t\t\t// national prefix at the start of a national (significant) number,\r\n\t\t\t// then such formatting can be used with `AsYouType` formatter.\r\n\t\t\t// There seems to be no `else` case: everywhere in metadata,\r\n\t\t\t// national prefix formatting rule is national prefix + $1,\r\n\t\t\t// or `($1)`, in which case such format isn't even considered\r\n\t\t\t// when the user has input a national prefix.\r\n\t\t\t/* istanbul ignore else */\r\n\t\t\tif (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\r\n\t\t\t\tnumberFormat = numberFormatWithNationalPrefix\r\n\t\t\t\tnationalPrefixIncludedInTemplate = true\r\n\t\t\t\t// Replace all digits of the national prefix in the formatting template\r\n\t\t\t\t// with `DIGIT_PLACEHOLDER`s.\r\n\t\t\t\tif (nationalPrefix) {\r\n\t\t\t\t\tlet i = nationalPrefix.length\r\n\t\t\t\t\twhile (i > 0) {\r\n\t\t\t\t\t\tnumberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER)\r\n\t\t\t\t\t\ti--\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Generate formatting template for this phone number format.\r\n\t\tlet template = digits\r\n\t\t\t// Format the dummy phone number according to the format.\r\n\t\t\t.replace(new RegExp(pattern), numberFormat)\r\n\t\t\t// Replace each dummy digit with a DIGIT_PLACEHOLDER.\r\n\t\t\t.replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER)\r\n\r\n\t\t// If a prefix of a national (significant) number is not as simple\r\n\t\t// as just a basic national prefix, then just prepend such prefix\r\n\t\t// before the national (significant) number, optionally spacing\r\n\t\t// the two with a whitespace.\r\n\t\tif (!nationalPrefixIncludedInTemplate) {\r\n\t\t\tif (complexPrefixBeforeNationalSignificantNumber) {\r\n\t\t\t\t// Prepend the prefix to the template manually.\r\n\t\t\t\ttemplate = repeat(DIGIT_PLACEHOLDER, complexPrefixBeforeNationalSignificantNumber.length) +\r\n\t\t\t\t\t' ' +\r\n\t\t\t\t\ttemplate\r\n\t\t\t} else if (nationalPrefix) {\r\n\t\t\t\t// Prepend national prefix to the template manually.\r\n\t\t\t\ttemplate = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) +\r\n\t\t\t\t\tthis.getSeparatorAfterNationalPrefix(format) +\r\n\t\t\t\t\ttemplate\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (international) {\r\n\t\t\ttemplate = applyInternationalSeparatorStyle(template)\r\n\t\t}\r\n\r\n\t\treturn template\r\n\t}\r\n\r\n\tformatNextNationalNumberDigits(digits) {\r\n\t\tconst result = populateTemplateWithDigits(\r\n\t\t\tthis.populatedNationalNumberTemplate,\r\n\t\t\tthis.populatedNationalNumberTemplatePosition,\r\n\t\t\tdigits\r\n\t\t)\r\n\r\n\t\tif (!result) {\r\n\t\t\t// Reset the format.\r\n\t\t\tthis.resetFormat()\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.populatedNationalNumberTemplate = result[0]\r\n\t\tthis.populatedNationalNumberTemplatePosition = result[1]\r\n\r\n\t\t// Return the formatted phone number so far.\r\n\t\treturn cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\r\n\r\n\t\t// The old way which was good for `input-format` but is not so good\r\n\t\t// for `react-phone-number-input`'s default input (`InputBasic`).\r\n\t\t// return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\r\n\t\t// \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\r\n\t}\r\n\r\n\tshouldTryNationalPrefixFormattingRule = (format, { international, nationalPrefix }) => {\r\n\t\tif (format.nationalPrefixFormattingRule()) {\r\n\t\t\t// In some countries, `national_prefix_formatting_rule` is `($1)`,\r\n\t\t\t// so it applies even if the user hasn't input a national prefix.\r\n\t\t\t// `format.usesNationalPrefix()` detects such cases.\r\n\t\t\tconst usesNationalPrefix = format.usesNationalPrefix()\r\n\t\t\tif ((usesNationalPrefix && nationalPrefix) ||\r\n\t\t\t\t(!usesNationalPrefix && !international)) {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}","import extractCountryCallingCode from './helpers/extractCountryCallingCode'\r\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign'\r\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber'\r\nimport stripIddPrefix from './helpers/stripIddPrefix'\r\nimport parseDigits from './helpers/parseDigits'\r\n\r\nimport {\r\n\tVALID_DIGITS,\r\n\tVALID_PUNCTUATION,\r\n\tPLUS_CHARS\r\n} from './constants'\r\n\r\nconst VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART =\r\n\t'[' +\r\n\t\tVALID_PUNCTUATION +\r\n\t\tVALID_DIGITS +\r\n\t']+'\r\n\r\nconst VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i')\r\n\r\nconst VALID_FORMATTED_PHONE_NUMBER_PART =\r\n\t'(?:' +\r\n\t\t'[' + PLUS_CHARS + ']' +\r\n\t\t'[' +\r\n\t\t\tVALID_PUNCTUATION +\r\n\t\t\tVALID_DIGITS +\r\n\t\t']*' +\r\n\t\t'|' +\r\n\t\t'[' +\r\n\t\t\tVALID_PUNCTUATION +\r\n\t\t\tVALID_DIGITS +\r\n\t\t']+' +\r\n\t')'\r\n\r\nconst AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp(\r\n\t'[^' +\r\n\t\tVALID_PUNCTUATION +\r\n\t\tVALID_DIGITS +\r\n\t']+' +\r\n\t'.*' +\r\n\t'$'\r\n)\r\n\r\n// Tests whether `national_prefix_for_parsing` could match\r\n// different national prefixes.\r\n// Matches anything that's not a digit or a square bracket.\r\nconst COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/\r\n\r\nexport default class AsYouTypeParser {\r\n\tconstructor({\r\n\t\tdefaultCountry,\r\n\t\tdefaultCallingCode,\r\n\t\tmetadata,\r\n\t\tonNationalSignificantNumberChange\r\n\t}) {\r\n\t\tthis.defaultCountry = defaultCountry\r\n\t\tthis.defaultCallingCode = defaultCallingCode\r\n\t\tthis.metadata = metadata\r\n\t\tthis.onNationalSignificantNumberChange = onNationalSignificantNumberChange\r\n\t}\r\n\r\n\tinput(text, state) {\r\n\t\tconst [formattedDigits, hasPlus] = extractFormattedDigitsAndPlus(text)\r\n\t\tconst digits = parseDigits(formattedDigits)\r\n\t\t// Checks for a special case: just a leading `+` has been entered.\r\n\t\tlet justLeadingPlus\r\n\t\tif (hasPlus) {\r\n\t\t\tif (!state.digits) {\r\n\t\t\t\tstate.startInternationalNumber()\r\n\t\t\t\tif (!digits) {\r\n\t\t\t\t\tjustLeadingPlus = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (digits) {\r\n\t\t\tthis.inputDigits(digits, state)\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tdigits,\r\n\t\t\tjustLeadingPlus\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Inputs \"next\" phone number digits.\r\n\t * @param {string} digits\r\n\t * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n\t */\r\n\tinputDigits(nextDigits, state) {\r\n\t\tconst { digits } = state\r\n\t\tconst hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3\r\n\r\n\t\t// Append phone number digits.\r\n\t\tstate.appendDigits(nextDigits)\r\n\r\n\t\t// Attempt to extract IDD prefix:\r\n\t\t// Some users input their phone number in international format,\r\n\t\t// but in an \"out-of-country\" dialing format instead of using the leading `+`.\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/185\r\n\t\t// Detect such numbers as soon as there're at least 3 digits.\r\n\t\t// Google's library attempts to extract IDD prefix at 3 digits,\r\n\t\t// so this library just copies that behavior.\r\n\t\t// I guess that's because the most commot IDD prefixes are\r\n\t\t// `00` (Europe) and `011` (US).\r\n\t\t// There exist really long IDD prefixes too:\r\n\t\t// for example, in Australia the default IDD prefix is `0011`,\r\n\t\t// and it could even be as long as `14880011`.\r\n\t\t// An IDD prefix is extracted here, and then every time when\r\n\t\t// there's a new digit and the number couldn't be formatted.\r\n\t\tif (hasReceivedThreeLeadingDigits) {\r\n\t\t\tthis.extractIddPrefix(state)\r\n\t\t}\r\n\r\n\t\tif (this.isWaitingForCountryCallingCode(state)) {\r\n\t\t\tif (!this.extractCountryCallingCode(state)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tstate.appendNationalSignificantNumberDigits(nextDigits)\r\n\t\t}\r\n\r\n\t\t// If a phone number is being input in international format,\r\n\t\t// then it's not valid for it to have a national prefix.\r\n\t\t// Still, some people incorrectly input such numbers with a national prefix.\r\n\t\t// In such cases, only attempt to strip a national prefix if the number becomes too long.\r\n\t\t// (but that is done later, not here)\r\n\t\tif (!state.international) {\r\n\t\t\tif (!this.hasExtractedNationalSignificantNumber) {\r\n\t\t\t\tthis.extractNationalSignificantNumber(state.getNationalDigits(), state.update)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisWaitingForCountryCallingCode({ international, callingCode }) {\r\n\t\treturn international && !callingCode\r\n\t}\r\n\r\n\t// Extracts a country calling code from a number\r\n\t// being entered in internatonal format.\r\n\textractCountryCallingCode(state) {\r\n\t\tconst { countryCallingCode, number } = extractCountryCallingCode(\r\n\t\t\t'+' + state.getDigitsWithoutInternationalPrefix(),\r\n\t\t\tthis.defaultCountry,\r\n\t\t\tthis.defaultCallingCode,\r\n\t\t\tthis.metadata.metadata\r\n\t\t)\r\n\t\tif (countryCallingCode) {\r\n\t\t\tstate.setCallingCode(countryCallingCode)\r\n\t\t\tstate.update({\r\n\t\t\t\tnationalSignificantNumber: number\r\n\t\t\t})\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\treset(numberingPlan) {\r\n\t\tif (numberingPlan) {\r\n\t\t\tthis.hasSelectedNumberingPlan = true\r\n\t\t\tconst nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing()\r\n\t\t\tthis.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing)\r\n\t\t} else {\r\n\t\t\tthis.hasSelectedNumberingPlan = undefined\r\n\t\t\tthis.couldPossiblyExtractAnotherNationalSignificantNumber = undefined\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Extracts a national (significant) number from user input.\r\n\t * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n\t * and doesn't apply `national_prefix_transform_rule` after that.\r\n\t * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n\t * @return {boolean} [extracted]\r\n\t */\r\n\textractNationalSignificantNumber(nationalDigits, setState) {\r\n\t\tif (!this.hasSelectedNumberingPlan) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tconst {\r\n\t\t\tnationalPrefix,\r\n\t\t\tnationalNumber,\r\n\t\t\tcarrierCode\r\n\t\t} = extractNationalNumberFromPossiblyIncompleteNumber(\r\n\t\t\tnationalDigits,\r\n\t\t\tthis.metadata\r\n\t\t)\r\n\t\tif (nationalNumber === nationalDigits) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.onExtractedNationalNumber(\r\n\t\t\tnationalPrefix,\r\n\t\t\tcarrierCode,\r\n\t\t\tnationalNumber,\r\n\t\t\tnationalDigits,\r\n\t\t\tsetState\r\n\t\t)\r\n\t\treturn true\r\n\t}\r\n\r\n\t/**\r\n\t * In Google's code this function is called \"attempt to extract longer NDD\".\r\n\t * \"Some national prefixes are a substring of others\", they say.\r\n\t * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n\t */\r\n\textractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\r\n\t\tif (!this.hasExtractedNationalSignificantNumber) {\r\n\t\t\treturn this.extractNationalSignificantNumber(nationalDigits, setState)\r\n\t\t}\r\n\t\tif (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tconst {\r\n\t\t\tnationalPrefix,\r\n\t\t\tnationalNumber,\r\n\t\t\tcarrierCode\r\n\t\t} = extractNationalNumberFromPossiblyIncompleteNumber(\r\n\t\t\tnationalDigits,\r\n\t\t\tthis.metadata\r\n\t\t)\r\n\t\t// If a national prefix has been extracted previously,\r\n\t\t// then it's always extracted as additional digits are added.\r\n\t\t// That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\r\n\t\t// doesn't do anything different from what it currently does.\r\n\t\t// So, just in case, here's this check, though it doesn't occur.\r\n\t\t/* istanbul ignore if */\r\n\t\tif (nationalNumber === prevNationalSignificantNumber) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.onExtractedNationalNumber(\r\n\t\t\tnationalPrefix,\r\n\t\t\tcarrierCode,\r\n\t\t\tnationalNumber,\r\n\t\t\tnationalDigits,\r\n\t\t\tsetState\r\n\t\t)\r\n\t\treturn true\r\n\t}\r\n\r\n\tonExtractedNationalNumber(\r\n\t\tnationalPrefix,\r\n\t\tcarrierCode,\r\n\t\tnationalSignificantNumber,\r\n\t\tnationalDigits,\r\n\t\tsetState\r\n\t) {\r\n\t\tlet complexPrefixBeforeNationalSignificantNumber\r\n\t\tlet nationalSignificantNumberMatchesInput\r\n\t\t// This check also works with empty `this.nationalSignificantNumber`.\r\n\t\tconst nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber)\r\n\t\t// If the extracted national (significant) number is the\r\n\t\t// last substring of the `digits`, then it means that it hasn't been altered:\r\n\t\t// no digits have been removed from the national (significant) number\r\n\t\t// while applying `national_prefix_transform_rule`.\r\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\r\n\t\tif (nationalSignificantNumberIndex >= 0 &&\r\n\t\t\tnationalSignificantNumberIndex === nationalDigits.length - nationalSignificantNumber.length) {\r\n\t\t\tnationalSignificantNumberMatchesInput = true\r\n\t\t\t// If a prefix of a national (significant) number is not as simple\r\n\t\t\t// as just a basic national prefix, then such prefix is stored in\r\n\t\t\t// `this.complexPrefixBeforeNationalSignificantNumber` property and will be\r\n\t\t\t// prepended \"as is\" to the national (significant) number to produce\r\n\t\t\t// a formatted result.\r\n\t\t\tconst prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex)\r\n\t\t\t// `prefixBeforeNationalNumber` is always non-empty,\r\n\t\t\t// because `onExtractedNationalNumber()` isn't called\r\n\t\t\t// when a national (significant) number hasn't been actually \"extracted\":\r\n\t\t\t// when a national (significant) number is equal to the national part of `digits`,\r\n\t\t\t// then `onExtractedNationalNumber()` doesn't get called.\r\n\t\t\tif (prefixBeforeNationalNumber !== nationalPrefix) {\r\n\t\t\t\tcomplexPrefixBeforeNationalSignificantNumber = prefixBeforeNationalNumber\r\n\t\t\t}\r\n\t\t}\r\n\t\tsetState({\r\n\t\t\tnationalPrefix,\r\n\t\t\tcarrierCode,\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tnationalSignificantNumberMatchesInput,\r\n\t\t\tcomplexPrefixBeforeNationalSignificantNumber\r\n\t\t})\r\n\t\t// `onExtractedNationalNumber()` is only called when\r\n\t\t// the national (significant) number actually did change.\r\n\t\tthis.hasExtractedNationalSignificantNumber = true\r\n\t\tthis.onNationalSignificantNumberChange()\r\n\t}\r\n\r\n\treExtractNationalSignificantNumber(state) {\r\n\t\t// Attempt to extract a national prefix.\r\n\t\t//\r\n\t\t// Some people incorrectly input national prefix\r\n\t\t// in an international phone number.\r\n\t\t// For example, some people write British phone numbers as `+44(0)...`.\r\n\t\t//\r\n\t\t// Also, in some rare cases, it is valid for a national prefix\r\n\t\t// to be a part of an international phone number.\r\n\t\t// For example, mobile phone numbers in Mexico are supposed to be\r\n\t\t// dialled internationally using a `1` national prefix,\r\n\t\t// so the national prefix will be part of an international number.\r\n\t\t//\r\n\t\t// Quote from:\r\n\t\t// https://www.mexperience.com/dialing-cell-phones-in-mexico/\r\n\t\t//\r\n\t\t// \"Dialing a Mexican cell phone from abroad\r\n\t\t// When you are calling a cell phone number in Mexico from outside Mexico,\r\n\t\t// it’s necessary to dial an additional “1” after Mexico’s country code\r\n\t\t// (which is “52”) and before the area code.\r\n\t\t// You also ignore the 045, and simply dial the area code and the\r\n\t\t// cell phone’s number.\r\n\t\t//\r\n\t\t// If you don’t add the “1”, you’ll receive a recorded announcement\r\n\t\t// asking you to redial using it.\r\n\t\t//\r\n\t\t// For example, if you are calling from the USA to a cell phone\r\n\t\t// in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\r\n\t\t// (Note that this is different to calling a land line in Mexico City\r\n\t\t// from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\r\n\t\t//\r\n\t\t// Google's demo output:\r\n\t\t// https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\r\n\t\t//\r\n\t\tif (this.extractAnotherNationalSignificantNumber(\r\n\t\t\tstate.getNationalDigits(),\r\n\t\t\tstate.nationalSignificantNumber,\r\n\t\t\tstate.update\r\n\t\t)) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t\t// If no format matches the phone number, then it could be\r\n\t\t// \"a really long IDD\" (quote from a comment in Google's library).\r\n\t\t// An IDD prefix is first extracted when the user has entered at least 3 digits,\r\n\t\t// and then here — every time when there's a new digit and the number\r\n\t\t// couldn't be formatted.\r\n\t\t// For example, in Australia the default IDD prefix is `0011`,\r\n\t\t// and it could even be as long as `14880011`.\r\n\t\t//\r\n\t\t// Could also check `!hasReceivedThreeLeadingDigits` here\r\n\t\t// to filter out the case when this check duplicates the one\r\n\t\t// already performed when there're 3 leading digits,\r\n\t\t// but it's not a big deal, and in most cases there\r\n\t\t// will be a suitable `format` when there're 3 leading digits.\r\n\t\t//\r\n\t\tif (this.extractIddPrefix(state)) {\r\n\t\t\tthis.extractCallingCodeAndNationalSignificantNumber(state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t\t// Google's AsYouType formatter supports sort of an \"autocorrection\" feature\r\n\t\t// when it \"autocorrects\" numbers that have been input for a country\r\n\t\t// with that country's calling code.\r\n\t\t// Such \"autocorrection\" feature looks weird, but different people have been requesting it:\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/375\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/316\r\n\t\tif (this.fixMissingPlus(state)) {\r\n\t\t\tthis.extractCallingCodeAndNationalSignificantNumber(state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\textractIddPrefix(state) {\r\n\t\t// An IDD prefix can't be present in a number written with a `+`.\r\n\t\t// Also, don't re-extract an IDD prefix if has already been extracted.\r\n\t\tconst {\r\n\t\t\tinternational,\r\n\t\t\tIDDPrefix,\r\n\t\t\tdigits,\r\n\t\t\tnationalSignificantNumber\r\n\t\t} = state\r\n\t\tif (international || IDDPrefix) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// Some users input their phone number in \"out-of-country\"\r\n\t\t// dialing format instead of using the leading `+`.\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/185\r\n\t\t// Detect such numbers.\r\n\t\tconst numberWithoutIDD = stripIddPrefix(\r\n\t\t\tdigits,\r\n\t\t\tthis.defaultCountry,\r\n\t\t\tthis.defaultCallingCode,\r\n\t\t\tthis.metadata.metadata\r\n\t\t)\r\n\t\tif (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\r\n\t\t\t// If an IDD prefix was stripped then convert the IDD-prefixed number\r\n\t\t\t// to international number for subsequent parsing.\r\n\t\t\tstate.update({\r\n\t\t\t\tIDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\r\n\t\t\t})\r\n\t\t\tthis.startInternationalNumber(state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\tfixMissingPlus(state) {\r\n\t\tif (!state.international) {\r\n\t\t\tconst {\r\n\t\t\t\tcountryCallingCode: newCallingCode,\r\n\t\t\t\tnumber\r\n\t\t\t} = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\r\n\t\t\t\tstate.digits,\r\n\t\t\t\tthis.defaultCountry,\r\n\t\t\t\tthis.defaultCallingCode,\r\n\t\t\t\tthis.metadata.metadata\r\n\t\t\t)\r\n\t\t\tif (newCallingCode) {\r\n\t\t\t\tstate.update({\r\n\t\t\t\t\tmissingPlus: true\r\n\t\t\t\t})\r\n\t\t\t\tthis.startInternationalNumber(state)\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstartInternationalNumber(state) {\r\n\t\tstate.startInternationalNumber()\r\n\t\t// If a national (significant) number has been extracted before, reset it.\r\n\t\tif (state.nationalSignificantNumber) {\r\n\t\t\tstate.resetNationalSignificantNumber()\r\n\t\t\tthis.onNationalSignificantNumberChange()\r\n\t\t\tthis.hasExtractedNationalSignificantNumber = undefined\r\n\t\t}\r\n\t}\r\n\r\n\textractCallingCodeAndNationalSignificantNumber(state) {\r\n\t\tif (this.extractCountryCallingCode(state)) {\r\n\t\t\t// `this.extractCallingCode()` is currently called when the number\r\n\t\t\t// couldn't be formatted during the standard procedure.\r\n\t\t\t// Normally, the national prefix would be re-extracted\r\n\t\t\t// for an international number if such number couldn't be formatted,\r\n\t\t\t// but since it's already not able to be formatted,\r\n\t\t\t// there won't be yet another retry, so also extract national prefix here.\r\n\t\t\tthis.extractNationalSignificantNumber(state.getNationalDigits(), state.update)\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Extracts formatted phone number from text (if there's any).\r\n * @param {string} text\r\n * @return {string} [formattedPhoneNumber]\r\n */\r\nfunction extractFormattedPhoneNumber(text) {\r\n\t// Attempt to extract a possible number from the string passed in.\r\n\tconst startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART)\r\n\tif (startsAt < 0) {\r\n\t\treturn\r\n\t}\r\n\t// Trim everything to the left of the phone number.\r\n\ttext = text.slice(startsAt)\r\n\t// Trim the `+`.\r\n\tlet hasPlus\r\n\tif (text[0] === '+') {\r\n\t\thasPlus = true\r\n\t\ttext = text.slice('+'.length)\r\n\t}\r\n\t// Trim everything to the right of the phone number.\r\n\ttext = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, '')\r\n\t// Re-add the previously trimmed `+`.\r\n\tif (hasPlus) {\r\n\t\ttext = '+' + text\r\n\t}\r\n\treturn text\r\n}\r\n\r\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\r\nfunction _extractFormattedDigitsAndPlus(text) {\r\n\t// Extract a formatted phone number part from text.\r\n\tconst extractedNumber = extractFormattedPhoneNumber(text) || ''\r\n\t// Trim a `+`.\r\n\tif (extractedNumber[0] === '+') {\r\n\t\treturn [extractedNumber.slice('+'.length), true]\r\n\t}\r\n\treturn [extractedNumber]\r\n}\r\n\r\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\r\nexport function extractFormattedDigitsAndPlus(text) {\r\n\tlet [formattedDigits, hasPlus] = _extractFormattedDigitsAndPlus(text)\r\n\t// If the extracted phone number part\r\n\t// can possibly be a part of some valid phone number\r\n\t// then parse phone number characters from a formatted phone number.\r\n\tif (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\r\n\t\tformattedDigits = ''\r\n\t}\r\n\treturn [formattedDigits, hasPlus]\r\n}","import Metadata from './metadata'\r\nimport PhoneNumber from './PhoneNumber'\r\nimport AsYouTypeState from './AsYouTypeState'\r\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter'\r\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser'\r\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default class AsYouType {\r\n\t/**\r\n\t * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n\t * @param {Object} metadata\r\n\t */\r\n\tconstructor(optionsOrDefaultCountry, metadata) {\r\n\t\tthis.metadata = new Metadata(metadata)\r\n\t\tconst [defaultCountry, defaultCallingCode] = this.getCountryAndCallingCode(optionsOrDefaultCountry)\r\n\t\tthis.defaultCountry = defaultCountry\r\n\t\tthis.defaultCallingCode = defaultCallingCode\r\n\t\tthis.reset()\r\n\t}\r\n\r\n\tgetCountryAndCallingCode(optionsOrDefaultCountry) {\r\n\t\t// Set `defaultCountry` and `defaultCallingCode` options.\r\n\t\tlet defaultCountry\r\n\t\tlet defaultCallingCode\r\n\t\t// Turns out `null` also has type \"object\". Weird.\r\n\t\tif (optionsOrDefaultCountry) {\r\n\t\t\tif (typeof optionsOrDefaultCountry === 'object') {\r\n\t\t\t\tdefaultCountry = optionsOrDefaultCountry.defaultCountry\r\n\t\t\t\tdefaultCallingCode = optionsOrDefaultCountry.defaultCallingCode\r\n\t\t\t} else {\r\n\t\t\t\tdefaultCountry = optionsOrDefaultCountry\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\r\n\t\t\tdefaultCountry = undefined\r\n\t\t}\r\n\t\tif (defaultCallingCode) {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t\tif (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\r\n\t\t\t\t\tdefaultCountry = '001'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn [defaultCountry, defaultCallingCode]\r\n\t}\r\n\r\n\t/**\r\n\t * Inputs \"next\" phone number characters.\r\n\t * @param {string} text\r\n\t * @return {string} Formatted phone number characters that have been input so far.\r\n\t */\r\n\tinput(text) {\r\n\t\tconst {\r\n\t\t\tdigits,\r\n\t\t\tjustLeadingPlus\r\n\t\t} = this.parser.input(text, this.state)\r\n\t\tif (justLeadingPlus) {\r\n\t\t\tthis.formattedOutput = '+'\r\n\t\t} else if (digits) {\r\n\t\t\tthis.determineTheCountryIfNeeded()\r\n\t\t\t// Match the available formats by the currently available leading digits.\r\n\t\t\tif (this.state.nationalSignificantNumber) {\r\n\t\t\t\tthis.formatter.narrowDownMatchingFormats(this.state)\r\n\t\t\t}\r\n\t\t\tlet formattedNationalNumber\r\n\t\t\tif (this.metadata.hasSelectedNumberingPlan()) {\r\n\t\t\t\tformattedNationalNumber = this.formatter.format(digits, this.state)\r\n\t\t\t}\r\n\t\t\tif (formattedNationalNumber === undefined) {\r\n\t\t\t\t// See if another national (significant) number could be re-extracted.\r\n\t\t\t\tif (this.parser.reExtractNationalSignificantNumber(this.state)) {\r\n\t\t\t\t\tthis.determineTheCountryIfNeeded()\r\n\t\t\t\t\t// If it could, then re-try formatting the new national (significant) number.\r\n\t\t\t\t\tconst nationalDigits = this.state.getNationalDigits()\r\n\t\t\t\t\tif (nationalDigits) {\r\n\t\t\t\t\t\tformattedNationalNumber = this.formatter.format(nationalDigits, this.state)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.formattedOutput = formattedNationalNumber\r\n\t\t\t\t? this.getFullNumber(formattedNationalNumber)\r\n\t\t\t\t: this.getNonFormattedNumber()\r\n\t\t}\r\n\t\treturn this.formattedOutput\r\n\t}\r\n\r\n\treset() {\r\n\t\tthis.state = new AsYouTypeState({\r\n\t\t\tonCountryChange: (country) => {\r\n\t\t\t\t// Before version `1.6.0`, the official `AsYouType` formatter API\r\n\t\t\t\t// included the `.country` property of an `AsYouType` instance.\r\n\t\t\t\t// Since that property (along with the others) have been moved to\r\n\t\t\t\t// `this.state`, `this.country` property is emulated for compatibility\r\n\t\t\t\t// with the old versions.\r\n\t\t\t\tthis.country = country\r\n\t\t\t},\r\n\t\t\tonCallingCodeChange: (country, callingCode) => {\r\n\t\t\t\tthis.metadata.selectNumberingPlan(country, callingCode)\r\n\t\t\t\tthis.formatter.reset(this.metadata.numberingPlan, this.state)\r\n\t\t\t\tthis.parser.reset(this.metadata.numberingPlan)\r\n\t\t\t}\r\n\t\t})\r\n\t\tthis.formatter = new AsYouTypeFormatter({\r\n\t\t\tstate: this.state,\r\n\t\t\tmetadata: this.metadata\r\n\t\t})\r\n\t\tthis.parser = new AsYouTypeParser({\r\n\t\t\tdefaultCountry: this.defaultCountry,\r\n\t\t\tdefaultCallingCode: this.defaultCallingCode,\r\n\t\t\tmetadata: this.metadata,\r\n\t\t\tstate: this.state,\r\n\t\t\tonNationalSignificantNumberChange: () => {\r\n\t\t\t\tthis.determineTheCountryIfNeeded()\r\n\t\t\t\tthis.formatter.reset(this.metadata.numberingPlan, this.state)\r\n\t\t\t}\r\n\t\t})\r\n\t\tthis.state.reset(this.defaultCountry, this.defaultCallingCode)\r\n\t\tthis.formattedOutput = ''\r\n\t\treturn this\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if the phone number is being input in international format.\r\n\t * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n\t * @return {boolean}\r\n\t */\r\n\tisInternational() {\r\n\t\treturn this.state.international\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the \"calling code\" part of the phone number when it's being input\r\n\t * in an international format.\r\n\t * If no valid calling code has been entered so far, returns `undefined`.\r\n\t * @return {string} [callingCode]\r\n\t */\r\n\tgetCallingCode() {\r\n\t\t // If the number is being input in national format and some \"default calling code\"\r\n\t\t // has been passed to `AsYouType` constructor, then `this.state.callingCode`\r\n\t\t // is equal to that \"default calling code\".\r\n\t\t //\r\n\t\t // If the number is being input in national format and no \"default calling code\"\r\n\t\t // has been passed to `AsYouType` constructor, then returns `undefined`,\r\n\t\t // even if a \"default country\" has been passed to `AsYouType` constructor.\r\n\t\t //\r\n\t\tif (this.isInternational()) {\r\n\t\t\treturn this.state.callingCode\r\n\t\t}\r\n\t}\r\n\r\n\t// A legacy alias.\r\n\tgetCountryCallingCode() {\r\n\t\treturn this.getCallingCode()\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a two-letter country code of the phone number.\r\n\t * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n\t * Returns `undefined` if no phone number has been input yet.\r\n\t * @return {string} [country]\r\n\t */\r\n\tgetCountry() {\r\n\t\tconst { digits } = this.state\r\n\t\t// Return `undefined` if no digits have been input yet.\r\n\t\tif (digits) {\r\n\t\t\treturn this._getCountry()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a two-letter country code of the phone number.\r\n\t * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n\t * @return {string} [country]\r\n\t */\r\n\t_getCountry() {\r\n\t\tconst { country } = this.state\r\n\t\t/* istanbul ignore if */\r\n\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t// `AsYouType.getCountry()` returns `undefined`\r\n\t\t\t// for \"non-geographic\" phone numbering plans.\r\n\t\t\tif (country === '001') {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn country\r\n\t}\r\n\r\n\tdetermineTheCountryIfNeeded() {\r\n\t\t// Suppose a user enters a phone number in international format,\r\n\t\t// and there're several countries corresponding to that country calling code,\r\n\t\t// and a country has been derived from the number, and then\r\n\t\t// a user enters one more digit and the number is no longer\r\n\t\t// valid for the derived country, so the country should be re-derived\r\n\t\t// on every new digit in those cases.\r\n\t\t//\r\n\t\t// If the phone number is being input in national format,\r\n\t\t// then it could be a case when `defaultCountry` wasn't specified\r\n\t\t// when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\r\n\t\t// and that \"calling code\" could correspond to a \"non-geographic entity\",\r\n\t\t// or there could be several countries corresponding to that country calling code.\r\n\t\t// In those cases, `this.country` is `undefined` and should be derived\r\n\t\t// from the number. Again, if country calling code is ambiguous, then\r\n\t\t// `this.country` should be re-derived with each new digit.\r\n\t\t//\r\n\t\tif (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\r\n\t\t\tthis.determineTheCountry()\r\n\t\t}\r\n\t}\r\n\r\n\t// Prepends `+CountryCode ` in case of an international phone number\r\n\tgetFullNumber(formattedNationalNumber) {\r\n\t\tif (this.isInternational()) {\r\n\t\t\tconst prefix = (text) => this.formatter.getInternationalPrefixBeforeCountryCallingCode(this.state, {\r\n\t\t\t\tspacing: text ? true : false\r\n\t\t\t}) + text\r\n\t\t\tconst { callingCode } = this.state\r\n\t\t\tif (!callingCode) {\r\n\t\t\t\treturn prefix(`${this.state.getDigitsWithoutInternationalPrefix()}`)\r\n\t\t\t}\r\n\t\t\tif (!formattedNationalNumber) {\r\n\t\t\t\treturn prefix(callingCode)\r\n\t\t\t}\r\n\t\t\treturn prefix(`${callingCode} ${formattedNationalNumber}`)\r\n\t\t}\r\n\t\treturn formattedNationalNumber\r\n\t}\r\n\r\n\tgetNonFormattedNationalNumberWithPrefix() {\r\n\t\tconst {\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tcomplexPrefixBeforeNationalSignificantNumber,\r\n\t\t\tnationalPrefix\r\n\t\t} = this.state\r\n\t\tlet number = nationalSignificantNumber\r\n\t\tconst prefix = complexPrefixBeforeNationalSignificantNumber || nationalPrefix\r\n\t\tif (prefix) {\r\n\t\t\tnumber = prefix + number\r\n\t\t}\r\n\t\treturn number\r\n\t}\r\n\r\n\tgetNonFormattedNumber() {\r\n\t\tconst { nationalSignificantNumberMatchesInput } = this.state\r\n\t\treturn this.getFullNumber(\r\n\t\t\tnationalSignificantNumberMatchesInput\r\n\t\t\t\t? this.getNonFormattedNationalNumberWithPrefix()\r\n\t\t\t\t: this.state.getNationalDigits()\r\n\t\t)\r\n\t}\r\n\r\n\tgetNonFormattedTemplate() {\r\n\t\tconst number = this.getNonFormattedNumber()\r\n\t\tif (number) {\r\n\t\t\treturn number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER)\r\n\t\t}\r\n\t}\r\n\r\n\tisCountryCallingCodeAmbiguous() {\r\n\t\tconst { callingCode } = this.state\r\n\t\tconst countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode)\r\n\t\treturn countryCodes && countryCodes.length > 1\r\n\t}\r\n\r\n\t// Determines the country of the phone number\r\n\t// entered so far based on the country phone code\r\n\t// and the national phone number.\r\n\tdetermineTheCountry() {\r\n\t\tthis.state.setCountry(getCountryByCallingCode(\r\n\t\t\tthis.isInternational() ? this.state.callingCode : this.defaultCallingCode,\r\n\t\t\tthis.state.nationalSignificantNumber,\r\n\t\t\tthis.metadata\r\n\t\t))\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a E.164 phone number value for the user's input.\r\n\t *\r\n\t * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\r\n\t * it will return `\"+12223334444\"`.\r\n\t *\r\n\t * For international phone number input, it will also auto-correct\r\n\t * some minor errors such as using a national prefix when writing\r\n\t * an international phone number. For example, if the user inputs\r\n\t * `\"+44 0 7400 000000\"` then it will return an auto-corrected\r\n\t * `\"+447400000000\"` phone number value.\r\n\t *\r\n\t * Will return `undefined` if no digits have been input,\r\n\t * or when inputting a phone number in national format and no\r\n\t * default country or default \"country calling code\" have been set.\r\n\t *\r\n\t * @return {string} [value]\r\n\t */\r\n\tgetNumberValue() {\r\n\t\tconst {\r\n\t\t\tdigits,\r\n\t\t\tcallingCode,\r\n\t\t\tcountry,\r\n\t\t\tnationalSignificantNumber\r\n\t\t} = this.state\r\n\r\n\t \t// Will return `undefined` if no digits have been input.\r\n\t\tif (!digits) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (this.isInternational()) {\r\n\t\t\tif (callingCode) {\r\n\t\t\t\treturn '+' + callingCode + nationalSignificantNumber\r\n\t\t\t} else {\r\n\t\t\t\treturn '+' + digits\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (country || callingCode) {\r\n\t\t\t\tconst callingCode_ = country ? this.metadata.countryCallingCode() : callingCode\r\n\t\t\t\treturn '+' + callingCode_ + nationalSignificantNumber\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an instance of `PhoneNumber` class.\r\n\t * Will return `undefined` if no national (significant) number\r\n\t * digits have been entered so far, or if no `defaultCountry` has been\r\n\t * set and the user enters a phone number not in international format.\r\n\t */\r\n\tgetNumber() {\r\n\t\tconst {\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tcarrierCode,\r\n\t\t\tcallingCode\r\n\t\t} = this.state\r\n\r\n\t\t// `this._getCountry()` is basically same as `this.state.country`\r\n\t\t// with the only change that it return `undefined` in case of a\r\n\t\t// \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\r\n\t\tconst country = this._getCountry()\r\n\r\n\t\tif (!nationalSignificantNumber) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (!country && !callingCode) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst phoneNumber = new PhoneNumber(\r\n\t\t\tcountry || callingCode,\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tthis.metadata.metadata\r\n\t\t)\r\n\t\tif (carrierCode) {\r\n\t\t\tphoneNumber.carrierCode = carrierCode\r\n\t\t}\r\n\t\t// Phone number extensions are not supported by \"As You Type\" formatter.\r\n\t\treturn phoneNumber\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if the phone number is \"possible\".\r\n\t * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n\t * @return {boolean}\r\n\t */\r\n\tisPossible() {\r\n\t\tconst phoneNumber = this.getNumber()\r\n\t\tif (!phoneNumber) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn phoneNumber.isPossible()\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if the phone number is \"valid\".\r\n\t * Is just a shortcut for `PhoneNumber.isValid()`.\r\n\t * @return {boolean}\r\n\t */\r\n\tisValid() {\r\n\t\tconst phoneNumber = this.getNumber()\r\n\t\tif (!phoneNumber) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn phoneNumber.isValid()\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated\r\n\t * This method is used in `react-phone-number-input/source/input-control.js`\r\n\t * in versions before `3.0.16`.\r\n\t */\r\n\tgetNationalNumber() {\r\n\t\treturn this.state.nationalSignificantNumber\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the phone number characters entered by the user.\r\n\t * @return {string}\r\n\t */\r\n\tgetChars() {\r\n\t\treturn (this.state.international ? '+' : '') + this.state.digits\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the template for the formatted phone number.\r\n\t * @return {string}\r\n\t */\r\n\tgetTemplate() {\r\n\t\treturn this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || ''\r\n\t}\r\n}","import { getCountryCallingCode } from 'libphonenumber-js/core'\r\n\r\nexport function getInputValuePrefix({\r\n\tcountry,\r\n\tinternational,\r\n\twithCountryCallingCode,\r\n\tmetadata\r\n}) {\r\n\treturn country && international && !withCountryCallingCode ?\r\n\t\t`+${getCountryCallingCode(country, metadata)}` :\r\n\t\t''\r\n}\r\n\r\nexport function removeInputValuePrefix(value, prefix) {\r\n\tif (prefix) {\r\n\t\tvalue = value.slice(prefix.length)\r\n\t\tif (value[0] === ' ') {\r\n\t\t\tvalue = value.slice(1)\r\n\t\t}\r\n\t}\r\n\treturn value\r\n}","import React, { useCallback } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport Input from 'input-format/react'\r\nimport { AsYouType, parsePhoneNumberCharacter } from 'libphonenumber-js/core'\r\n\r\nimport { getInputValuePrefix, removeInputValuePrefix } from './helpers/inputValuePrefix'\r\n\r\nexport function createInput(defaultMetadata)\r\n{\r\n\t/**\r\n\t * `InputSmart` is a \"smarter\" implementation of a `Component`\r\n\t * that can be passed to ``. It parses and formats\r\n\t * the user's and maintains the caret's position in the process.\r\n\t * The caret positioning is maintained using `input-format` library.\r\n\t * Relies on being run in a DOM environment for calling caret positioning functions.\r\n\t */\r\n\tfunction InputSmart({\r\n\t\tcountry,\r\n\t\tinternational,\r\n\t\twithCountryCallingCode,\r\n\t\tmetadata,\r\n\t\t...rest\r\n\t}, ref) {\r\n\t\tconst format = useCallback((value) => {\r\n\t\t\t// \"As you type\" formatter.\r\n\t\t\tconst formatter = new AsYouType(country, metadata)\r\n\t\t\tconst prefix = getInputValuePrefix({\r\n\t\t\t\tcountry,\r\n\t\t\t\tinternational,\r\n\t\t\t\twithCountryCallingCode,\r\n\t\t\t\tmetadata\r\n\t\t\t})\r\n\t\t\t// Format the number.\r\n\t\t\tlet text = formatter.input(prefix + value)\r\n\t\t\tlet template = formatter.getTemplate()\r\n\t\t\tif (prefix) {\r\n\t\t\t\ttext = removeInputValuePrefix(text, prefix)\r\n\t\t\t\t// `AsYouType.getTemplate()` can be `undefined`.\r\n\t\t\t\tif (template) {\r\n\t\t\t\t\ttemplate = removeInputValuePrefix(template, prefix)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\ttext,\r\n\t\t\t\ttemplate\r\n\t\t\t}\r\n\t\t}, [country, metadata])\r\n\t\treturn (\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\r\n\tInputSmart = React.forwardRef(InputSmart)\r\n\r\n\tInputSmart.propTypes = {\r\n\t\t/**\r\n\t\t * The parsed phone number.\r\n\t\t * \"Parsed\" not in a sense of \"E.164\"\r\n\t\t * but rather in a sense of \"having only\r\n\t\t * digits and possibly a leading plus character\".\r\n\t\t * Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n\t\t */\r\n\t\tvalue: PropTypes.string.isRequired,\r\n\r\n\t\t/**\r\n\t\t * A function of `value: string`.\r\n\t\t * Updates the `value` property.\r\n\t\t */\r\n\t\tonChange: PropTypes.func.isRequired,\r\n\r\n\t\t/**\r\n\t\t * A two-letter country code for formatting `value`\r\n\t\t * as a national phone number (e.g. `(800) 555 35 35`).\r\n\t\t * E.g. \"US\", \"RU\", etc.\r\n\t\t * If no `country` is passed then `value`\r\n\t\t * is formatted as an international phone number.\r\n\t\t * (e.g. `+7 800 555 35 35`)\r\n\t\t * Perhaps the `country` property should have been called `defaultCountry`\r\n\t\t * because if `value` is an international number then `country` is ignored.\r\n\t\t */\r\n\t\tcountry: PropTypes.string,\r\n\r\n\t\t/**\r\n\t\t * If `country` property is passed along with `international={true}` property\r\n\t\t * then the phone number will be input in \"international\" format for that `country`\r\n\t\t * (without \"country calling code\").\r\n\t\t * For example, if `country=\"US\"` property is passed to \"without country select\" input\r\n\t\t * then the phone number will be input in the \"national\" format for `US` (`(213) 373-4253`).\r\n\t\t * But if both `country=\"US\"` and `international={true}` properties are passed then\r\n\t\t * the phone number will be input in the \"international\" format for `US` (`213 373 4253`)\r\n\t\t * (without \"country calling code\" `+1`).\r\n\t\t */\r\n\t\tinternational: PropTypes.bool,\r\n\r\n\t\t/**\r\n\t\t * If `country` and `international` properties are set,\r\n\t\t * then by default it won't include \"country calling code\" in the input field.\r\n\t\t * To change that, pass `withCountryCallingCode` property,\r\n\t\t * and it will include \"country calling code\" in the input field.\r\n\t\t */\r\n\t\twithCountryCallingCode: PropTypes.bool,\r\n\r\n\t\t/**\r\n\t\t * `libphonenumber-js` metadata.\r\n\t\t */\r\n\t\tmetadata: PropTypes.object.isRequired\r\n\t}\r\n\r\n\tInputSmart.defaultProps = {\r\n\t\tmetadata: defaultMetadata\r\n\t}\r\n\r\n\treturn InputSmart\r\n}\r\n\r\nexport default createInput()","import React, { useCallback } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { parseIncompletePhoneNumber, formatIncompletePhoneNumber } from 'libphonenumber-js/core'\r\n\r\nimport { getInputValuePrefix, removeInputValuePrefix } from './helpers/inputValuePrefix'\r\n\r\nexport function createInput(defaultMetadata) {\r\n\t/**\r\n\t * `InputBasic` is the most basic implementation of a `Component`\r\n\t * that can be passed to ``. It parses and formats\r\n\t * the user's input but doesn't control the caret in the process:\r\n\t * when erasing or inserting digits in the middle of a phone number\r\n\t * the caret usually jumps to the end (this is the expected behavior).\r\n\t * Why does `InputBasic` exist when there's `InputSmart`?\r\n\t * One reason is working around the [Samsung Galaxy smart caret positioning bug]\r\n\t * (https://github.com/catamphetamine/react-phone-number-input/issues/75).\r\n\t * Another reason is that, unlike `InputSmart`, it doesn't require DOM environment.\r\n\t */\r\n\tfunction InputBasic({\r\n\t\tvalue,\r\n\t\tonChange,\r\n\t\tcountry,\r\n\t\tinternational,\r\n\t\twithCountryCallingCode,\r\n\t\tmetadata,\r\n\t\tinputComponent: Input,\r\n\t\t...rest\r\n\t}, ref) {\r\n\t\tconst prefix = getInputValuePrefix({\r\n\t\t\tcountry,\r\n\t\t\tinternational,\r\n\t\t\twithCountryCallingCode,\r\n\t\t\tmetadata\r\n\t\t})\r\n\r\n\t\tconst _onChange = useCallback((event) => {\r\n\t\t\tlet newValue = parseIncompletePhoneNumber(event.target.value)\r\n\t\t\t// By default, if a value is something like `\"(123)\"`\r\n\t\t\t// then Backspace would only erase the rightmost brace\r\n\t\t\t// becoming something like `\"(123\"`\r\n\t\t\t// which would give the same `\"123\"` value\r\n\t\t\t// which would then be formatted back to `\"(123)\"`\r\n\t\t\t// and so a user wouldn't be able to erase the phone number.\r\n\t\t\t// Working around this issue with this simple hack.\r\n\t\t\tif (newValue === value) {\r\n\t\t\t\tconst newValueFormatted = format(prefix, newValue, country, metadata)\r\n\t\t\t\tif (newValueFormatted.indexOf(event.target.value) === 0) {\r\n\t\t\t\t\t// Trim the last digit (or plus sign).\r\n\t\t\t\t\tnewValue = newValue.slice(0, -1)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tonChange(newValue)\r\n\t\t}, [\r\n\t\t\tprefix,\r\n\t\t\tvalue,\r\n\t\t\tonChange,\r\n\t\t\tcountry,\r\n\t\t\tmetadata\r\n\t\t])\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\r\n\tInputBasic = React.forwardRef(InputBasic)\r\n\r\n\tInputBasic.propTypes = {\r\n\t\t/**\r\n\t\t * The parsed phone number.\r\n\t\t * \"Parsed\" not in a sense of \"E.164\"\r\n\t\t * but rather in a sense of \"having only\r\n\t\t * digits and possibly a leading plus character\".\r\n\t\t * Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n\t\t */\r\n\t\tvalue: PropTypes.string.isRequired,\r\n\r\n\t\t/**\r\n\t\t * A function of `value: string`.\r\n\t\t * Updates the `value` property.\r\n\t\t */\r\n\t\tonChange: PropTypes.func.isRequired,\r\n\r\n\t\t/**\r\n\t\t * A two-letter country code for formatting `value`\r\n\t\t * as a national phone number (e.g. `(800) 555 35 35`).\r\n\t\t * E.g. \"US\", \"RU\", etc.\r\n\t\t * If no `country` is passed then `value`\r\n\t\t * is formatted as an international phone number.\r\n\t\t * (e.g. `+7 800 555 35 35`)\r\n\t\t * Perhaps the `country` property should have been called `defaultCountry`\r\n\t\t * because if `value` is an international number then `country` is ignored.\r\n\t\t */\r\n\t\tcountry : PropTypes.string,\r\n\r\n\t\t/**\r\n\t\t * If `country` property is passed along with `international={true}` property\r\n\t\t * then the phone number will be input in \"international\" format for that `country`\r\n\t\t * (without \"country calling code\").\r\n\t\t * For example, if `country=\"US\"` property is passed to \"without country select\" input\r\n\t\t * then the phone number will be input in the \"national\" format for `US` (`(213) 373-4253`).\r\n\t\t * But if both `country=\"US\"` and `international={true}` properties are passed then\r\n\t\t * the phone number will be input in the \"international\" format for `US` (`213 373 4253`)\r\n\t\t * (without \"country calling code\" `+1`).\r\n\t\t */\r\n\t\tinternational: PropTypes.bool,\r\n\r\n\t\t/**\r\n\t\t * If `country` and `international` properties are set,\r\n\t\t * then by default it won't include \"country calling code\" in the input field.\r\n\t\t * To change that, pass `withCountryCallingCode` property,\r\n\t\t * and it will include \"country calling code\" in the input field.\r\n\t\t */\r\n\t\twithCountryCallingCode: PropTypes.bool,\r\n\r\n\t\t/**\r\n\t\t * `libphonenumber-js` metadata.\r\n\t\t */\r\n\t\tmetadata: PropTypes.object.isRequired,\r\n\r\n\t\t/**\r\n\t\t * The `` component.\r\n\t\t */\r\n\t\tinputComponent: PropTypes.elementType.isRequired\r\n\t}\r\n\r\n\tInputBasic.defaultProps = {\r\n\t\tmetadata: defaultMetadata,\r\n\t\tinputComponent: 'input'\r\n\t}\r\n\r\n\treturn InputBasic\r\n}\r\n\r\nexport default createInput()\r\n\r\nfunction format(prefix, value, country, metadata) {\r\n\treturn removeInputValuePrefix(\r\n\t\tformatIncompletePhoneNumber(\r\n\t\t\tprefix + value,\r\n\t\t\tcountry,\r\n\t\t\tmetadata\r\n\t\t),\r\n\t\tprefix\r\n\t)\r\n}","import AsYouType from './AsYouType'\r\n\r\n/**\r\n * Formats a (possibly incomplete) phone number.\r\n * The phone number can be either in E.164 format\r\n * or in a form of national number digits.\r\n * @param {string} value - A possibly incomplete phone number. Either in E.164 format or in a form of national number digits.\r\n * @param {string?} country - Two-letter (\"ISO 3166-1 alpha-2\") country code.\r\n * @return {string} Formatted (possibly incomplete) phone number.\r\n */\r\nexport default function formatIncompletePhoneNumber(value, country, metadata) {\r\n\tif (!metadata) {\r\n\t\tmetadata = country\r\n\t\tcountry = undefined\r\n\t}\r\n\treturn new AsYouType(country, metadata).input(value)\r\n}","/**\r\n * Creates Unicode flag from a two-letter ISO country code.\r\n * https://stackoverflow.com/questions/24050671/how-to-put-japan-flag-character-in-a-string\r\n * @param {string} country — A two-letter ISO country code (case-insensitive).\r\n * @return {string}\r\n */\r\nexport default function getCountryFlag(country) {\r\n\treturn getRegionalIndicatorSymbol(country[0]) + getRegionalIndicatorSymbol(country[1])\r\n}\r\n\r\n/**\r\n * Converts a letter to a Regional Indicator Symbol.\r\n * @param {string} letter\r\n * @return {string}\r\n */\r\nfunction getRegionalIndicatorSymbol(letter) {\r\n\treturn String.fromCodePoint(0x1F1E6 - 65 + letter.toUpperCase().charCodeAt(0))\r\n}","import React, { useCallback, useMemo } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport classNames from 'classnames'\r\nimport getUnicodeFlagIcon from 'country-flag-icons/unicode'\r\n\r\nexport default function CountrySelect({\r\n\tvalue,\r\n\tonChange,\r\n\toptions,\r\n\t...rest\r\n}) {\r\n\tconst onChange_ = useCallback((event) => {\r\n\t\tconst value = event.target.value\r\n\t\tonChange(value === 'ZZ' ? undefined : value)\r\n\t}, [onChange])\r\n\r\n\tconst selectedOption = useMemo(() => {\r\n\t\treturn getSelectedOption(options, value)\r\n\t}, [options, value])\r\n\r\n\t// \"ZZ\" means \"International\".\r\n\t// (HTML requires each `\r\n\t\t\t))}\r\n\t\t\r\n\t)\r\n}\r\n\r\nCountrySelect.propTypes = {\r\n\t/**\r\n\t * A two-letter country code.\r\n\t * Example: \"US\", \"RU\", etc.\r\n\t */\r\n\tvalue: PropTypes.string,\r\n\r\n\t/**\r\n\t * A function of `value: string`.\r\n\t * Updates the `value` property.\r\n\t */\r\n\tonChange: PropTypes.func.isRequired,\r\n\r\n\t// `` options.\r\n * Can move some country `` options.\r\n * @param {string[]} [countryOptionsOrder] — Country `` can't be left in a broken state.\r\n\tif (!country && required && countries && countries.length > 0) {\r\n\t\tcountry = getAnyCountry()\r\n\t\t// noCountryMatchesTheNumber = true\r\n\t}\r\n\r\n\treturn country\r\n}\r\n\r\n/**\r\n * Generates a sorted list of country `` option for each country.\r\n\tconst countrySelectOptions = countries.map((country) => ({\r\n\t\tvalue: country,\r\n\t\t// All `locale` country names included in this library\r\n\t\t// include all countries (this is checked at build time).\r\n\t\t// The only case when a country name might be missing\r\n\t\t// is when a developer supplies their own `labels` property.\r\n\t\t// To guard against such cases, a missing country name\r\n\t\t// is substituted by country code.\r\n\t\tlabel: countryNames[country] || country\r\n\t}))\r\n\r\n\t// Sort the list of countries alphabetically.\r\n\tcountrySelectOptions.sort((a, b) => _compareStrings(a.label, b.label, compareStringsLocales))\r\n\r\n\t// Add the \"International\" option to the country list (if suitable)\r\n\tif (addInternationalOption) {\r\n\t\tcountrySelectOptions.unshift({\r\n\t\t\tlabel: countryNames.ZZ\r\n\t\t})\r\n\t}\r\n\r\n\treturn countrySelectOptions\r\n}\r\n\r\n/**\r\n * Parses a E.164 phone number to an instance of `PhoneNumber` class.\r\n * @param {string?} value = E.164 phone number.\r\n * @param {object} metadata - `libphonenumber-js` metadata\r\n * @return {object} Object having shape `{ country: string?, countryCallingCode: string, number: string }`. `PhoneNumber`: https://gitlab.com/catamphetamine/libphonenumber-js#phonenumber.\r\n * @example\r\n * parsePhoneNumber('+78005553535')\r\n */\r\nexport function parsePhoneNumber(value, metadata) {\r\n\treturn parsePhoneNumber_(value || '', metadata)\r\n}\r\n\r\n/**\r\n * Generates national number digits for a parsed phone.\r\n * May prepend national prefix.\r\n * The phone number must be a complete and valid phone number.\r\n * @param {object} phoneNumber - An instance of `PhoneNumber` class.\r\n * @param {object} metadata - `libphonenumber-js` metadata\r\n * @return {string}\r\n * @example\r\n * getNationalNumberDigits({ country: 'RU', phone: '8005553535' })\r\n * // returns '88005553535'\r\n */\r\nexport function generateNationalNumberDigits(phoneNumber) {\r\n\treturn phoneNumber.formatNational().replace(/\\D/g, '')\r\n}\r\n\r\n/**\r\n * Migrates parsed `` `value` for the newly selected `country`.\r\n * @param {string?} phoneDigits - Phone number digits (and `+`) parsed from phone number `` (it's not the same as the `value` property).\r\n * @param {string?} prevCountry - Previously selected country.\r\n * @param {string?} newCountry - Newly selected country. Can't be same as previously selected country.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @param {boolean} useNationalFormat - whether should attempt to convert from international to national number for the new country.\r\n * @return {string?}\r\n */\r\nexport function getPhoneDigitsForNewCountry(phoneDigits, {\r\n\tprevCountry,\r\n\tnewCountry,\r\n\tmetadata,\r\n\tuseNationalFormat\r\n}) {\r\n\tif (prevCountry === newCountry) {\r\n\t\treturn phoneDigits\r\n\t}\r\n\r\n\t// If `parsed_input` is empty\r\n\t// then no need to migrate anything.\r\n\tif (!phoneDigits) {\r\n\t\tif (useNationalFormat) {\r\n\t\t\treturn ''\r\n\t\t} else {\r\n\t\t\t// If `phoneDigits` is empty then set `phoneDigits` to\r\n\t\t\t// `+{getCountryCallingCode(newCountry)}`.\r\n\t\t\treturn getInternationalPhoneNumberPrefix(newCountry, metadata)\r\n\t\t}\r\n\t}\r\n\r\n\t// If switching to some country.\r\n\t// (from \"International\" or another country)\r\n\t// If switching from \"International\" then `phoneDigits` starts with a `+`.\r\n\t// Otherwise it may or may not start with a `+`.\r\n\tif (newCountry) {\r\n\t\t// If the phone number was entered in international format\r\n\t\t// then migrate it to the newly selected country.\r\n\t\t// The phone number may be incomplete.\r\n\t\t// The phone number entered not necessarily starts with\r\n\t\t// the previously selected country phone prefix.\r\n\t\tif (phoneDigits[0] === '+') {\r\n\t\t\t// If the international phone number is for the new country\r\n\t\t\t// then convert it to local if required.\r\n\t\t\tif (useNationalFormat) {\r\n\t\t\t\t// // If a phone number is being input in international form\r\n\t\t\t\t// // and the country can already be derived from it,\r\n\t\t\t\t// // and if it is the new country, then format as a national number.\r\n\t\t\t\t// const derived_country = getCountryFromPossiblyIncompleteInternationalPhoneNumber(phoneDigits, metadata)\r\n\t\t\t\t// if (derived_country === newCountry) {\r\n\t\t\t\t// \treturn stripCountryCallingCode(phoneDigits, derived_country, metadata)\r\n\t\t\t\t// }\r\n\r\n\t\t\t\t// Actually, the two countries don't necessarily need to match:\r\n\t\t\t\t// the condition could be looser here, because several countries\r\n\t\t\t\t// might share the same international phone number format\r\n\t\t\t\t// (for example, \"NANPA\" countries like US, Canada, etc).\r\n\t\t\t\t// The looser condition would be just \"same nternational phone number format\"\r\n\t\t\t\t// which would mean \"same country calling code\" in the context of `libphonenumber-js`.\r\n\t\t\t\tif (phoneDigits.indexOf('+' + getCountryCallingCode(newCountry, metadata)) === 0) {\r\n\t\t\t\t\treturn stripCountryCallingCode(phoneDigits, newCountry, metadata)\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Simply discard the previously entered international phone number,\r\n\t\t\t\t// because otherwise any \"smart\" transformation like getting the\r\n\t\t\t\t// \"national (significant) number\" part and then prepending the\r\n\t\t\t\t// newly selected country's \"country calling code\" to it\r\n\t\t\t\t// would just be confusing for a user without being actually useful.\r\n\t\t\t\treturn ''\r\n\r\n\t\t\t\t// // Simply strip the leading `+` character\r\n\t\t\t\t// // therefore simply converting all digits into a \"local\" phone number.\r\n\t\t\t\t// // https://github.com/catamphetamine/react-phone-number-input/issues/287\r\n\t\t\t\t// return phoneDigits.slice(1)\r\n\t\t\t}\r\n\r\n\t\t\tif (prevCountry) {\r\n\t\t\t\tconst newCountryPrefix = getInternationalPhoneNumberPrefix(newCountry, metadata)\r\n\t\t\t\tif (phoneDigits.indexOf(newCountryPrefix) === 0) {\r\n\t\t\t\t\treturn phoneDigits\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn newCountryPrefix\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tconst defaultValue = getInternationalPhoneNumberPrefix(newCountry, metadata)\r\n\t\t\t\t// If `phoneDigits`'s country calling code part is the same\r\n\t\t\t\t// as for the new `country`, then leave `phoneDigits` as is.\r\n\t\t\t\tif (phoneDigits.indexOf(defaultValue) === 0) {\r\n\t\t\t\t\treturn phoneDigits\r\n\t\t\t\t}\r\n\t\t\t\t// If `phoneDigits`'s country calling code part is not the same\r\n\t\t\t\t// as for the new `country`, then set `phoneDigits` to\r\n\t\t\t\t// `+{getCountryCallingCode(newCountry)}`.\r\n\t\t\t\treturn defaultValue\r\n\t\t\t}\r\n\r\n\t\t\t// // If the international phone number already contains\r\n\t\t\t// // any country calling code then trim the country calling code part.\r\n\t\t\t// // (that could also be the newly selected country phone code prefix as well)\r\n\t\t\t// // `phoneDigits` doesn't neccessarily belong to `prevCountry`.\r\n\t\t\t// // (e.g. if a user enters an international number\r\n\t\t\t// // not belonging to any of the reduced `countries` list).\r\n\t\t\t// phoneDigits = stripCountryCallingCode(phoneDigits, prevCountry, metadata)\r\n\r\n\t\t\t// // Prepend country calling code prefix\r\n\t\t\t// // for the newly selected country.\r\n\t\t\t// return e164(phoneDigits, newCountry, metadata) || `+${getCountryCallingCode(newCountry, metadata)}`\r\n\t\t}\r\n\t}\r\n\t// If switching to \"International\" from a country.\r\n\telse {\r\n\t\t// If the phone number was entered in national format.\r\n\t\tif (phoneDigits[0] !== '+') {\r\n\t\t\t// Format the national phone number as an international one.\r\n\t\t\t// The phone number entered not necessarily even starts with\r\n\t\t\t// the previously selected country phone prefix.\r\n\t\t\t// Even if the phone number belongs to whole another country\r\n\t\t\t// it will still be parsed into some national phone number.\r\n\t\t\t//\r\n\t\t\t// Ignore the now-uncovered `|| ''` code branch:\r\n\t\t\t// previously `e164()` function could return an empty string\r\n\t\t\t// even when `phoneDigits` were not empty.\r\n\t\t\t// Now it always returns some `value` when there're any `phoneDigits`.\r\n\t\t\t// Still, didn't remove the `|| ''` code branch just in case\r\n\t\t\t// that logic changes somehow in some future, so there're no\r\n\t\t\t// possible bugs related to that.\r\n\t\t\t//\r\n\t\t\t// (ignore the `|| ''` code branch)\r\n\t\t\t/* istanbul ignore next */\r\n\t\t\treturn e164(phoneDigits, prevCountry, metadata) || ''\r\n\t\t}\r\n\t}\r\n\r\n\treturn phoneDigits\r\n}\r\n\r\n/**\r\n * Converts phone number digits to a (possibly incomplete) E.164 phone number.\r\n * @param {string?} number - A possibly incomplete phone number digits string. Can be a possibly incomplete E.164 phone number.\r\n * @param {string?} country\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\r\nexport function e164(number, country, metadata) {\r\n\tif (!number) {\r\n\t\treturn\r\n\t}\r\n\t// If the phone number is being input in international format.\r\n\tif (number[0] === '+') {\r\n\t\t// If it's just the `+` sign then return nothing.\r\n\t\tif (number === '+') {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// Return a E.164 phone number.\r\n\t\t//\r\n\t\t// Could return `number` \"as is\" here, but there's a possibility\r\n\t\t// that some user might incorrectly input an international number\r\n\t\t// with a \"national prefix\". Such numbers aren't considered valid,\r\n\t\t// but `libphonenumber-js` is \"forgiving\" when it comes to parsing\r\n\t\t// user's input, and this input component follows that behavior.\r\n\t\t//\r\n\t\tconst asYouType = new AsYouType(country, metadata)\r\n\t\tasYouType.input(number)\r\n\t\t// This function would return `undefined` only when `number` is `\"+\"`,\r\n\t\t// but at this point it is known that `number` is not `\"+\"`.\r\n\t\treturn asYouType.getNumberValue()\r\n\t}\r\n\t// For non-international phone numbers\r\n\t// an accompanying country code is required.\r\n\t// The situation when `country` is `undefined`\r\n\t// and a non-international phone number is passed\r\n\t// to this function shouldn't happen.\r\n\tif (!country) {\r\n\t\treturn\r\n\t}\r\n\tconst partial_national_significant_number = getNationalSignificantNumberDigits(number, country, metadata)\r\n\t//\r\n\t// Even if no \"national (significant) number\" digits have been input,\r\n\t// still return a non-`undefined` value.\r\n\t// https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/113\r\n\t//\r\n\t// For example, if the user has selected country `US` and entered `\"1\"`\r\n\t// then that `\"1\"` is just a \"national prefix\" and no \"national (significant) number\"\r\n\t// digits have been input yet. Still, return `\"+1\"` as `value` in such cases,\r\n\t// because otherwise the app would think that the input is empty and mark it as such\r\n\t// while in reality it isn't empty, which might be thought of as a \"bug\", or just\r\n\t// a \"weird\" behavior.\r\n\t//\r\n\t// if (partial_national_significant_number) {\r\n\t\treturn `+${getCountryCallingCode(country, metadata)}${partial_national_significant_number || ''}`\r\n\t// }\r\n}\r\n\r\n/**\r\n * Trims phone number digits if they exceed the maximum possible length\r\n * for a national (significant) number for the country.\r\n * @param {string} number - A possibly incomplete phone number digits string. Can be a possibly incomplete E.164 phone number.\r\n * @param {string} country\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string} Can be empty.\r\n */\r\nexport function trimNumber(number, country, metadata) {\r\n\tconst nationalSignificantNumberPart = getNationalSignificantNumberDigits(number, country, metadata)\r\n\tif (nationalSignificantNumberPart) {\r\n\t\tconst overflowDigitsCount = nationalSignificantNumberPart.length - getMaxNumberLength(country, metadata)\r\n\t\tif (overflowDigitsCount > 0) {\r\n\t\t\treturn number.slice(0, number.length - overflowDigitsCount)\r\n\t\t}\r\n\t}\r\n\treturn number\r\n}\r\n\r\nfunction getMaxNumberLength(country, metadata) {\r\n\t// Get \"possible lengths\" for a phone number of the country.\r\n\tmetadata = new Metadata(metadata)\r\n\tmetadata.selectNumberingPlan(country)\r\n\t// Return the last \"possible length\".\r\n\treturn metadata.numberingPlan.possibleLengths()[metadata.numberingPlan.possibleLengths().length - 1]\r\n}\r\n\r\n// If the phone number being input is an international one\r\n// then tries to derive the country from the phone number.\r\n// (regardless of whether there's any country currently selected)\r\n/**\r\n * @param {string} partialE164Number - A possibly incomplete E.164 phone number.\r\n * @param {string?} country - Currently selected country.\r\n * @param {string[]?} countries - A list of available countries. If not passed then \"all countries\" are assumed.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\r\nexport function getCountryForPartialE164Number(partialE164Number, {\r\n\tcountry,\r\n\tcountries,\r\n\trequired,\r\n\tmetadata\r\n}) {\r\n\tif (partialE164Number === '+') {\r\n\t\t// Don't change the currently selected country yet.\r\n\t\treturn country\r\n\t}\r\n\r\n\tconst derived_country = getCountryFromPossiblyIncompleteInternationalPhoneNumber(partialE164Number, metadata)\r\n\r\n\t// If a phone number is being input in international form\r\n\t// and the country can already be derived from it,\r\n\t// then select that country.\r\n\tif (derived_country && (!countries || (countries.indexOf(derived_country) >= 0))) {\r\n\t\treturn derived_country\r\n\t}\r\n\t// If \"International\" country option has not been disabled\r\n\t// and the international phone number entered doesn't correspond\r\n\t// to the currently selected country then reset the currently selected country.\r\n\telse if (country &&\r\n\t\t!required &&\r\n\t\t!couldNumberBelongToCountry(partialE164Number, country, metadata)) {\r\n\t\treturn undefined\r\n\t}\r\n\r\n\t// Don't change the currently selected country.\r\n\treturn country\r\n}\r\n\r\n/**\r\n * Parses `` value. Derives `country` from `input`. Derives an E.164 `value`.\r\n * @param {string?} phoneDigits — Parsed `` value. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n * @param {string?} prevPhoneDigits — Previous parsed `` value. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n * @param {string?} country - Currently selected country.\r\n * @param {boolean} countryRequired - Is selecting some country required.\r\n * @param {function} getAnyCountry - Can be used to get any country when selecting some country required.\r\n * @param {string[]?} countries - A list of available countries. If not passed then \"all countries\" are assumed.\r\n * @param {boolean} international - Set to `true` to force international phone number format (leading `+`). Set to `false` to force \"national\" phone number format. Is `undefined` by default.\r\n * @param {boolean} limitMaxLength — Whether to enable limiting phone number max length.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {object} An object of shape `{ input, country, value }`.\r\n */\r\nexport function onPhoneDigitsChange(phoneDigits, {\r\n\tprevPhoneDigits,\r\n\tcountry,\r\n\tdefaultCountry,\r\n\tcountryRequired,\r\n\tgetAnyCountry,\r\n\tcountries,\r\n\tinternational,\r\n\tlimitMaxLength,\r\n\tcountryCallingCodeEditable,\r\n\tmetadata\r\n}) {\r\n\tif (international && countryCallingCodeEditable === false) {\r\n\t\tconst prefix = getInternationalPhoneNumberPrefix(country, metadata)\r\n\t\t// The `` value must start with the country calling code.\r\n\t\tif (phoneDigits.indexOf(prefix) !== 0) {\r\n\t\t\tlet value\r\n\t\t\t// If a phone number input is declared as\r\n\t\t\t// `international` and `withCountryCallingCode`,\r\n\t\t\t// then it's gonna be non-empty even before the user\r\n\t\t\t// has input anything in it.\r\n\t\t\t// This will result in its contents (the country calling code part)\r\n\t\t\t// being selected when the user tabs into such field.\r\n\t\t\t// If the user then starts inputting the national part digits,\r\n\t\t\t// then `` value changes from `+xxx` to `y`\r\n\t\t\t// because inputting anything while having the `` value\r\n\t\t\t// selected results in erasing the `` value.\r\n\t\t\t// So, the component handles such case by restoring\r\n\t\t\t// the intended `` value: `+xxxy`.\r\n\t\t\t// https://gitlab.com/catamphetamine/react-phone-number-input/-/issues/43\r\n\t\t\tif (phoneDigits && phoneDigits[0] !== '+') {\r\n\t\t\t\tphoneDigits = prefix + phoneDigits\r\n\t\t\t\tvalue = e164(phoneDigits, country, metadata)\r\n\t\t\t} else {\r\n\t\t\t\tphoneDigits = prefix\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tphoneDigits,\r\n\t\t\t\tvalue,\r\n\t\t\t\tcountry\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// If `international` property is `false`, then it means\r\n\t// \"enforce national-only format during input\",\r\n\t// so, if that's the case, then remove all `+` characters,\r\n\t// but only if some country is currently selected.\r\n\t// (not if \"International\" country is selected).\r\n\tif (international === false && country && phoneDigits && phoneDigits[0] === '+') {\r\n\t\tphoneDigits = convertInternationalPhoneDigitsToNational(phoneDigits, country, metadata)\r\n\t}\r\n\r\n\t// Trim the input to not exceed the maximum possible number length.\r\n\tif (phoneDigits && country && limitMaxLength) {\r\n\t\tphoneDigits = trimNumber(phoneDigits, country, metadata)\r\n\t}\r\n\r\n\t// If this `onChange()` event was triggered\r\n\t// as a result of selecting \"International\" country,\r\n\t// then force-prepend a `+` sign if the phone number\r\n\t// `` value isn't in international format.\r\n\t// Also, force-prepend a `+` sign if international\r\n\t// phone number input format is set.\r\n\tif (phoneDigits && phoneDigits[0] !== '+' && (!country || international)) {\r\n\t\tphoneDigits = '+' + phoneDigits\r\n\t}\r\n\r\n\t// If the previously entered phone number\r\n\t// has been entered in international format\r\n\t// and the user decides to erase it,\r\n\t// then also reset the `country`\r\n\t// because it was most likely automatically selected\r\n\t// while the user was typing in the phone number\r\n\t// in international format.\r\n\t// This fixes the issue when a user is presented\r\n\t// with a phone number input with no country selected\r\n\t// and then types in their local phone number\r\n\t// then discovers that the input's messed up\r\n\t// (a `+` has been prepended at the start of their input\r\n\t// and a random country has been selected),\r\n\t// decides to undo it all by erasing everything\r\n\t// and then types in their local phone number again\r\n\t// resulting in a seemingly correct phone number\r\n\t// but in reality that phone number has incorrect country.\r\n\t// https://github.com/catamphetamine/react-phone-number-input/issues/273\r\n\tif (!phoneDigits && prevPhoneDigits && prevPhoneDigits[0] === '+') {\r\n\t\tif (international) {\r\n\t\t\tcountry = undefined\r\n\t\t} else {\r\n\t\t\tcountry = defaultCountry\r\n\t\t}\r\n\t}\r\n\t// Also resets such \"randomly\" selected country\r\n\t// as soon as the user erases the number\r\n\t// digit-by-digit up to the leading `+` sign.\r\n\tif (phoneDigits === '+' && prevPhoneDigits && prevPhoneDigits[0] === '+' && prevPhoneDigits.length > '+'.length) {\r\n\t\tcountry = undefined\r\n\t}\r\n\r\n\t// Generate the new `value` property.\r\n\tlet value\r\n\tif (phoneDigits) {\r\n\t\tif (phoneDigits[0] === '+') {\r\n\t\t\tif (phoneDigits === '+') {\r\n\t\t\t\tvalue = undefined\r\n\t\t\t} else if (country && getInternationalPhoneNumberPrefix(country, metadata).indexOf(phoneDigits) === 0) {\r\n\t\t\t\t// Selected a `country` but started inputting an\r\n\t\t\t\t// international phone number for another country.\r\n\t\t\t\t// Even though the input value is non-empty,\r\n\t\t\t\t// the `value` is assumed `undefined` in such case.\r\n\t\t\t\t// The `country` will be reset (or re-selected)\r\n\t\t\t\t// immediately after such mismatch has been detected\r\n\t\t\t\t// by the phone number input component, and `value`\r\n\t\t\t\t// will be set to the currently entered international prefix.\r\n\t\t\t\t//\r\n\t\t\t\t// For example, if selected `country` `\"US\"`\r\n\t\t\t\t// and started inputting phone number `\"+2\"`\r\n\t\t\t\t// then `value` `undefined` will be returned from this function,\r\n\t\t\t\t// and then, immediately after that, `country` will be reset\r\n\t\t\t\t// and the `value` will be set to `\"+2\"`.\r\n\t\t\t\t//\r\n\t\t\t\tvalue = undefined\r\n\t\t\t} else {\r\n\t\t\t\tvalue = e164(phoneDigits, country, metadata)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvalue = e164(phoneDigits, country, metadata)\r\n\t\t}\r\n\t}\r\n\r\n\t// Derive the country from the phone number.\r\n\t// (regardless of whether there's any country currently selected,\r\n\t// because there could be several countries corresponding to one country calling code)\r\n\tif (value) {\r\n\t\tcountry = getCountryForPartialE164Number(value, {\r\n\t\t\tcountry,\r\n\t\t\tcountries,\r\n\t\t\tmetadata\r\n\t\t})\r\n\t\t// If `international` property is `false`, then it means\r\n\t\t// \"enforce national-only format during input\",\r\n\t\t// so, if that's the case, then remove all `+` characters,\r\n\t\t// but only if some country is currently selected.\r\n\t\t// (not if \"International\" country is selected).\r\n\t\tif (international === false && country && phoneDigits && phoneDigits[0] === '+') {\r\n\t\t\tphoneDigits = convertInternationalPhoneDigitsToNational(phoneDigits, country, metadata)\r\n\t\t\t// Re-calculate `value` because `phoneDigits` has changed.\r\n\t\t\tvalue = e164(phoneDigits, country, metadata)\r\n\t\t}\r\n\t}\r\n\r\n\tif (!country && countryRequired) {\r\n\t\tcountry = defaultCountry || getAnyCountry()\r\n\t}\r\n\r\n\treturn {\r\n\t\tphoneDigits,\r\n\t\tcountry,\r\n\t\tvalue\r\n\t}\r\n}\r\n\r\nfunction convertInternationalPhoneDigitsToNational(input, country, metadata) {\r\n\t// Handle the case when a user might have pasted\r\n\t// a phone number in international format.\r\n\tif (input.indexOf(getInternationalPhoneNumberPrefix(country, metadata)) === 0) {\r\n\t\t// Create \"as you type\" formatter.\r\n\t\tconst formatter = new AsYouType(country, metadata)\r\n\t\t// Input partial national phone number.\r\n\t\tformatter.input(input)\r\n\t\t// Return the parsed partial national phone number.\r\n\t\tconst phoneNumber = formatter.getNumber()\r\n\t\tif (phoneNumber) {\r\n\t\t\t// Transform the number to a national one,\r\n\t\t\t// and remove all non-digits.\r\n\t\t\treturn phoneNumber.formatNational().replace(/\\D/g, '')\r\n\t\t} else {\r\n\t\t\treturn ''\r\n\t\t}\r\n\t} else {\r\n\t\t// Just remove the `+` sign.\r\n\t\treturn input.replace(/\\D/g, '')\r\n\t}\r\n}\r\n\r\n/**\r\n * Determines the country for a given (possibly incomplete) E.164 phone number.\r\n * @param {string} number - A possibly incomplete E.164 phone number.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string?}\r\n */\r\nexport function getCountryFromPossiblyIncompleteInternationalPhoneNumber(number, metadata) {\r\n\tconst formatter = new AsYouType(null, metadata)\r\n\tformatter.input(number)\r\n\t// // `001` is a special \"non-geograpical entity\" code\r\n\t// // in Google's `libphonenumber` library.\r\n\t// if (formatter.getCountry() === '001') {\r\n\t// \treturn\r\n\t// }\r\n\treturn formatter.getCountry()\r\n}\r\n\r\n/**\r\n * Compares two strings.\r\n * A helper for `Array.sort()`.\r\n * @param {string} a — First string.\r\n * @param {string} b — Second string.\r\n * @param {(string[]|string)} [locales] — The `locales` argument of `String.localeCompare`.\r\n */\r\nexport function compareStrings(a, b, locales) {\r\n // Use `String.localeCompare` if it's available.\r\n // https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare\r\n // Which means everyone except IE <= 10 and Safari <= 10.\r\n // `localeCompare()` is available in latest Node.js versions.\r\n /* istanbul ignore else */\r\n if (String.prototype.localeCompare) {\r\n return a.localeCompare(b, locales);\r\n }\r\n /* istanbul ignore next */\r\n return a < b ? -1 : (a > b ? 1 : 0);\r\n}\r\n\r\n/**\r\n * Strips `+${countryCallingCode}` prefix from an E.164 phone number.\r\n * @param {string} number - (possibly incomplete) E.164 phone number.\r\n * @param {string?} country - A possible country for this phone number.\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string}\r\n */\r\nexport function stripCountryCallingCode(number, country, metadata) {\r\n\t// Just an optimization, so that it\r\n\t// doesn't have to iterate through all country calling codes.\r\n\tif (country) {\r\n\t\tconst countryCallingCodePrefix = '+' + getCountryCallingCode(country, metadata)\r\n\r\n\t\t// If `country` fits the actual `number`.\r\n\t\tif (number.length < countryCallingCodePrefix.length) {\r\n\t\t\tif (countryCallingCodePrefix.indexOf(number) === 0) {\r\n\t\t\t\treturn ''\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (number.indexOf(countryCallingCodePrefix) === 0) {\r\n\t\t\t\treturn number.slice(countryCallingCodePrefix.length)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// If `country` doesn't fit the actual `number`.\r\n\t// Try all available country calling codes.\r\n\tfor (const country_calling_code of Object.keys(metadata.country_calling_codes)) {\r\n\t\tif (number.indexOf(country_calling_code) === '+'.length) {\r\n\t\t\treturn number.slice('+'.length + country_calling_code.length)\r\n\t\t}\r\n\t}\r\n\r\n\treturn ''\r\n}\r\n\r\n/**\r\n * Parses a partially entered national phone number digits\r\n * (or a partially entered E.164 international phone number)\r\n * and returns the national significant number part.\r\n * National significant number returned doesn't come with a national prefix.\r\n * @param {string} number - National number digits. Or possibly incomplete E.164 phone number.\r\n * @param {string?} country\r\n * @param {object} metadata - `libphonenumber-js` metadata.\r\n * @return {string} [result]\r\n */\r\nexport function getNationalSignificantNumberDigits(number, country, metadata) {\r\n\t// Create \"as you type\" formatter.\r\n\tconst formatter = new AsYouType(country, metadata)\r\n\t// Input partial national phone number.\r\n\tformatter.input(number)\r\n\t// Return the parsed partial national phone number.\r\n\tconst phoneNumber = formatter.getNumber()\r\n\treturn phoneNumber && phoneNumber.nationalNumber\r\n}\r\n\r\n/**\r\n * Checks if a partially entered E.164 phone number could belong to a country.\r\n * @param {string} number\r\n * @param {string} country\r\n * @return {boolean}\r\n */\r\nexport function couldNumberBelongToCountry(number, country, metadata) {\r\n\tconst intlPhoneNumberPrefix = getInternationalPhoneNumberPrefix(country, metadata)\r\n\tlet i = 0\r\n\twhile (i < number.length && i < intlPhoneNumberPrefix.length) {\r\n\t\tif (number[i] !== intlPhoneNumberPrefix[i]) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn true\r\n}\r\n\r\n/**\r\n * Gets initial \"phone digits\" (including `+`, if using international format).\r\n * @return {string} [phoneDigits] Returns `undefined` if there should be no initial \"phone digits\".\r\n */\r\nexport function getInitialPhoneDigits({\r\n\tvalue,\r\n\tphoneNumber,\r\n\tdefaultCountry,\r\n\tinternational,\r\n\tuseNationalFormat,\r\n\tmetadata\r\n}) {\r\n\t// If the `value` (E.164 phone number)\r\n\t// belongs to the currently selected country\r\n\t// and `useNationalFormat` is `true`\r\n\t// then convert `value` (E.164 phone number)\r\n\t// to a local phone number digits.\r\n\t// E.g. '+78005553535' -> '88005553535'.\r\n\tif ((international === false || useNationalFormat) && phoneNumber && phoneNumber.country) {\r\n\t\treturn generateNationalNumberDigits(phoneNumber)\r\n\t}\r\n\t// If `international` property is `true`,\r\n\t// meaning \"enforce international phone number format\",\r\n\t// then always show country calling code in the input field.\r\n\tif (!value && international && defaultCountry) {\r\n\t\treturn getInternationalPhoneNumberPrefix(defaultCountry, metadata)\r\n\t}\r\n\treturn value\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport classNames from 'classnames'\r\n\r\nimport InputSmart from './InputSmart'\r\nimport InputBasic from './InputBasic'\r\n\r\nimport { CountrySelectWithIcon as CountrySelect } from './CountrySelect'\r\n\r\nimport Flag from './Flag'\r\nimport InternationalIcon from './InternationalIcon'\r\n\r\nimport {\r\n\tsortCountryOptions,\r\n\tisCountrySupportedWithError,\r\n\tgetSupportedCountries,\r\n\tgetSupportedCountryOptions,\r\n\tgetCountries\r\n} from './helpers/countries'\r\n\r\nimport { createCountryIconComponent } from './CountryIcon'\r\n\r\nimport {\r\n\tmetadata as metadataPropType,\r\n\tlabels as labelsPropType\r\n} from './PropTypes'\r\n\r\nimport {\r\n\tgetPreSelectedCountry,\r\n\tgetCountrySelectOptions,\r\n\tparsePhoneNumber,\r\n\tgenerateNationalNumberDigits,\r\n\tgetPhoneDigitsForNewCountry,\r\n\tgetInitialPhoneDigits,\r\n\tonPhoneDigitsChange,\r\n\te164\r\n} from './helpers/phoneInputHelpers'\r\n\r\nimport getPhoneInputWithCountryStateUpdateFromNewProps from './helpers/getPhoneInputWithCountryStateUpdateFromNewProps'\r\n\r\nclass PhoneNumberInput_ extends React.PureComponent {\r\n\tinputRef = React.createRef()\r\n\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\r\n\t\tconst {\r\n\t\t\tvalue,\r\n\t\t\tlabels,\r\n\t\t\tinternational,\r\n\t\t\taddInternationalOption,\r\n\t\t\t// `displayInitialValueAsLocalNumber` property has been\r\n\t\t\t// superceded by `initialValueFormat` property.\r\n\t\t\tdisplayInitialValueAsLocalNumber,\r\n\t\t\tinitialValueFormat,\r\n\t\t\tmetadata\r\n\t\t} = this.props\r\n\r\n\t\tlet {\r\n\t\t\tdefaultCountry,\r\n\t\t\tcountries\r\n\t\t} = this.props\r\n\r\n\t\t// Validate `defaultCountry`.\r\n\t\tif (defaultCountry) {\r\n\t\t\tif (!this.isCountrySupportedWithError(defaultCountry)) {\r\n\t\t\t\tdefaultCountry = undefined\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Validate `countries`.\r\n\t\tcountries = getSupportedCountries(countries, metadata)\r\n\r\n\t\tconst phoneNumber = parsePhoneNumber(value, metadata)\r\n\r\n\t\tthis.CountryIcon = createCountryIconComponent(this.props)\r\n\r\n\t\tconst preSelectedCountry = getPreSelectedCountry({\r\n\t\t\tvalue,\r\n\t\t\tphoneNumber,\r\n\t\t\tdefaultCountry,\r\n\t\t\trequired: !addInternationalOption,\r\n\t\t\tcountries: countries || getCountries(metadata),\r\n\t\t\tgetAnyCountry: () => this.getFirstSupportedCountry({ countries }),\r\n\t\t\tmetadata\r\n\t\t})\r\n\r\n\t\tthis.state = {\r\n\t\t\t// Workaround for `this.props` inside `getDerivedStateFromProps()`.\r\n\t\t\tprops: this.props,\r\n\r\n\t\t\t// The country selected.\r\n\t\t\tcountry: preSelectedCountry,\r\n\r\n\t\t\t// `countries` are stored in `this.state` because they're filtered.\r\n\t\t\t// For example, a developer might theoretically pass some unsupported\r\n\t\t\t// countries as part of the `countries` property, and because of that\r\n\t\t\t// the component uses `this.state.countries` (which are filtered)\r\n\t\t\t// instead of `this.props.countries`\r\n\t\t\t// (which could potentially contain unsupported countries).\r\n\t\t\tcountries,\r\n\r\n\t\t\t// `phoneDigits` state property holds non-formatted user's input.\r\n\t\t\t// The reason is that there's no way of finding out\r\n\t\t\t// in which form should `value` be displayed: international or national.\r\n\t\t\t// E.g. if `value` is `+78005553535` then it could be input\r\n\t\t\t// by a user both as `8 (800) 555-35-35` and `+7 800 555 35 35`.\r\n\t\t\t// Hence storing just `value` is not sufficient for correct formatting.\r\n\t\t\t// E.g. if a user entered `8 (800) 555-35-35`\r\n\t\t\t// then value is `+78005553535` and `phoneDigits` are `88005553535`\r\n\t\t\t// and if a user entered `+7 800 555 35 35`\r\n\t\t\t// then value is `+78005553535` and `phoneDigits` are `+78005553535`.\r\n\t\t\tphoneDigits: getInitialPhoneDigits({\r\n\t\t\t\tvalue,\r\n\t\t\t\tphoneNumber,\r\n\t\t\t\tdefaultCountry,\r\n\t\t\t\tinternational,\r\n\t\t\t\tuseNationalFormat: displayInitialValueAsLocalNumber || initialValueFormat === 'national',\r\n\t\t\t\tmetadata\r\n\t\t\t}),\r\n\r\n\t\t\t// `value` property is duplicated in state.\r\n\t\t\t// The reason is that `getDerivedStateFromProps()`\r\n\t\t\t// needs this `value` to compare to the new `value` property\r\n\t\t\t// to find out if `phoneDigits` needs updating:\r\n\t\t\t// If the `value` property was changed externally\r\n\t\t\t// then it won't be equal to `state.value`\r\n\t\t\t// in which case `phoneDigits` and `country` should be updated.\r\n\t\t\tvalue\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tconst { onCountryChange } = this.props\r\n\t\tlet { defaultCountry } = this.props\r\n\t\tconst { country: selectedCountry } = this.state\r\n\t\tif (onCountryChange) {\r\n\t\t\tif (defaultCountry) {\r\n\t\t\t\tif (!this.isCountrySupportedWithError(defaultCountry)) {\r\n\t\t\t\t\tdefaultCountry = undefined\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (selectedCountry !== defaultCountry) {\r\n\t\t\t\tonCountryChange(selectedCountry)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidUpdate(prevProps, prevState) {\r\n\t\tconst { onCountryChange } = this.props\r\n\t\tconst { country } = this.state\r\n\t\t// Call `onCountryChange` when user selects another country.\r\n\t\tif (onCountryChange && country !== prevState.country) {\r\n\t\t\tonCountryChange(country)\r\n\t\t}\r\n\t}\r\n\r\n\tsetInputRef = (instance) => {\r\n\t\tthis.inputRef.current = instance\r\n\t\tconst { inputRef: ref } = this.props\r\n\t\tif (ref) {\r\n\t\t\tif (typeof ref === 'function') {\r\n\t\t\t\tref(instance)\r\n\t\t\t} else {\r\n\t\t\t\tref.current = instance\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgetCountrySelectOptions({ countries }) {\r\n\t\tconst {\r\n\t\t\tinternational,\r\n\t\t\tcountryCallingCodeEditable,\r\n\t\t\tcountryOptionsOrder,\r\n\t\t\taddInternationalOption,\r\n\t\t\tlabels,\r\n\t\t\tlocales,\r\n\t\t\tmetadata\r\n\t\t} = this.props\r\n\t\treturn useMemoCountrySelectOptions(() => {\r\n\t\t\treturn sortCountryOptions(\r\n\t\t\t\tgetCountrySelectOptions({\r\n\t\t\t\t\tcountries: countries || getCountries(metadata),\r\n\t\t\t\t\tcountryNames: labels,\r\n\t\t\t\t\taddInternationalOption: (international && countryCallingCodeEditable === false) ? false : addInternationalOption,\r\n\t\t\t\t\tcompareStringsLocales: locales,\r\n\t\t\t\t\t// compareStrings\r\n\t\t\t\t}),\r\n\t\t\t\tgetSupportedCountryOptions(countryOptionsOrder, metadata)\r\n\t\t\t)\r\n\t\t}, [\r\n\t\t\tcountries,\r\n\t\t\tcountryOptionsOrder,\r\n\t\t\taddInternationalOption,\r\n\t\t\tlabels,\r\n\t\t\tmetadata\r\n\t\t])\r\n\t}\r\n\r\n\tgetFirstSupportedCountry({ countries }) {\r\n\t\tconst countryOptions = this.getCountrySelectOptions({ countries })\r\n\t\treturn countryOptions[0].value\r\n\t}\r\n\r\n\t// A shorthand for not passing `metadata` as a second argument.\r\n\tisCountrySupportedWithError = (country) => {\r\n\t\tconst { metadata } = this.props\r\n\t\treturn isCountrySupportedWithError(country, metadata)\r\n\t}\r\n\r\n\t// Country `` holds any digits\r\n\t\t// then migrate those digits for the new `country`.\r\n\t\tconst newPhoneDigits = getPhoneDigitsForNewCountry(prevPhoneDigits, {\r\n\t\t\tprevCountry,\r\n\t\t\tnewCountry,\r\n\t\t\tmetadata,\r\n\t\t\t// Convert the phone number to \"national\" format\r\n\t\t\t// when the user changes the selected country by hand.\r\n\t\t\tuseNationalFormat: !international\r\n\t\t})\r\n\r\n\t\tconst newValue = e164(newPhoneDigits, newCountry, metadata)\r\n\r\n\t\t// Focus phone number `` upon country selection.\r\n\t\tif (focusInputOnCountrySelection) {\r\n\t\t\tthis.inputRef.current.focus()\r\n\t\t}\r\n\r\n\t\t// If the user has already manually selected a country\r\n\t\t// then don't override that already selected country\r\n\t\t// if the `defaultCountry` property changes.\r\n\t\t// That's what `hasUserSelectedACountry` flag is for.\r\n\r\n\t\tthis.setState({\r\n\t\t\tcountry: newCountry,\r\n\t\t\thasUserSelectedACountry: true,\r\n\t\t\tphoneDigits: newPhoneDigits,\r\n\t\t\tvalue: newValue\r\n\t\t},\r\n\t\t() => {\r\n\t\t\t// Update the new `value` property.\r\n\t\t\t// Doing it after the `state` has been updated\r\n\t\t\t// because `onChange()` will trigger `getDerivedStateFromProps()`\r\n\t\t\t// with the new `value` which will be compared to `state.value` there.\r\n\t\t\tonChange(newValue)\r\n\t\t})\r\n\t}\r\n\r\n\t/**\r\n\t * `` `onChange()` handler.\r\n\t * Updates `value` property accordingly (so that they are kept in sync).\r\n\t * @param {string?} input — Either a parsed phone number or an empty string. Examples: `\"\"`, `\"+\"`, `\"+123\"`, `\"123\"`.\r\n\t */\r\n\tonChange = (_phoneDigits) => {\r\n\t\tconst {\r\n\t\t\tdefaultCountry,\r\n\t\t\tonChange,\r\n\t\t\taddInternationalOption,\r\n\t\t\tinternational,\r\n\t\t\tlimitMaxLength,\r\n\t\t\tcountryCallingCodeEditable,\r\n\t\t\tmetadata\r\n\t\t} = this.props\r\n\r\n\t\tconst {\r\n\t\t\tcountries,\r\n\t\t\tphoneDigits: prevPhoneDigits,\r\n\t\t\tcountry: currentlySelectedCountry\r\n\t\t} = this.state\r\n\r\n\t\tconst {\r\n\t\t\tphoneDigits,\r\n\t\t\tcountry,\r\n\t\t\tvalue\r\n\t\t} = onPhoneDigitsChange(_phoneDigits, {\r\n\t\t\tprevPhoneDigits,\r\n\t\t\tcountry: currentlySelectedCountry,\r\n\t\t\tcountryRequired: !addInternationalOption,\r\n\t\t\tdefaultCountry,\r\n\t\t\tgetAnyCountry: () => this.getFirstSupportedCountry({ countries }),\r\n\t\t\tcountries,\r\n\t\t\tinternational,\r\n\t\t\tlimitMaxLength,\r\n\t\t\tcountryCallingCodeEditable,\r\n\t\t\tmetadata\r\n\t\t})\r\n\r\n\t\tconst stateUpdate = {\r\n\t\t\tphoneDigits,\r\n\t\t\tvalue,\r\n\t\t\tcountry\r\n\t\t}\r\n\r\n\t\tif (countryCallingCodeEditable === false) {\r\n\t\t\t// If it simply did `setState({ phoneDigits: intlPrefix })` here,\r\n\t\t\t// then it would have no effect when erasing an inital international prefix\r\n\t\t\t// via Backspace, because `phoneDigits` in `state` wouldn't change\r\n\t\t\t// as a result, because it was `prefix` and it became `prefix`,\r\n\t\t\t// so the component wouldn't rerender, and the user would be able\r\n\t\t\t// to erase the country calling code part, and that part is\r\n\t\t\t// assumed to be non-eraseable. That's why the component is\r\n\t\t\t// forcefully rerendered here.\r\n\t\t\t// https://github.com/catamphetamine/react-phone-number-input/issues/367#issuecomment-721703501\r\n\t\t\tif (!value && phoneDigits === this.state.phoneDigits) {\r\n\t\t\t\t// Force a re-render of the `` in order to reset its value.\r\n\t\t\t\tstateUpdate.forceRerender = {}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.setState(\r\n\t\t\tstateUpdate,\r\n\t\t\t// Update the new `value` property.\r\n\t\t\t// Doing it after the `state` has been updated\r\n\t\t\t// because `onChange()` will trigger `getDerivedStateFromProps()`\r\n\t\t\t// with the new `value` which will be compared to `state.value` there.\r\n\t\t\t() => onChange(value)\r\n\t\t)\r\n\t}\r\n\r\n\t// Toggles the `--focus` CSS class.\r\n\t_onFocus = () => this.setState({ isFocused: true })\r\n\r\n\t// Toggles the `--focus` CSS class.\r\n\t_onBlur = () => this.setState({ isFocused: false })\r\n\r\n\tonFocus = (event) => {\r\n\t\tthis._onFocus()\r\n\t\tconst { onFocus } = this.props\r\n\t\tif (onFocus) {\r\n\t\t\tonFocus(event)\r\n\t\t}\r\n\t}\r\n\r\n\tonBlur = (event) => {\r\n\t\tconst { onBlur } = this.props\r\n\t\tthis._onBlur()\r\n\t\tif (onBlur) {\r\n\t\t\tonBlur(event)\r\n\t\t}\r\n\t}\r\n\r\n\tonCountryFocus = (event) => {\r\n\t\tthis._onFocus()\r\n\t\t// this.setState({ countrySelectFocused: true })\r\n\t\tconst { countrySelectProps } = this.props\r\n\t\tif (countrySelectProps) {\r\n\t\t\tconst { onFocus } = countrySelectProps\r\n\t\t\tif (onFocus) {\r\n\t\t\t\tonFocus(event)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tonCountryBlur = (event) => {\r\n\t\tthis._onBlur()\r\n\t\t// this.setState({ countrySelectFocused: false })\r\n\t\tconst { countrySelectProps } = this.props\r\n\t\tif (countrySelectProps) {\r\n\t\t\tconst { onBlur } = countrySelectProps\r\n\t\t\tif (onBlur) {\r\n\t\t\t\tonBlur(event)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// `state` holds previous props as `props`, and also:\r\n\t// * `country` — The currently selected country, e.g. `\"RU\"`.\r\n\t// * `value` — The currently entered phone number (E.164), e.g. `+78005553535`.\r\n\t// * `phoneDigits` — The parsed `` value, e.g. `8005553535`.\r\n\t// (and a couple of other less significant properties)\r\n\tstatic getDerivedStateFromProps(props, state) {\r\n\t\treturn {\r\n\t\t\t// Emulate `prevProps` via `state.props`.\r\n\t\t\tprops,\r\n\t\t\t...getPhoneInputWithCountryStateUpdateFromNewProps(props, state.props, state)\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {\r\n\t\t\t// Generic HTML attributes.\r\n\t\t\tname,\r\n\t\t\tdisabled,\r\n\t\t\treadOnly,\r\n\t\t\tautoComplete,\r\n\t\t\tstyle,\r\n\t\t\tclassName,\r\n\r\n\t\t\t// Number `` properties.\r\n\t\t\tinputRef,\r\n\t\t\tinputComponent,\r\n\t\t\tnumberInputProps,\r\n\t\t\tsmartCaret,\r\n\r\n\t\t\t// Country ``).\r\n\t\t\tdefaultCountry,\r\n\t\t\tcountries: countriesProperty,\r\n\t\t\tcountryOptionsOrder,\r\n\t\t\tlabels,\r\n\t\t\tflags,\r\n\t\t\tflagComponent,\r\n\t\t\tflagUrl,\r\n\t\t\taddInternationalOption,\r\n\t\t\tinternationalIcon,\r\n\t\t\t// `displayInitialValueAsLocalNumber` property has been\r\n\t\t\t// superceded by `initialValueFormat` property.\r\n\t\t\tdisplayInitialValueAsLocalNumber,\r\n\t\t\tinitialValueFormat,\r\n\t\t\tonCountryChange,\r\n\t\t\tlimitMaxLength,\r\n\t\t\tcountryCallingCodeEditable,\r\n\t\t\tfocusInputOnCountrySelection,\r\n\t\t\treset,\r\n\t\t\tmetadata,\r\n\t\t\tinternational,\r\n\t\t\tlocales,\r\n\t\t\t// compareStrings,\r\n\t\t\t...rest\r\n\t\t} = this.props\r\n\r\n\t\tconst {\r\n\t\t\tcountry,\r\n\t\t\tcountries,\r\n\t\t\tphoneDigits,\r\n\t\t\tisFocused\r\n\t\t} = this.state\r\n\r\n\t\tconst InputComponent = smartCaret ? InputSmart : InputBasic\r\n\r\n\t\tconst countrySelectOptions = this.getCountrySelectOptions({ countries })\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\r\n\t\t\t\t{/* Country `` */}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n}\r\n\r\n// This wrapper is only to `.forwardRef()` to the ``.\r\nconst PhoneNumberInput = React.forwardRef((props, ref) => (\r\n\t\r\n))\r\n\r\nPhoneNumberInput.propTypes = {\r\n\t/**\r\n\t * Phone number in `E.164` format.\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `\"+12223333333\"`\r\n\t *\r\n\t * Any \"falsy\" value like `undefined`, `null` or an empty string `\"\"` is treated like \"empty\".\r\n\t */\r\n\tvalue: PropTypes.string,\r\n\r\n\t/**\r\n\t * A function of `value: string?`.\r\n\t *\r\n\t * Updates the `value` property as the user inputs a phone number.\r\n\t *\r\n\t * If the user erases the input value, the argument is `undefined`.\r\n\t */\r\n\tonChange: PropTypes.func.isRequired,\r\n\r\n\t/**\r\n\t * Toggles the `--focus` CSS class.\r\n\t * @ignore\r\n\t */\r\n\tonFocus: PropTypes.func,\r\n\r\n\t/**\r\n\t * `onBlur` is usually passed by `redux-form`.\r\n\t * @ignore\r\n\t */\r\n\tonBlur: PropTypes.func,\r\n\r\n\t/**\r\n\t * Set to `true` to mark both the phone number ``\r\n\t * and the country ``\r\n\t * and the country ``.\r\n\t *\r\n\t * Web browser's \"autocomplete\" feature\r\n\t * remembers the phone number being input\r\n\t * and can also autofill the ``\r\n\t * with previously remembered phone numbers.\r\n\t *\r\n\t * https://developers.google.com\r\n\t * /web/updates/2015/06/checkout-faster-with-autofill\r\n\t *\r\n\t * For example, can be used to turn it off:\r\n\t *\r\n\t * \"So when should you use `autocomplete=\"off\"`?\r\n\t * One example is when you've implemented your own version\r\n\t * of autocomplete for search. Another example is any form field\r\n\t * where users will input and submit different kinds of information\r\n\t * where it would not be useful to have the browser remember\r\n\t * what was submitted previously\".\r\n\t */\r\n\t// (is `\"tel\"` by default)\r\n\tautoComplete: PropTypes.string.isRequired,\r\n\r\n\t/**\r\n\t * Set to `\"national\"` to show the initial `value` in\r\n\t * \"national\" format rather than \"international\".\r\n\t *\r\n\t * For example, if `initialValueFormat` is `\"national\"`\r\n\t * and the initial `value=\"+12133734253\"` is passed\r\n\t * then the `` value will be `\"(213) 373-4253\"`.\r\n\t *\r\n\t * By default, `initialValueFormat` is `undefined`,\r\n\t * meaning that if the initial `value=\"+12133734253\"` is passed\r\n\t * then the `` value will be `\"+1 213 373 4253\"`.\r\n\t *\r\n\t * The reason for such default behaviour is that\r\n\t * the newer generation grows up when there are no stationary phones\r\n\t * and therefore everyone inputs phone numbers in international format\r\n\t * in their smartphones so people gradually get more accustomed to\r\n\t * writing phone numbers in international format rather than in local format.\r\n\t * Future people won't be using \"national\" format, only \"international\".\r\n\t */\r\n\t// (is `undefined` by default)\r\n\tinitialValueFormat: PropTypes.oneOf(['national']),\r\n\r\n\t// `displayInitialValueAsLocalNumber` property has been\r\n\t// superceded by `initialValueFormat` property.\r\n\tdisplayInitialValueAsLocalNumber: PropTypes.bool,\r\n\r\n\t/**\r\n\t * The country to be selected by default.\r\n\t * For example, can be set after a GeoIP lookup.\r\n\t *\r\n\t * Example: `\"US\"`.\r\n\t */\r\n\t// A two-letter country code (\"ISO 3166-1 alpha-2\").\r\n\tdefaultCountry: PropTypes.string,\r\n\r\n\t/**\r\n\t * If specified, only these countries will be available for selection.\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `[\"RU\", \"UA\", \"KZ\"]`\r\n\t */\r\n\tcountries: PropTypes.arrayOf(PropTypes.string),\r\n\r\n\t/**\r\n\t * Custom country `` `aria-label`.\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `{ \"ZZ\": \"Международный\", RU: \"Россия\", US: \"США\", ... }`\r\n\t *\r\n\t * See the `locales` directory for examples.\r\n\t */\r\n\tlabels: labelsPropType.isRequired,\r\n\r\n\t/**\r\n\t * Country `` options sorting function.\r\n\t * The default one uses `a.localeCompare(b)`, and,\r\n\t * if that's not available, falls back to simple `a > b`/`a < b`.\r\n\t * There have been requests to add custom sorter for cases\r\n\t * like Chinese language and \"pinyin\" (non-default) sorting order.\r\n\t * https://stackoverflow.com/questions/22907288/chinese-sorting-by-pinyin-in-javascript-with-localecompare\r\n\tcompareStrings: PropTypes.func,\r\n\t */\r\n\r\n\t/**\r\n\t * A URL template of a country flag, where\r\n\t * \"{XX}\" is a two-letter country code in upper case,\r\n\t * or where \"{xx}\" is a two-letter country code in lower case.\r\n\t * By default it points to `country-flag-icons` gitlab pages website.\r\n\t * I imagine someone might want to download those country flag icons\r\n\t * and host them on their own servers instead\r\n\t * (all flags are available in the `country-flag-icons` library).\r\n\t * There's a catch though: new countries may be added in future,\r\n\t * so when hosting country flag icons on your own server\r\n\t * one should check the `CHANGELOG.md` every time before updating this library,\r\n\t * otherwise there's a possibility that some new country flag would be missing.\r\n\t */\r\n\tflagUrl: PropTypes.string.isRequired,\r\n\r\n\t/**\r\n\t * Custom country flag icon components.\r\n\t * These flags will be used instead of the default ones.\r\n\t * The the \"Flags\" section of the readme for more info.\r\n\t *\r\n\t * The shape is an object where keys are country codes\r\n\t * and values are flag icon components.\r\n\t * Flag icon components receive the same properties\r\n\t * as `flagComponent` (see below).\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `{ \"RU\": (props) => }`\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `import flags from 'country-flag-icons/react/3x2'`\r\n\t *\r\n\t * `import PhoneInput from 'react-phone-number-input'`\r\n\t *\r\n\t * ``\r\n\t */\r\n\tflags: PropTypes.objectOf(PropTypes.elementType),\r\n\r\n\t/**\r\n\t * Country flag icon component.\r\n\t *\r\n\t * Takes properties:\r\n\t *\r\n\t * * `country: string` — The country code.\r\n\t * * `countryName: string` — The country name.\r\n\t * * `flagUrl: string` — The `flagUrl` property (see above).\r\n\t * * `flags: object` — The `flags` property (see above).\r\n\t */\r\n\tflagComponent: PropTypes.elementType.isRequired,\r\n\r\n\t/**\r\n\t * Set to `false` to remove the \"International\" option from country `` options.\r\n\t *\r\n\t * * `\"XX\"` — inserts an option for \"XX\" country.\r\n\t * * `\"🌐\"` — inserts \"International\" option.\r\n\t * * `\"|\"` — inserts a separator.\r\n\t * * `\"...\"` — inserts options for the rest of the countries (can be omitted, in which case it will be automatically added at the end).\r\n\t *\r\n\t * Example:\r\n\t *\r\n\t * `[\"US\", \"CA\", \"AU\", \"|\", \"...\"]`\r\n\t */\r\n\tcountryOptionsOrder: PropTypes.arrayOf(PropTypes.string),\r\n\r\n\t/**\r\n\t * `` component CSS style object.\r\n\t */\r\n\tstyle: PropTypes.object,\r\n\r\n\t/**\r\n\t * `` component CSS class.\r\n\t */\r\n\tclassName: PropTypes.string,\r\n\r\n\t/**\r\n\t * Country `` component props.\r\n\t * Along with the usual DOM properties such as `aria-label` and `tabIndex`,\r\n\t * some custom properties are supported, such as `arrowComponent` and `unicodeFlags`.\r\n\t */\r\n\tcountrySelectProps: PropTypes.object,\r\n\r\n\t/**\r\n\t * Phone number `` component.\r\n\t *\r\n\t * Receives properties:\r\n\t *\r\n\t * * `value: string` — The formatted `value`.\r\n\t * * `onChange(event: Event)` — Updates the formatted `value` from `event.target.value`.\r\n\t * * `onFocus()` — Is used to toggle the `--focus` CSS class.\r\n\t * * `onBlur()` — Is used to toggle the `--focus` CSS class.\r\n\t * * Other properties like `type=\"tel\"` or `autoComplete=\"tel\"` that should be passed through to the DOM ``.\r\n\t *\r\n\t * Must also either use `React.forwardRef()` to \"forward\" `ref` to the `` or implement `.focus()` method.\r\n\t */\r\n\tinputComponent: PropTypes.elementType.isRequired,\r\n\r\n\t/**\r\n\t * Wrapping `
` component.\r\n\t *\r\n\t * Receives properties:\r\n\t *\r\n\t * * `style: object` — A component CSS style object.\r\n\t * * `className: string` — Classes to attach to the component, typically changes when component focuses or blurs.\r\n\t */\r\n\tcontainerComponent: PropTypes.elementType.isRequired,\r\n\r\n\t/**\r\n\t * Phone number `` component props.\r\n\t */\r\n\tnumberInputProps: PropTypes.object,\r\n\r\n\t/**\r\n\t * When the user attempts to insert a digit somewhere in the middle of a phone number,\r\n\t * the caret position is moved right before the next available digit skipping\r\n\t * any punctuation in between. This is called \"smart\" caret positioning.\r\n\t * Another case would be the phone number format changing as a result of\r\n\t * the user inserting the digit somewhere in the middle, which would require\r\n\t * re-positioning the caret because all digit positions have changed.\r\n\t * This \"smart\" caret positioning feature can be turned off by passing\r\n\t * `smartCaret={false}` property: use it in case of any possible issues\r\n\t * with caret position during phone number input.\r\n\t */\r\n\t// Is `true` by default.\r\n\tsmartCaret: PropTypes.bool.isRequired,\r\n\r\n\t/**\r\n\t * Set to `true` to force \"international\" phone number format.\r\n\t * Set to `false` to force \"national\" phone number format.\r\n\t * By default it's `undefined` meaning that it doesn't enforce any phone number format.\r\n\t */\r\n\tinternational: PropTypes.bool,\r\n\r\n\t/**\r\n\t * If set to `true`, the phone number input will get trimmed\r\n\t * if it exceeds the maximum length for the country.\r\n\t */\r\n\tlimitMaxLength: PropTypes.bool.isRequired,\r\n\r\n\t/**\r\n\t * If set to `false`, and `international` is `true`, then\r\n\t * users won't be able to erase the \"country calling part\"\r\n\t * of a phone number in the ``.\r\n\t */\r\n\tcountryCallingCodeEditable: PropTypes.bool.isRequired,\r\n\r\n\t/**\r\n\t * `libphonenumber-js` metadata.\r\n\t *\r\n\t * Can be used to pass custom `libphonenumber-js` metadata\r\n\t * to reduce the overall bundle size for those who compile \"custom\" metadata.\r\n\t */\r\n\tmetadata: metadataPropType.isRequired,\r\n\r\n\t/**\r\n\t * Is called every time the selected country changes:\r\n\t * either programmatically or when user selects it manually from the list.\r\n\t */\r\n\t// People have been asking for a way to get the selected country.\r\n\t// @see https://github.com/catamphetamine/react-phone-number-input/issues/128\r\n\t// For some it's just a \"business requirement\".\r\n\t// I guess it's about gathering as much info on the user as a website can\r\n\t// without introducing any addional fields that would complicate the form\r\n\t// therefore reducing \"conversion\" (that's a marketing term).\r\n\t// Assuming that the phone number's country is the user's country\r\n\t// is not 100% correct but in most cases I guess it's valid.\r\n\tonCountryChange: PropTypes.func,\r\n\r\n\t/**\r\n\t * If set to `false`, will not focus the `` component\r\n\t * when the user selects a country from the list of countries.\r\n\t * This can be used to conform to the Web Content Accessibility Guidelines (WCAG).\r\n\t * Quote:\r\n\t * \"On input: Changing the setting of any user interface component\r\n\t * does not automatically cause a change of context unless the user\r\n\t * has been advised of the behaviour before using the component.\"\r\n\t */\r\n\tfocusInputOnCountrySelection: PropTypes.bool.isRequired\r\n}\r\n\r\nPhoneNumberInput.defaultProps = {\r\n\t/**\r\n\t * Remember (and autofill) the value as a phone number.\r\n\t */\r\n\tautoComplete: 'tel',\r\n\r\n\t/**\r\n\t * Country `` option icon.\r\n\t */\r\n\tinternationalIcon: InternationalIcon,\r\n\r\n\t/**\r\n\t * Phone number `` component.\r\n\t */\r\n\tinputComponent: 'input',\r\n\r\n\t/**\r\n\t * Wrapping `
` component.\r\n\t */\r\n\tcontainerComponent: 'div',\r\n\r\n\t/**\r\n\t * Some users requested a way to reset the component:\r\n\t * both number `` and country ``\r\n\t * and country ``.\r\n\t * It's also not replaced with just resetting `country` on\r\n\t * external `value` reset, because a user could select a country\r\n\t * and then not input any `value`, and so the selected country\r\n\t * would be \"stuck\", if not using this `reset` property.\r\n\t */\r\n\t// https://github.com/catamphetamine/react-phone-number-input/issues/300\r\n\treset: PropTypes.any,\r\n\r\n\t/**\r\n\t *\r\n\t */\r\n\r\n\t/**\r\n\t * Set to `false` to use \"basic\" caret instead of the \"smart\" one.\r\n\t */\r\n\tsmartCaret: true,\r\n\r\n\t/**\r\n\t * Whether to add the \"International\" option\r\n\t * to the list of countries.\r\n\t */\r\n\taddInternationalOption: true,\r\n\r\n\t/**\r\n\t * If set to `true` the phone number input will get trimmed\r\n\t * if it exceeds the maximum length for the country.\r\n\t */\r\n\tlimitMaxLength: false,\r\n\r\n\t/**\r\n\t * If set to `false`, and `international` is `true`, then\r\n\t * users won't be able to erase the \"country calling part\"\r\n\t * of a phone number in the ``.\r\n\t */\r\n\tcountryCallingCodeEditable: true,\r\n\r\n\t/**\r\n\t * If set to `false`, will not focus the `` component\r\n\t * when the user selects a country from the list of countries.\r\n\t * This can be used to conform to the Web Content Accessibility Guidelines (WCAG).\r\n\t * Quote:\r\n\t * \"On input: Changing the setting of any user interface component\r\n\t * does not automatically cause a change of context unless the user\r\n\t * has been advised of the behaviour before using the component.\"\r\n\t */\r\n\tfocusInputOnCountrySelection: true\r\n}\r\n\r\nexport default PhoneNumberInput\r\n\r\nlet countrySelectOptionsMemo\r\nlet countrySelectOptionsMemoDependencies\r\nfunction useMemoCountrySelectOptions(generator, dependencies) {\r\n\tif (!countrySelectOptionsMemoDependencies ||\r\n\t\t!areEqualArrays(dependencies, countrySelectOptionsMemoDependencies)) {\r\n\t\tcountrySelectOptionsMemo = generator()\r\n\t\tcountrySelectOptionsMemoDependencies = dependencies\r\n\t}\r\n\treturn countrySelectOptionsMemo\r\n}\r\n\r\nfunction areEqualArrays(a, b) {\r\n\tif (a.length !== b.length) {\r\n\t\treturn false\r\n\t}\r\n\tlet i = 0\r\n\twhile (i < a.length) {\r\n\t\tif (a[i] !== b[i]) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn true\r\n}\r\n","import {\r\n\tgetInitialPhoneDigits,\r\n\tgetCountryForPartialE164Number,\r\n\tparsePhoneNumber\r\n} from './phoneInputHelpers'\r\n\r\nimport {\r\n\tisCountrySupportedWithError,\r\n\tgetSupportedCountries\r\n} from './countries'\r\n\r\nexport default function getPhoneInputWithCountryStateUpdateFromNewProps(props, prevProps, state) {\r\n\tconst {\r\n\t\tmetadata,\r\n\t\tcountries,\r\n\t\tdefaultCountry: newDefaultCountry,\r\n\t\tvalue: newValue,\r\n\t\treset: newReset,\r\n\t\tinternational,\r\n\t\t// `displayInitialValueAsLocalNumber` property has been\r\n\t\t// superceded by `initialValueFormat` property.\r\n\t\tdisplayInitialValueAsLocalNumber,\r\n\t\tinitialValueFormat\r\n\t} = props\r\n\r\n\tconst {\r\n\t\tdefaultCountry: prevDefaultCountry,\r\n\t\tvalue: prevValue,\r\n\t\treset: prevReset\r\n\t} = prevProps\r\n\r\n\tconst {\r\n\t\tcountry,\r\n\t\tvalue,\r\n\t\t// If the user has already manually selected a country\r\n\t\t// then don't override that already selected country\r\n\t\t// if the `defaultCountry` property changes.\r\n\t\t// That's what `hasUserSelectedACountry` flag is for.\r\n\t\thasUserSelectedACountry\r\n\t} = state\r\n\r\n\tconst _getInitialPhoneDigits = (parameters) => getInitialPhoneDigits({\r\n\t\t...parameters,\r\n\t\tinternational,\r\n\t\tuseNationalFormat: displayInitialValueAsLocalNumber || initialValueFormat === 'national',\r\n\t\tmetadata\r\n\t})\r\n\r\n\t// Some users requested a way to reset the component\r\n\t// (both number `` and country ``\r\n\t// and country ``.\r\n\t// It's also not replaced with just resetting `country` on\r\n\t// external `value` reset, because a user could select a country\r\n\t// and then not input any `value`, and so the selected country\r\n\t// would be \"stuck\", if not using this `reset` property.\r\n\t// https://github.com/catamphetamine/react-phone-number-input/issues/300\r\n\tif (newReset !== prevReset) {\r\n\t\treturn {\r\n\t\t\tphoneDigits: _getInitialPhoneDigits({\r\n\t\t\t\tvalue: undefined,\r\n\t\t\t\tdefaultCountry: newDefaultCountry\r\n\t\t\t}),\r\n\t\t\tvalue: undefined,\r\n\t\t\tcountry: newDefaultCountry,\r\n\t\t\thasUserSelectedACountry: undefined\r\n\t\t}\r\n\t}\r\n\r\n\t// `value` is the value currently shown in the component:\r\n\t// it's stored in the component's `state`, and it's not the `value` property.\r\n\t// `prevValue` is \"previous `value` property\".\r\n\t// `newValue` is \"new `value` property\".\r\n\r\n\t// If the default country changed\r\n\t// (e.g. in case of ajax GeoIP detection after page loaded)\r\n\t// then select it, but only if the user hasn't already manually\r\n\t// selected a country, and no phone number has been manually entered so far.\r\n\t// Because if the user has already started inputting a phone number\r\n\t// then they're okay with no country being selected at all (\"International\")\r\n\t// and they don't want to be disturbed, don't want their input to be screwed, etc.\r\n\tif (newDefaultCountry !== prevDefaultCountry) {\r\n\t\tconst isNewDefaultCountrySupported = !newDefaultCountry || isCountrySupportedWithError(newDefaultCountry, metadata)\r\n\t\tconst noValueHasBeenEnteredByTheUser = (\r\n\t\t\t// By default, \"no value has been entered\" means `value` is `undefined`.\r\n\t\t\t!value ||\r\n\t\t\t// When `international` is `true`, and some country has been pre-selected,\r\n\t\t\t// then the `` contains a pre-filled value of `+${countryCallingCode}${leadingDigits}`,\r\n\t\t\t// so in case of `international` being `true`, \"the user hasn't entered anything\" situation\r\n\t\t\t// doesn't just mean `value` is `undefined`, but could also mean `value` is `+${countryCallingCode}`.\r\n\t\t\t(international && value === _getInitialPhoneDigits({\r\n\t\t\t\tvalue: undefined,\r\n\t\t\t\tdefaultCountry: prevDefaultCountry\r\n\t\t\t}))\r\n\t\t)\r\n\t\t// Only update the `defaultCountry` property if no phone number\r\n\t\t// has been entered by the user or pre-set by the application.\r\n\t\tconst noValueHasBeenEntered = !newValue && noValueHasBeenEnteredByTheUser\r\n\t\tif (!hasUserSelectedACountry && isNewDefaultCountrySupported && noValueHasBeenEntered) {\r\n\t\t\treturn {\r\n\t\t\t\tcountry: newDefaultCountry,\r\n\t\t\t\t// If `phoneDigits` is empty, then automatically select the new `country`\r\n\t\t\t\t// and set `phoneDigits` to `+{getCountryCallingCode(newCountry)}`.\r\n\t\t\t\t// The code assumes that \"no phone number has been entered by the user\",\r\n\t\t\t\t// and no `value` property has been passed, so the `phoneNumber` parameter\r\n\t\t\t\t// of `_getInitialPhoneDigits({ value, phoneNumber, ... })` is `undefined`.\r\n\t\t\t\tphoneDigits: _getInitialPhoneDigits({\r\n\t\t\t\t\tvalue: undefined,\r\n\t\t\t\t\tdefaultCountry: newDefaultCountry\r\n\t\t\t\t}),\r\n\t\t\t\t// `value` is `undefined` and it stays so.\r\n\t\t\t\tvalue: undefined\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// If a new `value` is set externally.\r\n\t// (e.g. as a result of an ajax API request\r\n\t// to get user's phone after page loaded)\r\n\t// The first part — `newValue !== prevValue` —\r\n\t// is basically `props.value !== prevProps.value`\r\n\t// so it means \"if value property was changed externally\".\r\n\t// The second part — `newValue !== value` —\r\n\t// is for ignoring the `getDerivedStateFromProps()` call\r\n\t// which happens in `this.onChange()` right after `this.setState()`.\r\n\t// If this `getDerivedStateFromProps()` call isn't ignored\r\n\t// then the country flag would reset on each input.\r\n\tif (newValue !== prevValue && newValue !== value) {\r\n\t\tlet phoneNumber\r\n\t\tlet parsedCountry\r\n\t\tif (newValue) {\r\n\t\t\tphoneNumber = parsePhoneNumber(newValue, metadata)\r\n\t\t\tconst supportedCountries = getSupportedCountries(countries, metadata)\r\n\t\t\tif (phoneNumber && phoneNumber.country) {\r\n\t\t\t\t// Ignore `else` because all countries are supported in metadata.\r\n\t\t\t\t/* istanbul ignore next */\r\n\t\t\t\tif (!supportedCountries || supportedCountries.indexOf(phoneNumber.country) >= 0) {\r\n\t\t\t\t\tparsedCountry = phoneNumber.country\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tparsedCountry = getCountryForPartialE164Number(newValue, {\r\n\t\t\t\t\tcountry: undefined,\r\n\t\t\t\t\tcountries: supportedCountries,\r\n\t\t\t\t\tmetadata\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t\tlet hasUserSelectedACountryUpdate\r\n\t\tif (!newValue) {\r\n\t\t\t// Reset `hasUserSelectedACountry` flag in `state`.\r\n\t\t\thasUserSelectedACountryUpdate = {\r\n\t\t\t\thasUserSelectedACountry: undefined\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {\r\n\t\t\t...hasUserSelectedACountryUpdate,\r\n\t\t\tphoneDigits: _getInitialPhoneDigits({\r\n\t\t\t\tphoneNumber,\r\n\t\t\t\tvalue: newValue,\r\n\t\t\t\tdefaultCountry: newDefaultCountry\r\n\t\t\t}),\r\n\t\t\tvalue: newValue,\r\n\t\t\tcountry: newValue ? parsedCountry : newDefaultCountry\r\n\t\t}\r\n\t}\r\n\r\n\t// `defaultCountry` didn't change.\r\n\t// `value` didn't change.\r\n\t// `phoneDigits` didn't change, because `value` didn't change.\r\n\t//\r\n\t// So no need to update state.\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport labels from '../locale/en.json'\r\n\r\nimport {\r\n\tmetadata as metadataPropType,\r\n\tlabels as labelsPropType\r\n} from './PropTypes'\r\n\r\nimport PhoneInput from './PhoneInputWithCountry'\r\n\r\nexport function createPhoneInput(defaultMetadata) {\r\n\tconst PhoneInputDefault = React.forwardRef((props, ref) => (\r\n\t\t\r\n\t))\r\n\r\n\tPhoneInputDefault.propTypes = {\r\n\t\tmetadata: metadataPropType.isRequired,\r\n\t\tlabels: labelsPropType.isRequired\r\n\t}\r\n\r\n\tPhoneInputDefault.defaultProps = {\r\n\t\tmetadata: defaultMetadata,\r\n\t\tlabels\r\n\t}\r\n\r\n\treturn PhoneInputDefault\r\n}\r\n\r\nexport default createPhoneInput()","import metadata from 'libphonenumber-js/metadata.min.json'\r\n\r\nimport {\r\n\tparsePhoneNumber as _parsePhoneNumber,\r\n\tformatPhoneNumber as _formatPhoneNumber,\r\n\tformatPhoneNumberIntl as _formatPhoneNumberIntl,\r\n\tisValidPhoneNumber as _isValidPhoneNumber,\r\n\tisPossiblePhoneNumber as _isPossiblePhoneNumber,\r\n\tgetCountries as _getCountries,\r\n\tgetCountryCallingCode as _getCountryCallingCode,\r\n\tisSupportedCountry as _isSupportedCountry\r\n} from '../core/index'\r\n\r\nimport { createPhoneInput } from '../modules/PhoneInputWithCountryDefault'\r\n\r\nfunction call(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}\r\n\r\nexport default createPhoneInput(metadata)\r\n\r\nexport function parsePhoneNumber() {\r\n\treturn call(_parsePhoneNumber, arguments)\r\n}\r\n\r\nexport function formatPhoneNumber() {\r\n\treturn call(_formatPhoneNumber, arguments)\r\n}\r\n\r\nexport function formatPhoneNumberIntl() {\r\n\treturn call(_formatPhoneNumberIntl, arguments)\r\n}\r\n\r\nexport function isValidPhoneNumber() {\r\n\treturn call(_isValidPhoneNumber, arguments)\r\n}\r\n\r\nexport function isPossiblePhoneNumber() {\r\n\treturn call(_isPossiblePhoneNumber, arguments)\r\n}\r\n\r\nexport function getCountries() {\r\n\treturn call(_getCountries, arguments)\r\n}\r\n\r\nexport function getCountryCallingCode() {\r\n\treturn call(_getCountryCallingCode, arguments)\r\n}\r\n\r\nexport function isSupportedCountry() {\r\n\treturn call(_isSupportedCountry, arguments)\r\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { jsx, keyframes, css as css$2, ClassNames } from '@emotion/react';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _defineProperty$1 from '@babel/runtime/helpers/esm/defineProperty';\nimport { Component, createContext } from 'react';\nimport { createPortal } from 'react-dom';\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\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 _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 _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\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 }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nvar _excluded$3 = [\"className\", \"clearValue\", \"cx\", \"getStyles\", \"getValue\", \"hasValue\", \"isMulti\", \"isRtl\", \"options\", \"selectOption\", \"selectProps\", \"setValue\", \"theme\"];\n// ==============================\n// NO OP\n// ==============================\nvar noop = function noop() {};\n// Class Name Prefixer\n// ==============================\n\n/**\n String representation of component state for styling with class names.\n\n Expects an array of strings OR a string/object pair:\n - className(['comp', 'comp-arg', 'comp-arg-2'])\n @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'\n - className('comp', { some: true, state: false })\n @returns 'react-select__comp react-select__comp--some'\n*/\n\nfunction applyPrefixToName(prefix, name) {\n if (!name) {\n return prefix;\n } else if (name[0] === '-') {\n return prefix + name;\n } else {\n return prefix + '__' + name;\n }\n}\n\nfunction classNames(prefix, state, className) {\n var arr = [className];\n\n if (state && prefix) {\n for (var key in state) {\n if (state.hasOwnProperty(key) && state[key]) {\n arr.push(\"\".concat(applyPrefixToName(prefix, key)));\n }\n }\n }\n\n return arr.filter(function (i) {\n return i;\n }).map(function (i) {\n return String(i).trim();\n }).join(' ');\n} // ==============================\n// Clean Value\n// ==============================\n\nvar cleanValue = function cleanValue(value) {\n if (isArray(value)) return value.filter(Boolean);\n if (_typeof(value) === 'object' && value !== null) return [value];\n return [];\n}; // ==============================\n// Clean Common Props\n// ==============================\n\nvar cleanCommonProps = function cleanCommonProps(props) {\n //className\n props.className;\n props.clearValue;\n props.cx;\n props.getStyles;\n props.getValue;\n props.hasValue;\n props.isMulti;\n props.isRtl;\n props.options;\n props.selectOption;\n props.selectProps;\n props.setValue;\n props.theme;\n var innerProps = _objectWithoutProperties(props, _excluded$3);\n\n return _objectSpread2({}, innerProps);\n}; // ==============================\n// Handle Input Change\n// ==============================\n\nfunction handleInputChange(inputValue, actionMeta, onInputChange) {\n if (onInputChange) {\n var _newValue = onInputChange(inputValue, actionMeta);\n\n if (typeof _newValue === 'string') return _newValue;\n }\n\n return inputValue;\n} // ==============================\n// Scroll Helpers\n// ==============================\n\nfunction isDocumentElement(el) {\n return [document.documentElement, document.body, window].indexOf(el) > -1;\n} // Normalized Scroll Top\n// ------------------------------\n\nfunction getScrollTop(el) {\n if (isDocumentElement(el)) {\n return window.pageYOffset;\n }\n\n return el.scrollTop;\n}\nfunction scrollTo(el, top) {\n // with a scroll distance, we perform scroll on the element\n if (isDocumentElement(el)) {\n window.scrollTo(0, top);\n return;\n }\n\n el.scrollTop = top;\n} // Get Scroll Parent\n// ------------------------------\n\nfunction getScrollParent(element) {\n var style = getComputedStyle(element);\n var excludeStaticParent = style.position === 'absolute';\n var overflowRx = /(auto|scroll)/;\n if (style.position === 'fixed') return document.documentElement;\n\n for (var parent = element; parent = parent.parentElement;) {\n style = getComputedStyle(parent);\n\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n\n if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent;\n }\n }\n\n return document.documentElement;\n} // Animated Scroll To\n// ------------------------------\n\n/**\n @param t: time (elapsed)\n @param b: initial value\n @param c: amount of change\n @param d: duration\n*/\n\nfunction easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n}\n\nfunction animatedScrollTo(element, to) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;\n var start = getScrollTop(element);\n var change = to - start;\n var increment = 10;\n var currentTime = 0;\n\n function animateScroll() {\n currentTime += increment;\n var val = easeOutCubic(currentTime, start, change, duration);\n scrollTo(element, val);\n\n if (currentTime < duration) {\n window.requestAnimationFrame(animateScroll);\n } else {\n callback(element);\n }\n }\n\n animateScroll();\n} // Scroll Into View\n// ------------------------------\n\nfunction scrollIntoView(menuEl, focusedEl) {\n var menuRect = menuEl.getBoundingClientRect();\n var focusedRect = focusedEl.getBoundingClientRect();\n var overScroll = focusedEl.offsetHeight / 3;\n\n if (focusedRect.bottom + overScroll > menuRect.bottom) {\n scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));\n } else if (focusedRect.top - overScroll < menuRect.top) {\n scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));\n }\n} // ==============================\n// Get bounding client object\n// ==============================\n// cannot get keys using array notation with DOMRect\n\nfunction getBoundingClientObj(element) {\n var rect = element.getBoundingClientRect();\n return {\n bottom: rect.bottom,\n height: rect.height,\n left: rect.left,\n right: rect.right,\n top: rect.top,\n width: rect.width\n };\n}\n// Touch Capability Detector\n// ==============================\n\nfunction isTouchCapable() {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n} // ==============================\n// Mobile Device Detector\n// ==============================\n\nfunction isMobileDevice() {\n try {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n } catch (e) {\n return false;\n }\n} // ==============================\n// Passive Event Detector\n// ==============================\n// https://github.com/rafgraph/detect-it/blob/main/src/index.ts#L19-L36\n\nvar passiveOptionAccessed = false;\nvar options = {\n get passive() {\n return passiveOptionAccessed = true;\n }\n\n}; // check for SSR\n\nvar w = typeof window !== 'undefined' ? window : {};\n\nif (w.addEventListener && w.removeEventListener) {\n w.addEventListener('p', noop, options);\n w.removeEventListener('p', noop, false);\n}\n\nvar supportsPassiveEvents = passiveOptionAccessed;\nfunction notNullish(item) {\n return item != null;\n}\nfunction isArray(arg) {\n return Array.isArray(arg);\n}\nfunction valueTernary(isMulti, multiValue, singleValue) {\n return isMulti ? multiValue : singleValue;\n}\nfunction singleValueAsValue(singleValue) {\n return singleValue;\n}\nfunction multiValueAsValue(multiValue) {\n return multiValue;\n}\nvar removeProps = function removeProps(propsObj) {\n for (var _len = arguments.length, properties = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n properties[_key - 1] = arguments[_key];\n }\n\n var propsMap = Object.entries(propsObj).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n\n return !properties.includes(key);\n });\n return propsMap.reduce(function (newProps, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n val = _ref4[1];\n\n newProps[key] = val;\n return newProps;\n }, {});\n};\n\nfunction getMenuPlacement(_ref) {\n var maxHeight = _ref.maxHeight,\n menuEl = _ref.menuEl,\n minHeight = _ref.minHeight,\n placement = _ref.placement,\n shouldScroll = _ref.shouldScroll,\n isFixedPosition = _ref.isFixedPosition,\n theme = _ref.theme;\n var spacing = theme.spacing;\n var scrollParent = getScrollParent(menuEl);\n var defaultState = {\n placement: 'bottom',\n maxHeight: maxHeight\n }; // something went wrong, return default state\n\n if (!menuEl || !menuEl.offsetParent) return defaultState; // we can't trust `scrollParent.scrollHeight` --> it may increase when\n // the menu is rendered\n\n var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n scrollHeight = _scrollParent$getBoun.height;\n\n var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n menuBottom = _menuEl$getBoundingCl.bottom,\n menuHeight = _menuEl$getBoundingCl.height,\n menuTop = _menuEl$getBoundingCl.top;\n\n var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n containerTop = _menuEl$offsetParent$.top;\n\n var viewHeight = window.innerHeight;\n var scrollTop = getScrollTop(scrollParent);\n var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n var viewSpaceAbove = containerTop - marginTop;\n var viewSpaceBelow = viewHeight - menuTop;\n var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n var scrollUp = scrollTop + menuTop - marginTop;\n var scrollDuration = 160;\n\n switch (placement) {\n case 'auto':\n case 'bottom':\n // 1: the menu will fit, do nothing\n if (viewSpaceBelow >= menuHeight) {\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n } // 2: the menu will fit, if scrolled\n\n\n if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n } // 3: the menu will fit, if constrained\n\n\n if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n } // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n\n\n var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n return {\n placement: 'bottom',\n maxHeight: constrainedHeight\n };\n } // 4. Forked beviour when there isn't enough space below\n // AUTO: flip the menu, render above\n\n\n if (placement === 'auto' || isFixedPosition) {\n // may need to be constrained after flipping\n var _constrainedHeight = maxHeight;\n var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;\n\n if (spaceAbove >= minHeight) {\n _constrainedHeight = Math.min(spaceAbove - marginBottom - spacing.controlHeight, maxHeight);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight\n };\n } // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n\n\n if (placement === 'bottom') {\n if (shouldScroll) {\n scrollTo(scrollParent, scrollDown);\n }\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n }\n\n break;\n\n case 'top':\n // 1: the menu will fit, do nothing\n if (viewSpaceAbove >= menuHeight) {\n return {\n placement: 'top',\n maxHeight: maxHeight\n };\n } // 2: the menu will fit, if scrolled\n\n\n if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: maxHeight\n };\n } // 3: the menu will fit, if constrained\n\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n var _constrainedHeight2 = maxHeight; // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n }\n\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight2\n };\n } // 4. not enough space, the browser WILL NOT increase scrollable area when\n // absolutely positioned element rendered above the viewport (only below).\n // Flip the menu, render below\n\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n\n default:\n throw new Error(\"Invalid placement provided \\\"\".concat(placement, \"\\\".\"));\n }\n\n return defaultState;\n} // Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n var placementToCSSProp = {\n bottom: 'top',\n top: 'bottom'\n };\n return placement ? placementToCSSProp[placement] : 'bottom';\n}\n\nvar coercePlacement = function coercePlacement(p) {\n return p === 'auto' ? 'bottom' : p;\n};\n\nvar menuCSS = function menuCSS(_ref2) {\n var _ref3;\n\n var placement = _ref2.placement,\n _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n spacing = _ref2$theme.spacing,\n colors = _ref2$theme.colors;\n return _ref3 = {\n label: 'menu'\n }, _defineProperty$1(_ref3, alignToControl(placement), '100%'), _defineProperty$1(_ref3, \"backgroundColor\", colors.neutral0), _defineProperty$1(_ref3, \"borderRadius\", borderRadius), _defineProperty$1(_ref3, \"boxShadow\", '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)'), _defineProperty$1(_ref3, \"marginBottom\", spacing.menuGutter), _defineProperty$1(_ref3, \"marginTop\", spacing.menuGutter), _defineProperty$1(_ref3, \"position\", 'absolute'), _defineProperty$1(_ref3, \"width\", '100%'), _defineProperty$1(_ref3, \"zIndex\", 1), _ref3;\n};\nvar PortalPlacementContext = /*#__PURE__*/createContext({\n getPortalPlacement: null\n}); // NOTE: internal only\n\nvar MenuPlacer = /*#__PURE__*/function (_Component) {\n _inherits(MenuPlacer, _Component);\n\n var _super = _createSuper(MenuPlacer);\n\n function MenuPlacer() {\n var _this;\n\n _classCallCheck(this, MenuPlacer);\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 _this.state = {\n maxHeight: _this.props.maxMenuHeight,\n placement: null\n };\n _this.context = void 0;\n\n _this.getPlacement = function (ref) {\n var _this$props = _this.props,\n minMenuHeight = _this$props.minMenuHeight,\n maxMenuHeight = _this$props.maxMenuHeight,\n menuPlacement = _this$props.menuPlacement,\n menuPosition = _this$props.menuPosition,\n menuShouldScrollIntoView = _this$props.menuShouldScrollIntoView,\n theme = _this$props.theme;\n if (!ref) return; // DO NOT scroll if position is fixed\n\n var isFixedPosition = menuPosition === 'fixed';\n var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n var state = getMenuPlacement({\n maxHeight: maxMenuHeight,\n menuEl: ref,\n minHeight: minMenuHeight,\n placement: menuPlacement,\n shouldScroll: shouldScroll,\n isFixedPosition: isFixedPosition,\n theme: theme\n });\n var getPortalPlacement = _this.context.getPortalPlacement;\n if (getPortalPlacement) getPortalPlacement(state);\n\n _this.setState(state);\n };\n\n _this.getUpdatedProps = function () {\n var menuPlacement = _this.props.menuPlacement;\n var placement = _this.state.placement || coercePlacement(menuPlacement);\n return _objectSpread2(_objectSpread2({}, _this.props), {}, {\n placement: placement,\n maxHeight: _this.state.maxHeight\n });\n };\n\n return _this;\n }\n\n _createClass(MenuPlacer, [{\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n return children({\n ref: this.getPlacement,\n placerProps: this.getUpdatedProps()\n });\n }\n }]);\n\n return MenuPlacer;\n}(Component);\nMenuPlacer.contextType = PortalPlacementContext;\n\nvar Menu = function Menu(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('menu', props),\n className: cx({\n menu: true\n }, className),\n ref: innerRef\n }, innerProps), children);\n};\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref4) {\n var maxHeight = _ref4.maxHeight,\n baseUnit = _ref4.theme.spacing.baseUnit;\n return {\n maxHeight: maxHeight,\n overflowY: 'auto',\n paddingBottom: baseUnit,\n paddingTop: baseUnit,\n position: 'relative',\n // required for offset[Height, Top] > keyboard scroll\n WebkitOverflowScrolling: 'touch'\n };\n};\nvar MenuList = function MenuList(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n innerRef = props.innerRef,\n isMulti = props.isMulti;\n return jsx(\"div\", _extends({\n css: getStyles('menuList', props),\n className: cx({\n 'menu-list': true,\n 'menu-list--is-multi': isMulti\n }, className),\n ref: innerRef\n }, innerProps), children);\n}; // ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref5) {\n var _ref5$theme = _ref5.theme,\n baseUnit = _ref5$theme.spacing.baseUnit,\n colors = _ref5$theme.colors;\n return {\n color: colors.neutral40,\n padding: \"\".concat(baseUnit * 2, \"px \").concat(baseUnit * 3, \"px\"),\n textAlign: 'center'\n };\n};\n\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\nvar NoOptionsMessage = function NoOptionsMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('noOptionsMessage', props),\n className: cx({\n 'menu-notice': true,\n 'menu-notice--no-options': true\n }, className)\n }, innerProps), children);\n};\nNoOptionsMessage.defaultProps = {\n children: 'No options'\n};\nvar LoadingMessage = function LoadingMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('loadingMessage', props),\n className: cx({\n 'menu-notice': true,\n 'menu-notice--loading': true\n }, className)\n }, innerProps), children);\n};\nLoadingMessage.defaultProps = {\n children: 'Loading...'\n}; // ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref6) {\n var rect = _ref6.rect,\n offset = _ref6.offset,\n position = _ref6.position;\n return {\n left: rect.left,\n position: position,\n top: offset,\n width: rect.width,\n zIndex: 1\n };\n};\nvar MenuPortal = /*#__PURE__*/function (_Component2) {\n _inherits(MenuPortal, _Component2);\n\n var _super2 = _createSuper(MenuPortal);\n\n function MenuPortal() {\n var _this2;\n\n _classCallCheck(this, MenuPortal);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _this2.state = {\n placement: null\n };\n\n _this2.getPortalPlacement = function (_ref7) {\n var placement = _ref7.placement;\n var initialPlacement = coercePlacement(_this2.props.menuPlacement); // avoid re-renders if the placement has not changed\n\n if (placement !== initialPlacement) {\n _this2.setState({\n placement: placement\n });\n }\n };\n\n return _this2;\n }\n\n _createClass(MenuPortal, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n appendTo = _this$props2.appendTo,\n children = _this$props2.children,\n className = _this$props2.className,\n controlElement = _this$props2.controlElement,\n cx = _this$props2.cx,\n innerProps = _this$props2.innerProps,\n menuPlacement = _this$props2.menuPlacement,\n position = _this$props2.menuPosition,\n getStyles = _this$props2.getStyles;\n var isFixed = position === 'fixed'; // bail early if required elements aren't present\n\n if (!appendTo && !isFixed || !controlElement) {\n return null;\n }\n\n var placement = this.state.placement || coercePlacement(menuPlacement);\n var rect = getBoundingClientObj(controlElement);\n var scrollDistance = isFixed ? 0 : window.pageYOffset;\n var offset = rect[placement] + scrollDistance;\n var state = {\n offset: offset,\n position: position,\n rect: rect\n }; // same wrapper element whether fixed or portalled\n\n var menuWrapper = jsx(\"div\", _extends({\n css: getStyles('menuPortal', state),\n className: cx({\n 'menu-portal': true\n }, className)\n }, innerProps), children);\n return jsx(PortalPlacementContext.Provider, {\n value: {\n getPortalPlacement: this.getPortalPlacement\n }\n }, appendTo ? /*#__PURE__*/createPortal(menuWrapper, appendTo) : menuWrapper);\n }\n }]);\n\n return MenuPortal;\n}(Component);\n\nvar containerCSS = function containerCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isRtl = _ref.isRtl;\n return {\n label: 'container',\n direction: isRtl ? 'rtl' : undefined,\n pointerEvents: isDisabled ? 'none' : undefined,\n // cancel mouse events when disabled\n position: 'relative'\n };\n};\nvar SelectContainer = function SelectContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends({\n css: getStyles('container', props),\n className: cx({\n '--is-disabled': isDisabled,\n '--is-rtl': isRtl\n }, className)\n }, innerProps), children);\n}; // ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2) {\n var spacing = _ref2.theme.spacing,\n isMulti = _ref2.isMulti,\n hasValue = _ref2.hasValue,\n controlShouldRenderValue = _ref2.selectProps.controlShouldRenderValue;\n return {\n alignItems: 'center',\n display: isMulti && hasValue && controlShouldRenderValue ? 'flex' : 'grid',\n flex: 1,\n flexWrap: 'wrap',\n padding: \"\".concat(spacing.baseUnit / 2, \"px \").concat(spacing.baseUnit * 2, \"px\"),\n WebkitOverflowScrolling: 'touch',\n position: 'relative',\n overflow: 'hidden'\n };\n};\nvar ValueContainer = function ValueContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n innerProps = props.innerProps,\n isMulti = props.isMulti,\n getStyles = props.getStyles,\n hasValue = props.hasValue;\n return jsx(\"div\", _extends({\n css: getStyles('valueContainer', props),\n className: cx({\n 'value-container': true,\n 'value-container--is-multi': isMulti,\n 'value-container--has-value': hasValue\n }, className)\n }, innerProps), children);\n}; // ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n return {\n alignItems: 'center',\n alignSelf: 'stretch',\n display: 'flex',\n flexShrink: 0\n };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n innerProps = props.innerProps,\n getStyles = props.getStyles;\n return jsx(\"div\", _extends({\n css: getStyles('indicatorsContainer', props),\n className: cx({\n indicators: true\n }, className)\n }, innerProps), children);\n};\n\nvar _templateObject;\n\nvar _excluded$2 = [\"size\"];\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"8mmkcg\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0\"\n} : {\n name: \"tj5bde-Svg\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;label:Svg;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdCSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4LCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7XG4gIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lLFxuICBDU1NPYmplY3RXaXRoTGFiZWwsXG4gIEdyb3VwQmFzZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERyb3Bkb3duICYgQ2xlYXIgSWNvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5jb25zdCBTdmcgPSAoe1xuICBzaXplLFxuICAuLi5wcm9wc1xufTogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZTogbnVtYmVyIH0pID0+IChcbiAgPHN2Z1xuICAgIGhlaWdodD17c2l6ZX1cbiAgICB3aWR0aD17c2l6ZX1cbiAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICBjc3M9e3tcbiAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgZmlsbDogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBsaW5lSGVpZ2h0OiAxLFxuICAgICAgc3Ryb2tlOiAnY3VycmVudENvbG9yJyxcbiAgICAgIHN0cm9rZVdpZHRoOiAwLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IHR5cGUgQ3Jvc3NJY29uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgQ3Jvc3NJY29uID0gKHByb3BzOiBDcm9zc0ljb25Qcm9wcykgPT4gKFxuICA8U3ZnIHNpemU9ezIwfSB7Li4ucHJvcHN9PlxuICAgIDxwYXRoIGQ9XCJNMTQuMzQ4IDE0Ljg0OWMtMC40NjkgMC40NjktMS4yMjkgMC40NjktMS42OTcgMGwtMi42NTEtMy4wMzAtMi42NTEgMy4wMjljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDAtMC40NjktMC40NjktMC40NjktMS4yMjkgMC0xLjY5N2wyLjc1OC0zLjE1LTIuNzU5LTMuMTUyYy0wLjQ2OS0wLjQ2OS0wLjQ2OS0xLjIyOCAwLTEuNjk3czEuMjI4LTAuNDY5IDEuNjk3IDBsMi42NTIgMy4wMzEgMi42NTEtMy4wMzFjMC40NjktMC40NjkgMS4yMjgtMC40NjkgMS42OTcgMHMwLjQ2OSAxLjIyOSAwIDEuNjk3bC0yLjc1OCAzLjE1MiAyLjc1OCAzLjE1YzAuNDY5IDAuNDY5IDAuNDY5IDEuMjI5IDAgMS42OTh6XCIgLz5cbiAgPC9Tdmc+XG4pO1xuZXhwb3J0IHR5cGUgRG93bkNoZXZyb25Qcm9wcyA9IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU/OiBudW1iZXIgfTtcbmV4cG9ydCBjb25zdCBEb3duQ2hldnJvbiA9IChwcm9wczogRG93bkNoZXZyb25Qcm9wcykgPT4gKFxuICA8U3ZnIHNpemU9ezIwfSB7Li4ucHJvcHN9PlxuICAgIDxwYXRoIGQ9XCJNNC41MTYgNy41NDhjMC40MzYtMC40NDYgMS4wNDMtMC40ODEgMS41NzYgMGwzLjkwOCAzLjc0NyAzLjkwOC0zLjc0N2MwLjUzMy0wLjQ4MSAxLjE0MS0wLjQ0NiAxLjU3NCAwIDAuNDM2IDAuNDQ1IDAuNDA4IDEuMTk3IDAgMS42MTUtMC40MDYgMC40MTgtNC42OTUgNC41MDItNC42OTUgNC41MDItMC4yMTcgMC4yMjMtMC41MDIgMC4zMzUtMC43ODcgMC4zMzVzLTAuNTctMC4xMTItMC43ODktMC4zMzVjMCAwLTQuMjg3LTQuMDg0LTQuNjk1LTQuNTAycy0wLjQzNi0xLjE3IDAtMS42MTV6XCIgLz5cbiAgPC9Tdmc+XG4pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERyb3Bkb3duICYgQ2xlYXIgQnV0dG9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25JbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBUaGUgY2hpbGRyZW4gdG8gYmUgcmVuZGVyZWQgaW5zaWRlIHRoZSBpbmRpY2F0b3IuICovXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICAvKiogUHJvcHMgdGhhdCB3aWxsIGJlIHBhc3NlZCBvbiB0byB0aGUgY2hpbGRyZW4uICovXG4gIGlubmVyUHJvcHM6IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snZGl2J107XG4gIC8qKiBUaGUgZm9jdXNlZCBzdGF0ZSBvZiB0aGUgc2VsZWN0LiAqL1xuICBpc0ZvY3VzZWQ6IGJvb2xlYW47XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG59XG5cbmNvbnN0IGJhc2VDU1MgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oe1xuICBpc0ZvY3VzZWQsXG4gIHRoZW1lOiB7XG4gICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgIGNvbG9ycyxcbiAgfSxcbn06XG4gIHwgRHJvcGRvd25JbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPlxuICB8IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw2MCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuXG4gICc6aG92ZXInOiB7XG4gICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwLFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBkcm9wZG93bkluZGljYXRvckNTUyA9IGJhc2VDU1M7XG5leHBvcnQgY29uc3QgRHJvcGRvd25JbmRpY2F0b3IgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oXG4gIHByb3BzOiBEcm9wZG93bkluZGljYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+XG4pID0+IHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBjeCwgZ2V0U3R5bGVzLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2dldFN0eWxlcygnZHJvcGRvd25JbmRpY2F0b3InLCBwcm9wcyl9XG4gICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDbGVhckluZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Z2V0U3R5bGVzKCdjbGVhckluZGljYXRvcicsIHByb3BzKX1cbiAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgIHtcbiAgICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICAgJ2NsZWFyLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8Q3Jvc3NJY29uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTZXBhcmF0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZGljYXRvclNlcGFyYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpbm5lclByb3BzPzogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzcGFuJ107XG59XG5cbmV4cG9ydCBjb25zdCBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oe1xuICBpc0Rpc2FibGVkLFxuICB0aGVtZToge1xuICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICBjb2xvcnMsXG4gIH0sXG59OiBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPik6IENTU09iamVjdFdpdGhMYWJlbCA9PiAoe1xuICBsYWJlbDogJ2luZGljYXRvclNlcGFyYXRvcicsXG4gIGFsaWduU2VsZjogJ3N0cmV0Y2gnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgbWFyZ2luQm90dG9tOiBiYXNlVW5pdCAqIDIsXG4gIG1hcmdpblRvcDogYmFzZVVuaXQgKiAyLFxuICB3aWR0aDogMSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcyB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2luZGljYXRvclNlcGFyYXRvcicsIHByb3BzKX1cbiAgICAgIGNsYXNzTmFtZT17Y3goeyAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUgfSwgY2xhc3NOYW1lKX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KHtcbiAgaXNGb2N1c2VkLFxuICBzaXplLFxuICB0aGVtZToge1xuICAgIGNvbG9ycyxcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gIH0sXG59OiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcbiAgYWxpZ25TZWxmOiAnY2VudGVyJyxcbiAgZm9udFNpemU6IHNpemUsXG4gIGxpbmVIZWlnaHQ6IDEsXG4gIG1hcmdpblJpZ2h0OiBzaXplLFxuICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcbn0pO1xuXG5pbnRlcmZhY2UgTG9hZGluZ0RvdFByb3BzIHtcbiAgZGVsYXk6IG51bWJlcjtcbiAgb2Zmc2V0OiBib29sZWFuO1xufVxuY29uc3QgTG9hZGluZ0RvdCA9ICh7IGRlbGF5LCBvZmZzZXQgfTogTG9hZGluZ0RvdFByb3BzKSA9PiAoXG4gIDxzcGFuXG4gICAgY3NzPXt7XG4gICAgICBhbmltYXRpb246IGAke2xvYWRpbmdEb3RBbmltYXRpb25zfSAxcyBlYXNlLWluLW91dCAke2RlbGF5fW1zIGluZmluaXRlO2AsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdjdXJyZW50Q29sb3InLFxuICAgICAgYm9yZGVyUmFkaXVzOiAnMWVtJyxcbiAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgbWFyZ2luTGVmdDogb2Zmc2V0ID8gJzFlbScgOiB1bmRlZmluZWQsXG4gICAgICBoZWlnaHQ6ICcxZW0nLFxuICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gICAgICB3aWR0aDogJzFlbScsXG4gICAgfX1cbiAgLz5cbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZGluZ0luZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xuICAvKiogU2V0IHNpemUgb2YgdGhlIGNvbnRhaW5lci4gKi9cbiAgc2l6ZTogbnVtYmVyO1xufVxuZXhwb3J0IGNvbnN0IExvYWRpbmdJbmRpY2F0b3IgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oXG4gIHByb3BzOiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcywgaXNSdGwgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2xvYWRpbmdJbmRpY2F0b3InLCBwcm9wcyl9XG4gICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgID5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXswfSBvZmZzZXQ9e2lzUnRsfSAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezE2MH0gb2Zmc2V0IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MzIwfSBvZmZzZXQ9eyFpc1J0bH0gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Mb2FkaW5nSW5kaWNhdG9yLmRlZmF1bHRQcm9wcyA9IHsgc2l6ZTogNCB9O1xuIl19 */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\nvar Svg = function Svg(_ref) {\n var size = _ref.size,\n props = _objectWithoutProperties(_ref, _excluded$2);\n\n return jsx(\"svg\", _extends({\n height: size,\n width: size,\n viewBox: \"0 0 20 20\",\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n css: _ref2\n }, props));\n};\n\nvar CrossIcon = function CrossIcon(props) {\n return jsx(Svg, _extends({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z\"\n }));\n};\nvar DownChevron = function DownChevron(props) {\n return jsx(Svg, _extends({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z\"\n }));\n}; // ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref3) {\n var isFocused = _ref3.isFocused,\n _ref3$theme = _ref3.theme,\n baseUnit = _ref3$theme.spacing.baseUnit,\n colors = _ref3$theme.colors;\n return {\n label: 'indicatorContainer',\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n ':hover': {\n color: isFocused ? colors.neutral80 : colors.neutral40\n }\n };\n};\n\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('dropdownIndicator', props),\n className: cx({\n indicator: true,\n 'dropdown-indicator': true\n }, className)\n }, innerProps), children || jsx(DownChevron, null));\n};\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('clearIndicator', props),\n className: cx({\n indicator: true,\n 'clear-indicator': true\n }, className)\n }, innerProps), children || jsx(CrossIcon, null));\n}; // ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref4) {\n var isDisabled = _ref4.isDisabled,\n _ref4$theme = _ref4.theme,\n baseUnit = _ref4$theme.spacing.baseUnit,\n colors = _ref4$theme.colors;\n return {\n label: 'indicatorSeparator',\n alignSelf: 'stretch',\n backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n marginBottom: baseUnit * 2,\n marginTop: baseUnit * 2,\n width: 1\n };\n};\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"span\", _extends({}, innerProps, {\n css: getStyles('indicatorSeparator', props),\n className: cx({\n 'indicator-separator': true\n }, className)\n }));\n}; // ==============================\n// Loading\n// ==============================\n\nvar loadingDotAnimations = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n 0%, 80%, 100% { opacity: 0; }\\n 40% { opacity: 1; }\\n\"])));\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref5) {\n var isFocused = _ref5.isFocused,\n size = _ref5.size,\n _ref5$theme = _ref5.theme,\n colors = _ref5$theme.colors,\n baseUnit = _ref5$theme.spacing.baseUnit;\n return {\n label: 'loadingIndicator',\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n alignSelf: 'center',\n fontSize: size,\n lineHeight: 1,\n marginRight: size,\n textAlign: 'center',\n verticalAlign: 'middle'\n };\n};\n\nvar LoadingDot = function LoadingDot(_ref6) {\n var delay = _ref6.delay,\n offset = _ref6.offset;\n return jsx(\"span\", {\n css: /*#__PURE__*/css$2({\n animation: \"\".concat(loadingDotAnimations, \" 1s ease-in-out \").concat(delay, \"ms infinite;\"),\n backgroundColor: 'currentColor',\n borderRadius: '1em',\n display: 'inline-block',\n marginLeft: offset ? '1em' : undefined,\n height: '1em',\n verticalAlign: 'top',\n width: '1em'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \";label:LoadingDot;\", process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFQSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4LCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7XG4gIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lLFxuICBDU1NPYmplY3RXaXRoTGFiZWwsXG4gIEdyb3VwQmFzZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERyb3Bkb3duICYgQ2xlYXIgSWNvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5jb25zdCBTdmcgPSAoe1xuICBzaXplLFxuICAuLi5wcm9wc1xufTogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZTogbnVtYmVyIH0pID0+IChcbiAgPHN2Z1xuICAgIGhlaWdodD17c2l6ZX1cbiAgICB3aWR0aD17c2l6ZX1cbiAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICBjc3M9e3tcbiAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgZmlsbDogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBsaW5lSGVpZ2h0OiAxLFxuICAgICAgc3Ryb2tlOiAnY3VycmVudENvbG9yJyxcbiAgICAgIHN0cm9rZVdpZHRoOiAwLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IHR5cGUgQ3Jvc3NJY29uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgQ3Jvc3NJY29uID0gKHByb3BzOiBDcm9zc0ljb25Qcm9wcykgPT4gKFxuICA8U3ZnIHNpemU9ezIwfSB7Li4ucHJvcHN9PlxuICAgIDxwYXRoIGQ9XCJNMTQuMzQ4IDE0Ljg0OWMtMC40NjkgMC40NjktMS4yMjkgMC40NjktMS42OTcgMGwtMi42NTEtMy4wMzAtMi42NTEgMy4wMjljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDAtMC40NjktMC40NjktMC40NjktMS4yMjkgMC0xLjY5N2wyLjc1OC0zLjE1LTIuNzU5LTMuMTUyYy0wLjQ2OS0wLjQ2OS0wLjQ2OS0xLjIyOCAwLTEuNjk3czEuMjI4LTAuNDY5IDEuNjk3IDBsMi42NTIgMy4wMzEgMi42NTEtMy4wMzFjMC40NjktMC40NjkgMS4yMjgtMC40NjkgMS42OTcgMHMwLjQ2OSAxLjIyOSAwIDEuNjk3bC0yLjc1OCAzLjE1MiAyLjc1OCAzLjE1YzAuNDY5IDAuNDY5IDAuNDY5IDEuMjI5IDAgMS42OTh6XCIgLz5cbiAgPC9Tdmc+XG4pO1xuZXhwb3J0IHR5cGUgRG93bkNoZXZyb25Qcm9wcyA9IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU/OiBudW1iZXIgfTtcbmV4cG9ydCBjb25zdCBEb3duQ2hldnJvbiA9IChwcm9wczogRG93bkNoZXZyb25Qcm9wcykgPT4gKFxuICA8U3ZnIHNpemU9ezIwfSB7Li4ucHJvcHN9PlxuICAgIDxwYXRoIGQ9XCJNNC41MTYgNy41NDhjMC40MzYtMC40NDYgMS4wNDMtMC40ODEgMS41NzYgMGwzLjkwOCAzLjc0NyAzLjkwOC0zLjc0N2MwLjUzMy0wLjQ4MSAxLjE0MS0wLjQ0NiAxLjU3NCAwIDAuNDM2IDAuNDQ1IDAuNDA4IDEuMTk3IDAgMS42MTUtMC40MDYgMC40MTgtNC42OTUgNC41MDItNC42OTUgNC41MDItMC4yMTcgMC4yMjMtMC41MDIgMC4zMzUtMC43ODcgMC4zMzVzLTAuNTctMC4xMTItMC43ODktMC4zMzVjMCAwLTQuMjg3LTQuMDg0LTQuNjk1LTQuNTAycy0wLjQzNi0xLjE3IDAtMS42MTV6XCIgLz5cbiAgPC9Tdmc+XG4pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERyb3Bkb3duICYgQ2xlYXIgQnV0dG9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25JbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBUaGUgY2hpbGRyZW4gdG8gYmUgcmVuZGVyZWQgaW5zaWRlIHRoZSBpbmRpY2F0b3IuICovXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICAvKiogUHJvcHMgdGhhdCB3aWxsIGJlIHBhc3NlZCBvbiB0byB0aGUgY2hpbGRyZW4uICovXG4gIGlubmVyUHJvcHM6IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snZGl2J107XG4gIC8qKiBUaGUgZm9jdXNlZCBzdGF0ZSBvZiB0aGUgc2VsZWN0LiAqL1xuICBpc0ZvY3VzZWQ6IGJvb2xlYW47XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG59XG5cbmNvbnN0IGJhc2VDU1MgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oe1xuICBpc0ZvY3VzZWQsXG4gIHRoZW1lOiB7XG4gICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgIGNvbG9ycyxcbiAgfSxcbn06XG4gIHwgRHJvcGRvd25JbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPlxuICB8IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw2MCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gIGRpc3BsYXk6ICdmbGV4JyxcbiAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuXG4gICc6aG92ZXInOiB7XG4gICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwLFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBkcm9wZG93bkluZGljYXRvckNTUyA9IGJhc2VDU1M7XG5leHBvcnQgY29uc3QgRHJvcGRvd25JbmRpY2F0b3IgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oXG4gIHByb3BzOiBEcm9wZG93bkluZGljYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+XG4pID0+IHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBjeCwgZ2V0U3R5bGVzLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2dldFN0eWxlcygnZHJvcGRvd25JbmRpY2F0b3InLCBwcm9wcyl9XG4gICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDbGVhckluZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17Z2V0U3R5bGVzKCdjbGVhckluZGljYXRvcicsIHByb3BzKX1cbiAgICAgIGNsYXNzTmFtZT17Y3goXG4gICAgICAgIHtcbiAgICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICAgJ2NsZWFyLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbiB8fCA8Q3Jvc3NJY29uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTZXBhcmF0b3Jcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZGljYXRvclNlcGFyYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpbm5lclByb3BzPzogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzcGFuJ107XG59XG5cbmV4cG9ydCBjb25zdCBpbmRpY2F0b3JTZXBhcmF0b3JDU1MgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oe1xuICBpc0Rpc2FibGVkLFxuICB0aGVtZToge1xuICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICBjb2xvcnMsXG4gIH0sXG59OiBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPik6IENTU09iamVjdFdpdGhMYWJlbCA9PiAoe1xuICBsYWJlbDogJ2luZGljYXRvclNlcGFyYXRvcicsXG4gIGFsaWduU2VsZjogJ3N0cmV0Y2gnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGlzRGlzYWJsZWQgPyBjb2xvcnMubmV1dHJhbDEwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgbWFyZ2luQm90dG9tOiBiYXNlVW5pdCAqIDIsXG4gIG1hcmdpblRvcDogYmFzZVVuaXQgKiAyLFxuICB3aWR0aDogMSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcyB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPHNwYW5cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2luZGljYXRvclNlcGFyYXRvcicsIHByb3BzKX1cbiAgICAgIGNsYXNzTmFtZT17Y3goeyAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUgfSwgY2xhc3NOYW1lKX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KHtcbiAgaXNGb2N1c2VkLFxuICBzaXplLFxuICB0aGVtZToge1xuICAgIGNvbG9ycyxcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gIH0sXG59OiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcbiAgYWxpZ25TZWxmOiAnY2VudGVyJyxcbiAgZm9udFNpemU6IHNpemUsXG4gIGxpbmVIZWlnaHQ6IDEsXG4gIG1hcmdpblJpZ2h0OiBzaXplLFxuICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcbn0pO1xuXG5pbnRlcmZhY2UgTG9hZGluZ0RvdFByb3BzIHtcbiAgZGVsYXk6IG51bWJlcjtcbiAgb2Zmc2V0OiBib29sZWFuO1xufVxuY29uc3QgTG9hZGluZ0RvdCA9ICh7IGRlbGF5LCBvZmZzZXQgfTogTG9hZGluZ0RvdFByb3BzKSA9PiAoXG4gIDxzcGFuXG4gICAgY3NzPXt7XG4gICAgICBhbmltYXRpb246IGAke2xvYWRpbmdEb3RBbmltYXRpb25zfSAxcyBlYXNlLWluLW91dCAke2RlbGF5fW1zIGluZmluaXRlO2AsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdjdXJyZW50Q29sb3InLFxuICAgICAgYm9yZGVyUmFkaXVzOiAnMWVtJyxcbiAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgbWFyZ2luTGVmdDogb2Zmc2V0ID8gJzFlbScgOiB1bmRlZmluZWQsXG4gICAgICBoZWlnaHQ6ICcxZW0nLFxuICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gICAgICB3aWR0aDogJzFlbScsXG4gICAgfX1cbiAgLz5cbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZGluZ0luZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xuICAvKiogU2V0IHNpemUgb2YgdGhlIGNvbnRhaW5lci4gKi9cbiAgc2l6ZTogbnVtYmVyO1xufVxuZXhwb3J0IGNvbnN0IExvYWRpbmdJbmRpY2F0b3IgPSA8XG4gIE9wdGlvbixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj5cbj4oXG4gIHByb3BzOiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcywgaXNSdGwgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2xvYWRpbmdJbmRpY2F0b3InLCBwcm9wcyl9XG4gICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgID5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXswfSBvZmZzZXQ9e2lzUnRsfSAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezE2MH0gb2Zmc2V0IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MzIwfSBvZmZzZXQ9eyFpc1J0bH0gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Mb2FkaW5nSW5kaWNhdG9yLmRlZmF1bHRQcm9wcyA9IHsgc2l6ZTogNCB9O1xuIl19 */\")\n });\n};\n\nvar LoadingIndicator = function LoadingIndicator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends({\n css: getStyles('loadingIndicator', props),\n className: cx({\n indicator: true,\n 'loading-indicator': true\n }, className)\n }, innerProps), jsx(LoadingDot, {\n delay: 0,\n offset: isRtl\n }), jsx(LoadingDot, {\n delay: 160,\n offset: true\n }), jsx(LoadingDot, {\n delay: 320,\n offset: !isRtl\n }));\n};\nLoadingIndicator.defaultProps = {\n size: 4\n};\n\nvar css$1 = function css(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n _ref$theme = _ref.theme,\n colors = _ref$theme.colors,\n borderRadius = _ref$theme.borderRadius,\n spacing = _ref$theme.spacing;\n return {\n label: 'control',\n alignItems: 'center',\n backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n borderRadius: borderRadius,\n borderStyle: 'solid',\n borderWidth: 1,\n boxShadow: isFocused ? \"0 0 0 1px \".concat(colors.primary) : undefined,\n cursor: 'default',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n minHeight: spacing.controlHeight,\n outline: '0 !important',\n position: 'relative',\n transition: 'all 100ms',\n '&:hover': {\n borderColor: isFocused ? colors.primary : colors.neutral30\n }\n };\n};\n\nvar Control = function Control(props) {\n var children = props.children,\n cx = props.cx,\n getStyles = props.getStyles,\n className = props.className,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n innerRef = props.innerRef,\n innerProps = props.innerProps,\n menuIsOpen = props.menuIsOpen;\n return jsx(\"div\", _extends({\n ref: innerRef,\n css: getStyles('control', props),\n className: cx({\n control: true,\n 'control--is-disabled': isDisabled,\n 'control--is-focused': isFocused,\n 'control--menu-is-open': menuIsOpen\n }, className)\n }, innerProps), children);\n};\n\nvar _excluded$1 = [\"data\"];\nvar groupCSS = function groupCSS(_ref) {\n var spacing = _ref.theme.spacing;\n return {\n paddingBottom: spacing.baseUnit * 2,\n paddingTop: spacing.baseUnit * 2\n };\n};\n\nvar Group = function Group(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n Heading = props.Heading,\n headingProps = props.headingProps,\n innerProps = props.innerProps,\n label = props.label,\n theme = props.theme,\n selectProps = props.selectProps;\n return jsx(\"div\", _extends({\n css: getStyles('group', props),\n className: cx({\n group: true\n }, className)\n }, innerProps), jsx(Heading, _extends({}, headingProps, {\n selectProps: selectProps,\n theme: theme,\n getStyles: getStyles,\n cx: cx\n }), label), jsx(\"div\", null, children));\n};\n\nvar groupHeadingCSS = function groupHeadingCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n label: 'group',\n color: '#999',\n cursor: 'default',\n display: 'block',\n fontSize: '75%',\n fontWeight: 500,\n marginBottom: '0.25em',\n paddingLeft: spacing.baseUnit * 3,\n paddingRight: spacing.baseUnit * 3,\n textTransform: 'uppercase'\n };\n};\nvar GroupHeading = function GroupHeading(props) {\n var getStyles = props.getStyles,\n cx = props.cx,\n className = props.className;\n\n var _cleanCommonProps = cleanCommonProps(props);\n _cleanCommonProps.data;\n var innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded$1);\n\n return jsx(\"div\", _extends({\n css: getStyles('groupHeading', props),\n className: cx({\n 'group-heading': true\n }, className)\n }, innerProps));\n};\n\nvar _excluded = [\"innerRef\", \"isDisabled\", \"isHidden\", \"inputClassName\"];\nvar inputCSS = function inputCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n value = _ref.value,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread2({\n margin: spacing.baseUnit / 2,\n paddingBottom: spacing.baseUnit / 2,\n paddingTop: spacing.baseUnit / 2,\n visibility: isDisabled ? 'hidden' : 'visible',\n color: colors.neutral80,\n // force css to recompute when value change due to @emotion bug.\n // We can remove it whenever the bug is fixed.\n transform: value ? 'translateZ(0)' : ''\n }, containerStyle);\n};\nvar spacingStyle = {\n gridArea: '1 / 2',\n font: 'inherit',\n minWidth: '2px',\n border: 0,\n margin: 0,\n outline: 0,\n padding: 0\n};\nvar containerStyle = {\n flex: '1 1 auto',\n display: 'inline-grid',\n gridArea: '1 / 1 / 2 / 3',\n gridTemplateColumns: '0 min-content',\n '&:after': _objectSpread2({\n content: 'attr(data-value) \" \"',\n visibility: 'hidden',\n whiteSpace: 'pre'\n }, spacingStyle)\n};\n\nvar inputStyle = function inputStyle(isHidden) {\n return _objectSpread2({\n label: 'input',\n color: 'inherit',\n background: 0,\n opacity: isHidden ? 0 : 1,\n width: '100%'\n }, spacingStyle);\n};\n\nvar Input = function Input(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n value = props.value;\n\n var _cleanCommonProps = cleanCommonProps(props),\n innerRef = _cleanCommonProps.innerRef,\n isDisabled = _cleanCommonProps.isDisabled,\n isHidden = _cleanCommonProps.isHidden,\n inputClassName = _cleanCommonProps.inputClassName,\n innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded);\n\n return jsx(\"div\", {\n className: cx({\n 'input-container': true\n }, className),\n css: getStyles('input', props),\n \"data-value\": value || ''\n }, jsx(\"input\", _extends({\n className: cx({\n input: true\n }, inputClassName),\n ref: innerRef,\n style: inputStyle(isHidden),\n disabled: isDisabled\n }, innerProps)));\n};\n\nvar multiValueCSS = function multiValueCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n borderRadius = _ref$theme.borderRadius,\n colors = _ref$theme.colors;\n return {\n label: 'multiValue',\n backgroundColor: colors.neutral10,\n borderRadius: borderRadius / 2,\n display: 'flex',\n margin: spacing.baseUnit / 2,\n minWidth: 0 // resolves flex/text-overflow bug\n\n };\n};\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2) {\n var _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n colors = _ref2$theme.colors,\n cropWithEllipsis = _ref2.cropWithEllipsis;\n return {\n borderRadius: borderRadius / 2,\n color: colors.neutral80,\n fontSize: '85%',\n overflow: 'hidden',\n padding: 3,\n paddingLeft: 6,\n textOverflow: cropWithEllipsis || cropWithEllipsis === undefined ? 'ellipsis' : undefined,\n whiteSpace: 'nowrap'\n };\n};\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3) {\n var _ref3$theme = _ref3.theme,\n spacing = _ref3$theme.spacing,\n borderRadius = _ref3$theme.borderRadius,\n colors = _ref3$theme.colors,\n isFocused = _ref3.isFocused;\n return {\n alignItems: 'center',\n borderRadius: borderRadius / 2,\n backgroundColor: isFocused ? colors.dangerLight : undefined,\n display: 'flex',\n paddingLeft: spacing.baseUnit,\n paddingRight: spacing.baseUnit,\n ':hover': {\n backgroundColor: colors.dangerLight,\n color: colors.danger\n }\n };\n};\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n var children = _ref4.children,\n innerProps = _ref4.innerProps;\n return jsx(\"div\", innerProps, children);\n};\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\nfunction MultiValueRemove(_ref5) {\n var children = _ref5.children,\n innerProps = _ref5.innerProps;\n return jsx(\"div\", _extends({\n role: \"button\"\n }, innerProps), children || jsx(CrossIcon, {\n size: 14\n }));\n}\n\nvar MultiValue = function MultiValue(props) {\n var children = props.children,\n className = props.className,\n components = props.components,\n cx = props.cx,\n data = props.data,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n removeProps = props.removeProps,\n selectProps = props.selectProps;\n var Container = components.Container,\n Label = components.Label,\n Remove = components.Remove;\n return jsx(ClassNames, null, function (_ref6) {\n var css = _ref6.css,\n emotionCx = _ref6.cx;\n return jsx(Container, {\n data: data,\n innerProps: _objectSpread2({\n className: emotionCx(css(getStyles('multiValue', props)), cx({\n 'multi-value': true,\n 'multi-value--is-disabled': isDisabled\n }, className))\n }, innerProps),\n selectProps: selectProps\n }, jsx(Label, {\n data: data,\n innerProps: {\n className: emotionCx(css(getStyles('multiValueLabel', props)), cx({\n 'multi-value__label': true\n }, className))\n },\n selectProps: selectProps\n }, children), jsx(Remove, {\n data: data,\n innerProps: _objectSpread2({\n className: emotionCx(css(getStyles('multiValueRemove', props)), cx({\n 'multi-value__remove': true\n }, className)),\n 'aria-label': \"Remove \".concat(children || 'option')\n }, removeProps),\n selectProps: selectProps\n }));\n });\n};\n\nvar optionCSS = function optionCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n isSelected = _ref.isSelected,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'option',\n backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n cursor: 'default',\n display: 'block',\n fontSize: 'inherit',\n padding: \"\".concat(spacing.baseUnit * 2, \"px \").concat(spacing.baseUnit * 3, \"px\"),\n width: '100%',\n userSelect: 'none',\n WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',\n // provide some affordance on touch devices\n ':active': {\n backgroundColor: !isDisabled ? isSelected ? colors.primary : colors.primary50 : undefined\n }\n };\n};\n\nvar Option = function Option(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n isSelected = props.isSelected,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('option', props),\n className: cx({\n option: true,\n 'option--is-disabled': isDisabled,\n 'option--is-focused': isFocused,\n 'option--is-selected': isSelected\n }, className),\n ref: innerRef,\n \"aria-disabled\": isDisabled\n }, innerProps), children);\n};\n\nvar placeholderCSS = function placeholderCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'placeholder',\n color: colors.neutral50,\n gridArea: '1 / 1 / 2 / 3',\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2\n };\n};\n\nvar Placeholder = function Placeholder(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('placeholder', props),\n className: cx({\n placeholder: true\n }, className)\n }, innerProps), children);\n};\n\nvar css = function css(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'singleValue',\n color: isDisabled ? colors.neutral40 : colors.neutral80,\n gridArea: '1 / 1 / 2 / 3',\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n };\n};\n\nvar SingleValue = function SingleValue(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('singleValue', props),\n className: cx({\n 'single-value': true,\n 'single-value--is-disabled': isDisabled\n }, className)\n }, innerProps), children);\n};\n\nvar components = {\n ClearIndicator: ClearIndicator,\n Control: Control,\n DropdownIndicator: DropdownIndicator,\n DownChevron: DownChevron,\n CrossIcon: CrossIcon,\n Group: Group,\n GroupHeading: GroupHeading,\n IndicatorsContainer: IndicatorsContainer,\n IndicatorSeparator: IndicatorSeparator,\n Input: Input,\n LoadingIndicator: LoadingIndicator,\n Menu: Menu,\n MenuList: MenuList,\n MenuPortal: MenuPortal,\n LoadingMessage: LoadingMessage,\n NoOptionsMessage: NoOptionsMessage,\n MultiValue: MultiValue,\n MultiValueContainer: MultiValueContainer,\n MultiValueLabel: MultiValueLabel,\n MultiValueRemove: MultiValueRemove,\n Option: Option,\n Placeholder: Placeholder,\n SelectContainer: SelectContainer,\n SingleValue: SingleValue,\n ValueContainer: ValueContainer\n};\nvar defaultComponents = function defaultComponents(props) {\n return _objectSpread2(_objectSpread2({}, components), props.components);\n};\n\nexport { isTouchCapable as A, isMobileDevice as B, multiValueAsValue as C, singleValueAsValue as D, valueTernary as E, classNames as F, defaultComponents as G, notNullish as H, isDocumentElement as I, cleanValue as J, scrollIntoView as K, noop as L, MenuPlacer as M, handleInputChange as N, _createSuper as _, _objectSpread2 as a, clearIndicatorCSS as b, components as c, containerCSS as d, css$1 as e, dropdownIndicatorCSS as f, groupCSS as g, groupHeadingCSS as h, indicatorsContainerCSS as i, indicatorSeparatorCSS as j, inputCSS as k, loadingIndicatorCSS as l, loadingMessageCSS as m, menuCSS as n, menuListCSS as o, menuPortalCSS as p, multiValueCSS as q, removeProps as r, supportsPassiveEvents as s, multiValueLabelCSS as t, multiValueRemoveCSS as u, noOptionsMessageCSS as v, optionCSS as w, placeholderCSS as x, css as y, valueContainerCSS as z };\n","import { a as _objectSpread2 } from './index-d8fed9ee.esm.js';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport { useState, useCallback } from 'react';\n\nvar _excluded = [\"defaultInputValue\", \"defaultMenuIsOpen\", \"defaultValue\", \"inputValue\", \"menuIsOpen\", \"onChange\", \"onInputChange\", \"onMenuClose\", \"onMenuOpen\", \"value\"];\nfunction useStateManager(_ref) {\n var _ref$defaultInputValu = _ref.defaultInputValue,\n defaultInputValue = _ref$defaultInputValu === void 0 ? '' : _ref$defaultInputValu,\n _ref$defaultMenuIsOpe = _ref.defaultMenuIsOpen,\n defaultMenuIsOpen = _ref$defaultMenuIsOpe === void 0 ? false : _ref$defaultMenuIsOpe,\n _ref$defaultValue = _ref.defaultValue,\n defaultValue = _ref$defaultValue === void 0 ? null : _ref$defaultValue,\n propsInputValue = _ref.inputValue,\n propsMenuIsOpen = _ref.menuIsOpen,\n propsOnChange = _ref.onChange,\n propsOnInputChange = _ref.onInputChange,\n propsOnMenuClose = _ref.onMenuClose,\n propsOnMenuOpen = _ref.onMenuOpen,\n propsValue = _ref.value,\n restSelectProps = _objectWithoutProperties(_ref, _excluded);\n\n var _useState = useState(propsInputValue !== undefined ? propsInputValue : defaultInputValue),\n _useState2 = _slicedToArray(_useState, 2),\n stateInputValue = _useState2[0],\n setStateInputValue = _useState2[1];\n\n var _useState3 = useState(propsMenuIsOpen !== undefined ? propsMenuIsOpen : defaultMenuIsOpen),\n _useState4 = _slicedToArray(_useState3, 2),\n stateMenuIsOpen = _useState4[0],\n setStateMenuIsOpen = _useState4[1];\n\n var _useState5 = useState(propsValue !== undefined ? propsValue : defaultValue),\n _useState6 = _slicedToArray(_useState5, 2),\n stateValue = _useState6[0],\n setStateValue = _useState6[1];\n\n var onChange = useCallback(function (value, actionMeta) {\n if (typeof propsOnChange === 'function') {\n propsOnChange(value, actionMeta);\n }\n\n setStateValue(value);\n }, [propsOnChange]);\n var onInputChange = useCallback(function (value, actionMeta) {\n var newValue;\n\n if (typeof propsOnInputChange === 'function') {\n newValue = propsOnInputChange(value, actionMeta);\n }\n\n setStateInputValue(newValue !== undefined ? newValue : value);\n }, [propsOnInputChange]);\n var onMenuOpen = useCallback(function () {\n if (typeof propsOnMenuOpen === 'function') {\n propsOnMenuOpen();\n }\n\n setStateMenuIsOpen(true);\n }, [propsOnMenuOpen]);\n var onMenuClose = useCallback(function () {\n if (typeof propsOnMenuClose === 'function') {\n propsOnMenuClose();\n }\n\n setStateMenuIsOpen(false);\n }, [propsOnMenuClose]);\n var inputValue = propsInputValue !== undefined ? propsInputValue : stateInputValue;\n var menuIsOpen = propsMenuIsOpen !== undefined ? propsMenuIsOpen : stateMenuIsOpen;\n var value = propsValue !== undefined ? propsValue : stateValue;\n return _objectSpread2(_objectSpread2({}, restSelectProps), {}, {\n inputValue: inputValue,\n menuIsOpen: menuIsOpen,\n onChange: onChange,\n onInputChange: onInputChange,\n onMenuClose: onMenuClose,\n onMenuOpen: onMenuOpen,\n value: value\n });\n}\n\nexport { useStateManager as u };\n","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { a as _objectSpread2, r as removeProps, s as supportsPassiveEvents, b as clearIndicatorCSS, d as containerCSS, e as css$1, f as dropdownIndicatorCSS, g as groupCSS, h as groupHeadingCSS, i as indicatorsContainerCSS, j as indicatorSeparatorCSS, k as inputCSS, l as loadingIndicatorCSS, m as loadingMessageCSS, n as menuCSS, o as menuListCSS, p as menuPortalCSS, q as multiValueCSS, t as multiValueLabelCSS, u as multiValueRemoveCSS, v as noOptionsMessageCSS, w as optionCSS, x as placeholderCSS, y as css$2, z as valueContainerCSS, A as isTouchCapable, B as isMobileDevice, _ as _createSuper, C as multiValueAsValue, D as singleValueAsValue, E as valueTernary, F as classNames, G as defaultComponents, H as notNullish, I as isDocumentElement, J as cleanValue, K as scrollIntoView, L as noop, M as MenuPlacer } from './index-d8fed9ee.esm.js';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport * as React from 'react';\nimport { useMemo, Fragment, useRef, useCallback, useEffect, Component } from 'react';\nimport { jsx, css } from '@emotion/react';\nimport memoizeOne from 'memoize-one';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__$1() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\nvar _ref = process.env.NODE_ENV === \"production\" ? {\n name: \"7pg0cj-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap\"\n} : {\n name: \"1f43avz-a11yText-A11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;label:A11yText;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNSSIsImZpbGUiOiJBMTF5VGV4dC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGpzeCBqc3ggKi9cbmltcG9ydCB7IGpzeCB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuLy8gQXNzaXN0aXZlIHRleHQgdG8gZGVzY3JpYmUgdmlzdWFsIGVsZW1lbnRzLiBIaWRkZW4gZm9yIHNpZ2h0ZWQgdXNlcnMuXG5jb25zdCBBMTF5VGV4dCA9IChwcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzcGFuJ10pID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAnYTExeVRleHQnLFxuICAgICAgekluZGV4OiA5OTk5LFxuICAgICAgYm9yZGVyOiAwLFxuICAgICAgY2xpcDogJ3JlY3QoMXB4LCAxcHgsIDFweCwgMXB4KScsXG4gICAgICBoZWlnaHQ6IDEsXG4gICAgICB3aWR0aDogMSxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQTExeVRleHQ7XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1\n};\n\nvar A11yText = function A11yText(props) {\n return jsx(\"span\", _extends({\n css: _ref\n }, props));\n};\n\nvar defaultAriaLiveMessages = {\n guidance: function guidance(props) {\n var isSearchable = props.isSearchable,\n isMulti = props.isMulti,\n isDisabled = props.isDisabled,\n tabSelectsValue = props.tabSelectsValue,\n context = props.context;\n\n switch (context) {\n case 'menu':\n return \"Use Up and Down to choose options\".concat(isDisabled ? '' : ', press Enter to select the currently focused option', \", press Escape to exit the menu\").concat(tabSelectsValue ? ', press Tab to select the option and exit the menu' : '', \".\");\n\n case 'input':\n return \"\".concat(props['aria-label'] || 'Select', \" is focused \").concat(isSearchable ? ',type to refine list' : '', \", press Down to open the menu, \").concat(isMulti ? ' press left to focus selected values' : '');\n\n case 'value':\n return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';\n\n default:\n return '';\n }\n },\n onChange: function onChange(props) {\n var action = props.action,\n _props$label = props.label,\n label = _props$label === void 0 ? '' : _props$label,\n labels = props.labels,\n isDisabled = props.isDisabled;\n\n switch (action) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return \"option \".concat(label, \", deselected.\");\n\n case 'clear':\n return 'All selected options have been cleared.';\n\n case 'initial-input-focus':\n return \"option\".concat(labels.length > 1 ? 's' : '', \" \").concat(labels.join(','), \", selected.\");\n\n case 'select-option':\n return isDisabled ? \"option \".concat(label, \" is disabled. Select another option.\") : \"option \".concat(label, \", selected.\");\n\n default:\n return '';\n }\n },\n onFocus: function onFocus(props) {\n var context = props.context,\n focused = props.focused,\n options = props.options,\n _props$label2 = props.label,\n label = _props$label2 === void 0 ? '' : _props$label2,\n selectValue = props.selectValue,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected;\n\n var getArrayIndex = function getArrayIndex(arr, item) {\n return arr && arr.length ? \"\".concat(arr.indexOf(item) + 1, \" of \").concat(arr.length) : '';\n };\n\n if (context === 'value' && selectValue) {\n return \"value \".concat(label, \" focused, \").concat(getArrayIndex(selectValue, focused), \".\");\n }\n\n if (context === 'menu') {\n var disabled = isDisabled ? ' disabled' : '';\n var status = \"\".concat(isSelected ? 'selected' : 'focused').concat(disabled);\n return \"option \".concat(label, \" \").concat(status, \", \").concat(getArrayIndex(options, focused), \".\");\n }\n\n return '';\n },\n onFilter: function onFilter(props) {\n var inputValue = props.inputValue,\n resultsMessage = props.resultsMessage;\n return \"\".concat(resultsMessage).concat(inputValue ? ' for search term ' + inputValue : '', \".\");\n }\n};\n\nvar LiveRegion = function LiveRegion(props) {\n var ariaSelection = props.ariaSelection,\n focusedOption = props.focusedOption,\n focusedValue = props.focusedValue,\n focusableOptions = props.focusableOptions,\n isFocused = props.isFocused,\n selectValue = props.selectValue,\n selectProps = props.selectProps,\n id = props.id;\n var ariaLiveMessages = selectProps.ariaLiveMessages,\n getOptionLabel = selectProps.getOptionLabel,\n inputValue = selectProps.inputValue,\n isMulti = selectProps.isMulti,\n isOptionDisabled = selectProps.isOptionDisabled,\n isSearchable = selectProps.isSearchable,\n menuIsOpen = selectProps.menuIsOpen,\n options = selectProps.options,\n screenReaderStatus = selectProps.screenReaderStatus,\n tabSelectsValue = selectProps.tabSelectsValue;\n var ariaLabel = selectProps['aria-label'];\n var ariaLive = selectProps['aria-live']; // Update aria live message configuration when prop changes\n\n var messages = useMemo(function () {\n return _objectSpread2(_objectSpread2({}, defaultAriaLiveMessages), ariaLiveMessages || {});\n }, [ariaLiveMessages]); // Update aria live selected option when prop changes\n\n var ariaSelected = useMemo(function () {\n var message = '';\n\n if (ariaSelection && messages.onChange) {\n var option = ariaSelection.option,\n selectedOptions = ariaSelection.options,\n removedValue = ariaSelection.removedValue,\n removedValues = ariaSelection.removedValues,\n value = ariaSelection.value; // select-option when !isMulti does not return option so we assume selected option is value\n\n var asOption = function asOption(val) {\n return !Array.isArray(val) ? val : null;\n }; // If there is just one item from the action then get its label\n\n\n var selected = removedValue || option || asOption(value);\n var label = selected ? getOptionLabel(selected) : ''; // If there are multiple items from the action then return an array of labels\n\n var multiSelected = selectedOptions || removedValues || undefined;\n var labels = multiSelected ? multiSelected.map(getOptionLabel) : [];\n\n var onChangeProps = _objectSpread2({\n // multiSelected items are usually items that have already been selected\n // or set by the user as a default value so we assume they are not disabled\n isDisabled: selected && isOptionDisabled(selected, selectValue),\n label: label,\n labels: labels\n }, ariaSelection);\n\n message = messages.onChange(onChangeProps);\n }\n\n return message;\n }, [ariaSelection, messages, isOptionDisabled, selectValue, getOptionLabel]);\n var ariaFocused = useMemo(function () {\n var focusMsg = '';\n var focused = focusedOption || focusedValue;\n var isSelected = !!(focusedOption && selectValue && selectValue.includes(focusedOption));\n\n if (focused && messages.onFocus) {\n var onFocusProps = {\n focused: focused,\n label: getOptionLabel(focused),\n isDisabled: isOptionDisabled(focused, selectValue),\n isSelected: isSelected,\n options: options,\n context: focused === focusedOption ? 'menu' : 'value',\n selectValue: selectValue\n };\n focusMsg = messages.onFocus(onFocusProps);\n }\n\n return focusMsg;\n }, [focusedOption, focusedValue, getOptionLabel, isOptionDisabled, messages, options, selectValue]);\n var ariaResults = useMemo(function () {\n var resultsMsg = '';\n\n if (menuIsOpen && options.length && messages.onFilter) {\n var resultsMessage = screenReaderStatus({\n count: focusableOptions.length\n });\n resultsMsg = messages.onFilter({\n inputValue: inputValue,\n resultsMessage: resultsMessage\n });\n }\n\n return resultsMsg;\n }, [focusableOptions, inputValue, menuIsOpen, messages, options, screenReaderStatus]);\n var ariaGuidance = useMemo(function () {\n var guidanceMsg = '';\n\n if (messages.guidance) {\n var context = focusedValue ? 'value' : menuIsOpen ? 'menu' : 'input';\n guidanceMsg = messages.guidance({\n 'aria-label': ariaLabel,\n context: context,\n isDisabled: focusedOption && isOptionDisabled(focusedOption, selectValue),\n isMulti: isMulti,\n isSearchable: isSearchable,\n tabSelectsValue: tabSelectsValue\n });\n }\n\n return guidanceMsg;\n }, [ariaLabel, focusedOption, focusedValue, isMulti, isOptionDisabled, isSearchable, menuIsOpen, messages, selectValue, tabSelectsValue]);\n var ariaContext = \"\".concat(ariaFocused, \" \").concat(ariaResults, \" \").concat(ariaGuidance);\n var ScreenReaderText = jsx(Fragment, null, jsx(\"span\", {\n id: \"aria-selection\"\n }, ariaSelected), jsx(\"span\", {\n id: \"aria-context\"\n }, ariaContext));\n var isInitialFocus = (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus';\n return jsx(Fragment, null, jsx(A11yText, {\n id: id\n }, isInitialFocus && ScreenReaderText), jsx(A11yText, {\n \"aria-live\": ariaLive,\n \"aria-atomic\": \"false\",\n \"aria-relevant\": \"additions text\"\n }, isFocused && !isInitialFocus && ScreenReaderText));\n};\n\nvar diacritics = [{\n base: 'A',\n letters: \"A\\u24B6\\uFF21\\xC0\\xC1\\xC2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\xC3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\xC4\\u01DE\\u1EA2\\xC5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\"\n}, {\n base: 'AA',\n letters: \"\\uA732\"\n}, {\n base: 'AE',\n letters: \"\\xC6\\u01FC\\u01E2\"\n}, {\n base: 'AO',\n letters: \"\\uA734\"\n}, {\n base: 'AU',\n letters: \"\\uA736\"\n}, {\n base: 'AV',\n letters: \"\\uA738\\uA73A\"\n}, {\n base: 'AY',\n letters: \"\\uA73C\"\n}, {\n base: 'B',\n letters: \"B\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181\"\n}, {\n base: 'C',\n letters: \"C\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\xC7\\u1E08\\u0187\\u023B\\uA73E\"\n}, {\n base: 'D',\n letters: \"D\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\"\n}, {\n base: 'DZ',\n letters: \"\\u01F1\\u01C4\"\n}, {\n base: 'Dz',\n letters: \"\\u01F2\\u01C5\"\n}, {\n base: 'E',\n letters: \"E\\u24BA\\uFF25\\xC8\\xC9\\xCA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\xCB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\"\n}, {\n base: 'F',\n letters: \"F\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\"\n}, {\n base: 'G',\n letters: \"G\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\"\n}, {\n base: 'H',\n letters: \"H\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\"\n}, {\n base: 'I',\n letters: \"I\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\"\n}, {\n base: 'J',\n letters: \"J\\u24BF\\uFF2A\\u0134\\u0248\"\n}, {\n base: 'K',\n letters: \"K\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\"\n}, {\n base: 'L',\n letters: \"L\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\"\n}, {\n base: 'LJ',\n letters: \"\\u01C7\"\n}, {\n base: 'Lj',\n letters: \"\\u01C8\"\n}, {\n base: 'M',\n letters: \"M\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\"\n}, {\n base: 'N',\n letters: \"N\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\"\n}, {\n base: 'NJ',\n letters: \"\\u01CA\"\n}, {\n base: 'Nj',\n letters: \"\\u01CB\"\n}, {\n base: 'O',\n letters: \"O\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\"\n}, {\n base: 'OI',\n letters: \"\\u01A2\"\n}, {\n base: 'OO',\n letters: \"\\uA74E\"\n}, {\n base: 'OU',\n letters: \"\\u0222\"\n}, {\n base: 'P',\n letters: \"P\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\"\n}, {\n base: 'Q',\n letters: \"Q\\u24C6\\uFF31\\uA756\\uA758\\u024A\"\n}, {\n base: 'R',\n letters: \"R\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\"\n}, {\n base: 'S',\n letters: \"S\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\"\n}, {\n base: 'T',\n letters: \"T\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\"\n}, {\n base: 'TZ',\n letters: \"\\uA728\"\n}, {\n base: 'U',\n letters: \"U\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\"\n}, {\n base: 'V',\n letters: \"V\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\"\n}, {\n base: 'VY',\n letters: \"\\uA760\"\n}, {\n base: 'W',\n letters: \"W\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\"\n}, {\n base: 'X',\n letters: \"X\\u24CD\\uFF38\\u1E8A\\u1E8C\"\n}, {\n base: 'Y',\n letters: \"Y\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\"\n}, {\n base: 'Z',\n letters: \"Z\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\"\n}, {\n base: 'a',\n letters: \"a\\u24D0\\uFF41\\u1E9A\\xE0\\xE1\\xE2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\xE3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\xE4\\u01DF\\u1EA3\\xE5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\"\n}, {\n base: 'aa',\n letters: \"\\uA733\"\n}, {\n base: 'ae',\n letters: \"\\xE6\\u01FD\\u01E3\"\n}, {\n base: 'ao',\n letters: \"\\uA735\"\n}, {\n base: 'au',\n letters: \"\\uA737\"\n}, {\n base: 'av',\n letters: \"\\uA739\\uA73B\"\n}, {\n base: 'ay',\n letters: \"\\uA73D\"\n}, {\n base: 'b',\n letters: \"b\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\"\n}, {\n base: 'c',\n letters: \"c\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\xE7\\u1E09\\u0188\\u023C\\uA73F\\u2184\"\n}, {\n base: 'd',\n letters: \"d\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\"\n}, {\n base: 'dz',\n letters: \"\\u01F3\\u01C6\"\n}, {\n base: 'e',\n letters: \"e\\u24D4\\uFF45\\xE8\\xE9\\xEA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\xEB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD\"\n}, {\n base: 'f',\n letters: \"f\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C\"\n}, {\n base: 'g',\n letters: \"g\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F\"\n}, {\n base: 'h',\n letters: \"h\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\"\n}, {\n base: 'hv',\n letters: \"\\u0195\"\n}, {\n base: 'i',\n letters: \"i\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\"\n}, {\n base: 'j',\n letters: \"j\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\"\n}, {\n base: 'k',\n letters: \"k\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\"\n}, {\n base: 'l',\n letters: \"l\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\"\n}, {\n base: 'lj',\n letters: \"\\u01C9\"\n}, {\n base: 'm',\n letters: \"m\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\"\n}, {\n base: 'n',\n letters: \"n\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\"\n}, {\n base: 'nj',\n letters: \"\\u01CC\"\n}, {\n base: 'o',\n letters: \"o\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\u0254\\uA74B\\uA74D\\u0275\"\n}, {\n base: 'oi',\n letters: \"\\u01A3\"\n}, {\n base: 'ou',\n letters: \"\\u0223\"\n}, {\n base: 'oo',\n letters: \"\\uA74F\"\n}, {\n base: 'p',\n letters: \"p\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\"\n}, {\n base: 'q',\n letters: \"q\\u24E0\\uFF51\\u024B\\uA757\\uA759\"\n}, {\n base: 'r',\n letters: \"r\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\"\n}, {\n base: 's',\n letters: \"s\\u24E2\\uFF53\\xDF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\"\n}, {\n base: 't',\n letters: \"t\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\"\n}, {\n base: 'tz',\n letters: \"\\uA729\"\n}, {\n base: 'u',\n letters: \"u\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\"\n}, {\n base: 'v',\n letters: \"v\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\"\n}, {\n base: 'vy',\n letters: \"\\uA761\"\n}, {\n base: 'w',\n letters: \"w\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\"\n}, {\n base: 'x',\n letters: \"x\\u24E7\\uFF58\\u1E8B\\u1E8D\"\n}, {\n base: 'y',\n letters: \"y\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\"\n}, {\n base: 'z',\n letters: \"z\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\"\n}];\nvar anyDiacritic = new RegExp('[' + diacritics.map(function (d) {\n return d.letters;\n}).join('') + ']', 'g');\nvar diacriticToBase = {};\n\nfor (var i = 0; i < diacritics.length; i++) {\n var diacritic = diacritics[i];\n\n for (var j = 0; j < diacritic.letters.length; j++) {\n diacriticToBase[diacritic.letters[j]] = diacritic.base;\n }\n}\n\nvar stripDiacritics = function stripDiacritics(str) {\n return str.replace(anyDiacritic, function (match) {\n return diacriticToBase[match];\n });\n};\n\nvar memoizedStripDiacriticsForInput = memoizeOne(stripDiacritics);\n\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\n\nvar defaultStringify = function defaultStringify(option) {\n return \"\".concat(option.label, \" \").concat(option.value);\n};\n\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n // eslint-disable-next-line no-underscore-dangle\n if (option.data.__isNew__) return true;\n\n var _ignoreCase$ignoreAcc = _objectSpread2({\n ignoreCase: true,\n ignoreAccents: true,\n stringify: defaultStringify,\n trim: true,\n matchFrom: 'any'\n }, config),\n ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n stringify = _ignoreCase$ignoreAcc.stringify,\n trim = _ignoreCase$ignoreAcc.trim,\n matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n\n var input = trim ? trimString(rawInput) : rawInput;\n var candidate = trim ? trimString(stringify(option)) : stringify(option);\n\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n\n if (ignoreAccents) {\n input = memoizedStripDiacriticsForInput(input);\n candidate = stripDiacritics(candidate);\n }\n\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\nvar _excluded = [\"innerRef\"];\nfunction DummyInput(_ref) {\n var innerRef = _ref.innerRef,\n props = _objectWithoutProperties(_ref, _excluded);\n\n // Remove animation props not meant for HTML elements\n var filteredProps = removeProps(props, 'onExited', 'in', 'enter', 'exit', 'appear');\n return jsx(\"input\", _extends({\n ref: innerRef\n }, filteredProps, {\n css: /*#__PURE__*/css({\n label: 'dummyInput',\n // get rid of any default styles\n background: 0,\n border: 0,\n // important! this hides the flashing cursor\n caretColor: 'transparent',\n fontSize: 'inherit',\n gridArea: '1 / 1 / 2 / 3',\n outline: 0,\n padding: 0,\n // important! without `width` browsers won't allow focus\n width: 1,\n // remove cursor on desktop\n color: 'transparent',\n // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n left: -100,\n opacity: 0,\n position: 'relative',\n transform: 'scale(.01)'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \";label:DummyInput;\", process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCTSIsImZpbGUiOiJEdW1teUlucHV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgcmVtb3ZlUHJvcHMgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIER1bW15SW5wdXQoe1xuICBpbm5lclJlZixcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snaW5wdXQnXSAmIHtcbiAgcmVhZG9ubHkgaW5uZXJSZWY6IFJlZjxIVE1MSW5wdXRFbGVtZW50Pjtcbn0pIHtcbiAgLy8gUmVtb3ZlIGFuaW1hdGlvbiBwcm9wcyBub3QgbWVhbnQgZm9yIEhUTUwgZWxlbWVudHNcbiAgY29uc3QgZmlsdGVyZWRQcm9wcyA9IHJlbW92ZVByb3BzKFxuICAgIHByb3BzLFxuICAgICdvbkV4aXRlZCcsXG4gICAgJ2luJyxcbiAgICAnZW50ZXInLFxuICAgICdleGl0JyxcbiAgICAnYXBwZWFyJ1xuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGlucHV0XG4gICAgICByZWY9e2lubmVyUmVmfVxuICAgICAgey4uLmZpbHRlcmVkUHJvcHN9XG4gICAgICBjc3M9e3tcbiAgICAgICAgbGFiZWw6ICdkdW1teUlucHV0JyxcbiAgICAgICAgLy8gZ2V0IHJpZCBvZiBhbnkgZGVmYXVsdCBzdHlsZXNcbiAgICAgICAgYmFja2dyb3VuZDogMCxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHRoaXMgaGlkZXMgdGhlIGZsYXNoaW5nIGN1cnNvclxuICAgICAgICBjYXJldENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBmb250U2l6ZTogJ2luaGVyaXQnLFxuICAgICAgICBncmlkQXJlYTogJzEgLyAxIC8gMiAvIDMnLFxuICAgICAgICBvdXRsaW5lOiAwLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHdpdGhvdXQgYHdpZHRoYCBicm93c2VycyB3b24ndCBhbGxvdyBmb2N1c1xuICAgICAgICB3aWR0aDogMSxcblxuICAgICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIGRlc2t0b3BcbiAgICAgICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG5cbiAgICAgICAgLy8gcmVtb3ZlIGN1cnNvciBvbiBtb2JpbGUgd2hpbHN0IG1haW50YWluaW5nIFwic2Nyb2xsIGludG8gdmlld1wiIGJlaGF2aW91clxuICAgICAgICBsZWZ0OiAtMTAwLFxuICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoLjAxKScsXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59XG4iXX0= */\")\n }));\n}\n\nvar cancelScroll = function cancelScroll(event) {\n event.preventDefault();\n event.stopPropagation();\n};\n\nfunction useScrollCapture(_ref) {\n var isEnabled = _ref.isEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var isBottom = useRef(false);\n var isTop = useRef(false);\n var touchStart = useRef(0);\n var scrollTarget = useRef(null);\n var handleEventDelta = useCallback(function (event, delta) {\n if (scrollTarget.current === null) return;\n var _scrollTarget$current = scrollTarget.current,\n scrollTop = _scrollTarget$current.scrollTop,\n scrollHeight = _scrollTarget$current.scrollHeight,\n clientHeight = _scrollTarget$current.clientHeight;\n var target = scrollTarget.current;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false; // reset bottom/top flags\n\n if (availableScroll > delta && isBottom.current) {\n if (onBottomLeave) onBottomLeave(event);\n isBottom.current = false;\n }\n\n if (isDeltaPositive && isTop.current) {\n if (onTopLeave) onTopLeave(event);\n isTop.current = false;\n } // bottom limit\n\n\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !isBottom.current) {\n onBottomArrive(event);\n }\n\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n isBottom.current = true; // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !isTop.current) {\n onTopArrive(event);\n }\n\n target.scrollTop = 0;\n shouldCancelScroll = true;\n isTop.current = true;\n } // cancel scroll\n\n\n if (shouldCancelScroll) {\n cancelScroll(event);\n }\n }, [onBottomArrive, onBottomLeave, onTopArrive, onTopLeave]);\n var onWheel = useCallback(function (event) {\n handleEventDelta(event, event.deltaY);\n }, [handleEventDelta]);\n var onTouchStart = useCallback(function (event) {\n // set touch start so we can calculate touchmove delta\n touchStart.current = event.changedTouches[0].clientY;\n }, []);\n var onTouchMove = useCallback(function (event) {\n var deltaY = touchStart.current - event.changedTouches[0].clientY;\n handleEventDelta(event, deltaY);\n }, [handleEventDelta]);\n var startListening = useCallback(function (el) {\n // bail early if no element is available to attach to\n if (!el) return;\n var notPassive = supportsPassiveEvents ? {\n passive: false\n } : false;\n el.addEventListener('wheel', onWheel, notPassive);\n el.addEventListener('touchstart', onTouchStart, notPassive);\n el.addEventListener('touchmove', onTouchMove, notPassive);\n }, [onTouchMove, onTouchStart, onWheel]);\n var stopListening = useCallback(function (el) {\n // bail early if no element is available to detach from\n if (!el) return;\n el.removeEventListener('wheel', onWheel, false);\n el.removeEventListener('touchstart', onTouchStart, false);\n el.removeEventListener('touchmove', onTouchMove, false);\n }, [onTouchMove, onTouchStart, onWheel]);\n useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n startListening(element);\n return function () {\n stopListening(element);\n };\n }, [isEnabled, startListening, stopListening]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nvar LOCK_STYLES = {\n boxSizing: 'border-box',\n // account for possible declaration `width: 100%;` on body\n overflow: 'hidden',\n position: 'relative',\n height: '100%'\n};\n\nfunction preventTouchMove(e) {\n e.preventDefault();\n}\n\nfunction allowTouchMove(e) {\n e.stopPropagation();\n}\n\nfunction preventInertiaScroll() {\n var top = this.scrollTop;\n var totalScroll = this.scrollHeight;\n var currentScroll = top + this.offsetHeight;\n\n if (top === 0) {\n this.scrollTop = 1;\n } else if (currentScroll === totalScroll) {\n this.scrollTop = top - 1;\n }\n} // `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\n\n\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar activeScrollLocks = 0;\nvar listenerOptions = {\n capture: false,\n passive: false\n};\nfunction useScrollLock(_ref) {\n var isEnabled = _ref.isEnabled,\n _ref$accountForScroll = _ref.accountForScrollbars,\n accountForScrollbars = _ref$accountForScroll === void 0 ? true : _ref$accountForScroll;\n var originalStyles = useRef({});\n var scrollTarget = useRef(null);\n var addScrollLock = useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\n var target = document.body;\n var targetStyle = target && target.style;\n\n if (accountForScrollbars) {\n // store any styles already applied to the body\n STYLE_KEYS.forEach(function (key) {\n var val = targetStyle && targetStyle[key];\n originalStyles.current[key] = val;\n });\n } // apply the lock styles and padding if this is the first scroll lock\n\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(originalStyles.current.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n\n if (targetStyle) {\n targetStyle.paddingRight = \"\".concat(adjustedPadding, \"px\");\n }\n } // account for touch devices\n\n\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, listenerOptions); // Allow scroll on provided target\n\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n } // increment active scroll locks\n\n\n activeScrollLocks += 1;\n }, [accountForScrollbars]);\n var removeScrollLock = useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\n var target = document.body;\n var targetStyle = target && target.style; // safely decrement active scroll locks\n\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0); // reapply original body styles, if any\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = originalStyles.current[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n } // remove touch listeners\n\n\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, listenerOptions);\n\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n }\n }, [accountForScrollbars]);\n useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n addScrollLock(element);\n return function () {\n removeScrollLock(element);\n };\n }, [isEnabled, addScrollLock, removeScrollLock]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\nvar blurSelectInput = function blurSelectInput() {\n return document.activeElement && document.activeElement.blur();\n};\n\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"1kfdb0e\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0\"\n} : {\n name: \"bp8cua-ScrollManager\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0;label:ScrollManager;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbE1hbmFnZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStDVSIsImZpbGUiOiJTY3JvbGxNYW5hZ2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgRnJhZ21lbnQsIFJlYWN0RWxlbWVudCwgUmVmQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlU2Nyb2xsQ2FwdHVyZSBmcm9tICcuL3VzZVNjcm9sbENhcHR1cmUnO1xuaW1wb3J0IHVzZVNjcm9sbExvY2sgZnJvbSAnLi91c2VTY3JvbGxMb2NrJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IChyZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PikgPT4gUmVhY3RFbGVtZW50O1xuICByZWFkb25seSBsb2NrRW5hYmxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgY2FwdHVyZUVuYWJsZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IG9uQm90dG9tQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Cb3R0b21MZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IG9uVG9wQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Ub3BMZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG59XG5cbmNvbnN0IGJsdXJTZWxlY3RJbnB1dCA9ICgpID0+XG4gIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmJsdXIoKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2Nyb2xsTWFuYWdlcih7XG4gIGNoaWxkcmVuLFxuICBsb2NrRW5hYmxlZCxcbiAgY2FwdHVyZUVuYWJsZWQgPSB0cnVlLFxuICBvbkJvdHRvbUFycml2ZSxcbiAgb25Cb3R0b21MZWF2ZSxcbiAgb25Ub3BBcnJpdmUsXG4gIG9uVG9wTGVhdmUsXG59OiBQcm9wcykge1xuICBjb25zdCBzZXRTY3JvbGxDYXB0dXJlVGFyZ2V0ID0gdXNlU2Nyb2xsQ2FwdHVyZSh7XG4gICAgaXNFbmFibGVkOiBjYXB0dXJlRW5hYmxlZCxcbiAgICBvbkJvdHRvbUFycml2ZSxcbiAgICBvbkJvdHRvbUxlYXZlLFxuICAgIG9uVG9wQXJyaXZlLFxuICAgIG9uVG9wTGVhdmUsXG4gIH0pO1xuICBjb25zdCBzZXRTY3JvbGxMb2NrVGFyZ2V0ID0gdXNlU2Nyb2xsTG9jayh7IGlzRW5hYmxlZDogbG9ja0VuYWJsZWQgfSk7XG5cbiAgY29uc3QgdGFyZ2V0UmVmOiBSZWZDYWxsYmFjazxIVE1MRWxlbWVudD4gPSAoZWxlbWVudCkgPT4ge1xuICAgIHNldFNjcm9sbENhcHR1cmVUYXJnZXQoZWxlbWVudCk7XG4gICAgc2V0U2Nyb2xsTG9ja1RhcmdldChlbGVtZW50KTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxGcmFnbWVudD5cbiAgICAgIHtsb2NrRW5hYmxlZCAmJiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBvbkNsaWNrPXtibHVyU2VsZWN0SW5wdXR9XG4gICAgICAgICAgY3NzPXt7IHBvc2l0aW9uOiAnZml4ZWQnLCBsZWZ0OiAwLCBib3R0b206IDAsIHJpZ2h0OiAwLCB0b3A6IDAgfX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7Y2hpbGRyZW4odGFyZ2V0UmVmKX1cbiAgICA8L0ZyYWdtZW50PlxuICApO1xufVxuIl19 */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\n\nfunction ScrollManager(_ref) {\n var children = _ref.children,\n lockEnabled = _ref.lockEnabled,\n _ref$captureEnabled = _ref.captureEnabled,\n captureEnabled = _ref$captureEnabled === void 0 ? true : _ref$captureEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var setScrollCaptureTarget = useScrollCapture({\n isEnabled: captureEnabled,\n onBottomArrive: onBottomArrive,\n onBottomLeave: onBottomLeave,\n onTopArrive: onTopArrive,\n onTopLeave: onTopLeave\n });\n var setScrollLockTarget = useScrollLock({\n isEnabled: lockEnabled\n });\n\n var targetRef = function targetRef(element) {\n setScrollCaptureTarget(element);\n setScrollLockTarget(element);\n };\n\n return jsx(Fragment, null, lockEnabled && jsx(\"div\", {\n onClick: blurSelectInput,\n css: _ref2\n }), children(targetRef));\n}\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\nvar getOptionLabel$1 = function getOptionLabel(option) {\n return option.label;\n};\nvar getOptionValue$1 = function getOptionValue(option) {\n return option.value;\n};\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\n};\n\nvar defaultStyles = {\n clearIndicator: clearIndicatorCSS,\n container: containerCSS,\n control: css$1,\n dropdownIndicator: dropdownIndicatorCSS,\n group: groupCSS,\n groupHeading: groupHeadingCSS,\n indicatorsContainer: indicatorsContainerCSS,\n indicatorSeparator: indicatorSeparatorCSS,\n input: inputCSS,\n loadingIndicator: loadingIndicatorCSS,\n loadingMessage: loadingMessageCSS,\n menu: menuCSS,\n menuList: menuListCSS,\n menuPortal: menuPortalCSS,\n multiValue: multiValueCSS,\n multiValueLabel: multiValueLabelCSS,\n multiValueRemove: multiValueRemoveCSS,\n noOptionsMessage: noOptionsMessageCSS,\n option: optionCSS,\n placeholder: placeholderCSS,\n singleValue: css$2,\n valueContainer: valueContainerCSS\n}; // Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // initialize with source styles\n var styles = _objectSpread2({}, source); // massage in target styles\n\n\n Object.keys(target).forEach(function (keyAsString) {\n var key = keyAsString;\n\n if (source[key]) {\n styles[key] = function (rsCss, props) {\n return target[key](source[key](rsCss, props), props);\n };\n } else {\n styles[key] = target[key];\n }\n });\n return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\n neutral0: 'hsl(0, 0%, 100%)',\n neutral5: 'hsl(0, 0%, 95%)',\n neutral10: 'hsl(0, 0%, 90%)',\n neutral20: 'hsl(0, 0%, 80%)',\n neutral30: 'hsl(0, 0%, 70%)',\n neutral40: 'hsl(0, 0%, 60%)',\n neutral50: 'hsl(0, 0%, 50%)',\n neutral60: 'hsl(0, 0%, 40%)',\n neutral70: 'hsl(0, 0%, 30%)',\n neutral80: 'hsl(0, 0%, 20%)',\n neutral90: 'hsl(0, 0%, 10%)'\n};\nvar borderRadius = 4; // Used to calculate consistent margin/padding on elements\n\nvar baseUnit = 4; // The minimum height of the control\n\nvar controlHeight = 38; // The amount of space between the control and menu */\n\nvar menuGutter = baseUnit * 2;\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\n\nvar defaultProps = {\n 'aria-live': 'polite',\n backspaceRemovesValue: true,\n blurInputOnSelect: isTouchCapable(),\n captureMenuScroll: !isTouchCapable(),\n closeMenuOnSelect: true,\n closeMenuOnScroll: false,\n components: {},\n controlShouldRenderValue: true,\n escapeClearsValue: false,\n filterOption: createFilter(),\n formatGroupLabel: formatGroupLabel,\n getOptionLabel: getOptionLabel$1,\n getOptionValue: getOptionValue$1,\n isDisabled: false,\n isLoading: false,\n isMulti: false,\n isRtl: false,\n isSearchable: true,\n isOptionDisabled: isOptionDisabled,\n loadingMessage: function loadingMessage() {\n return 'Loading...';\n },\n maxMenuHeight: 300,\n minMenuHeight: 140,\n menuIsOpen: false,\n menuPlacement: 'bottom',\n menuPosition: 'absolute',\n menuShouldBlockScroll: false,\n menuShouldScrollIntoView: !isMobileDevice(),\n noOptionsMessage: function noOptionsMessage() {\n return 'No options';\n },\n openMenuOnFocus: false,\n openMenuOnClick: true,\n options: [],\n pageSize: 5,\n placeholder: 'Select...',\n screenReaderStatus: function screenReaderStatus(_ref) {\n var count = _ref.count;\n return \"\".concat(count, \" result\").concat(count !== 1 ? 's' : '', \" available\");\n },\n styles: {},\n tabIndex: 0,\n tabSelectsValue: true\n};\n\nfunction toCategorizedOption(props, option, selectValue, index) {\n var isDisabled = _isOptionDisabled(props, option, selectValue);\n\n var isSelected = _isOptionSelected(props, option, selectValue);\n\n var label = getOptionLabel(props, option);\n var value = getOptionValue(props, option);\n return {\n type: 'option',\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n label: label,\n value: value,\n index: index\n };\n}\n\nfunction buildCategorizedOptions(props, selectValue) {\n return props.options.map(function (groupOrOption, groupOrOptionIndex) {\n if ('options' in groupOrOption) {\n var categorizedOptions = groupOrOption.options.map(function (option, optionIndex) {\n return toCategorizedOption(props, option, selectValue, optionIndex);\n }).filter(function (categorizedOption) {\n return isFocusable(props, categorizedOption);\n });\n return categorizedOptions.length > 0 ? {\n type: 'group',\n data: groupOrOption,\n options: categorizedOptions,\n index: groupOrOptionIndex\n } : undefined;\n }\n\n var categorizedOption = toCategorizedOption(props, groupOrOption, selectValue, groupOrOptionIndex);\n return isFocusable(props, categorizedOption) ? categorizedOption : undefined;\n }).filter(notNullish);\n}\n\nfunction buildFocusableOptionsFromCategorizedOptions(categorizedOptions) {\n return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {\n if (categorizedOption.type === 'group') {\n optionsAccumulator.push.apply(optionsAccumulator, _toConsumableArray(categorizedOption.options.map(function (option) {\n return option.data;\n })));\n } else {\n optionsAccumulator.push(categorizedOption.data);\n }\n\n return optionsAccumulator;\n }, []);\n}\n\nfunction buildFocusableOptions(props, selectValue) {\n return buildFocusableOptionsFromCategorizedOptions(buildCategorizedOptions(props, selectValue));\n}\n\nfunction isFocusable(props, categorizedOption) {\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === void 0 ? '' : _props$inputValue;\n var data = categorizedOption.data,\n isSelected = categorizedOption.isSelected,\n label = categorizedOption.label,\n value = categorizedOption.value;\n return (!shouldHideSelectedOptions(props) || !isSelected) && _filterOption(props, {\n label: label,\n value: value,\n data: data\n }, inputValue);\n}\n\nfunction getNextFocusedValue(state, nextSelectValue) {\n var focusedValue = state.focusedValue,\n lastSelectValue = state.selectValue;\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n\n if (nextFocusedIndex > -1) {\n // the focused value is still in the selectValue, return it\n return focusedValue;\n } else if (lastFocusedIndex < nextSelectValue.length) {\n // the focusedValue is not present in the next selectValue array by\n // reference, so return the new value at the same index\n return nextSelectValue[lastFocusedIndex];\n }\n }\n\n return null;\n}\n\nfunction getNextFocusedOption(state, options) {\n var lastFocusedOption = state.focusedOption;\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n}\n\nvar getOptionLabel = function getOptionLabel(props, data) {\n return props.getOptionLabel(data);\n};\n\nvar getOptionValue = function getOptionValue(props, data) {\n return props.getOptionValue(data);\n};\n\nfunction _isOptionDisabled(props, option, selectValue) {\n return typeof props.isOptionDisabled === 'function' ? props.isOptionDisabled(option, selectValue) : false;\n}\n\nfunction _isOptionSelected(props, option, selectValue) {\n if (selectValue.indexOf(option) > -1) return true;\n\n if (typeof props.isOptionSelected === 'function') {\n return props.isOptionSelected(option, selectValue);\n }\n\n var candidate = getOptionValue(props, option);\n return selectValue.some(function (i) {\n return getOptionValue(props, i) === candidate;\n });\n}\n\nfunction _filterOption(props, option, inputValue) {\n return props.filterOption ? props.filterOption(option, inputValue) : true;\n}\n\nvar shouldHideSelectedOptions = function shouldHideSelectedOptions(props) {\n var hideSelectedOptions = props.hideSelectedOptions,\n isMulti = props.isMulti;\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n};\n\nvar instanceId = 1;\n\nvar Select = /*#__PURE__*/function (_Component) {\n _inherits(Select, _Component);\n\n var _super = _createSuper(Select);\n\n // Misc. Instance Properties\n // ------------------------------\n // TODO\n // Refs\n // ------------------------------\n // Lifecycle\n // ------------------------------\n function Select(_props) {\n var _this;\n\n _classCallCheck(this, Select);\n\n _this = _super.call(this, _props);\n _this.state = {\n ariaSelection: null,\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n selectValue: [],\n clearFocusValueOnUpdate: false,\n prevWasFocused: false,\n inputIsHiddenAfterUpdate: undefined,\n prevProps: undefined\n };\n _this.blockOptionHover = false;\n _this.isComposing = false;\n _this.commonProps = void 0;\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n _this.instancePrefix = '';\n _this.openAfterFocus = false;\n _this.scrollToFocusedOptionOnUpdate = false;\n _this.userIsDragging = void 0;\n _this.controlRef = null;\n\n _this.getControlRef = function (ref) {\n _this.controlRef = ref;\n };\n\n _this.focusedOptionRef = null;\n\n _this.getFocusedOptionRef = function (ref) {\n _this.focusedOptionRef = ref;\n };\n\n _this.menuListRef = null;\n\n _this.getMenuListRef = function (ref) {\n _this.menuListRef = ref;\n };\n\n _this.inputRef = null;\n\n _this.getInputRef = function (ref) {\n _this.inputRef = ref;\n };\n\n _this.focus = _this.focusInput;\n _this.blur = _this.blurInput;\n\n _this.onChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n name = _this$props.name;\n actionMeta.name = name;\n\n _this.ariaOnChange(newValue, actionMeta);\n\n onChange(newValue, actionMeta);\n };\n\n _this.setValue = function (newValue, action, option) {\n var _this$props2 = _this.props,\n closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n isMulti = _this$props2.isMulti,\n inputValue = _this$props2.inputValue;\n\n _this.onInputChange('', {\n action: 'set-value',\n prevInputValue: inputValue\n });\n\n if (closeMenuOnSelect) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n\n _this.onMenuClose();\n } // when the select value should change, we should reset focusedValue\n\n\n _this.setState({\n clearFocusValueOnUpdate: true\n });\n\n _this.onChange(newValue, {\n action: action,\n option: option\n });\n };\n\n _this.selectOption = function (newValue) {\n var _this$props3 = _this.props,\n blurInputOnSelect = _this$props3.blurInputOnSelect,\n isMulti = _this$props3.isMulti,\n name = _this$props3.name;\n var selectValue = _this.state.selectValue;\n\n var deselected = isMulti && _this.isOptionSelected(newValue, selectValue);\n\n var isDisabled = _this.isOptionDisabled(newValue, selectValue);\n\n if (deselected) {\n var candidate = _this.getOptionValue(newValue);\n\n _this.setValue(multiValueAsValue(selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n })), 'deselect-option', newValue);\n } else if (!isDisabled) {\n // Select option if option is not disabled\n if (isMulti) {\n _this.setValue(multiValueAsValue([].concat(_toConsumableArray(selectValue), [newValue])), 'select-option', newValue);\n } else {\n _this.setValue(singleValueAsValue(newValue), 'select-option');\n }\n } else {\n _this.ariaOnChange(singleValueAsValue(newValue), {\n action: 'select-option',\n option: newValue,\n name: name\n });\n\n return;\n }\n\n if (blurInputOnSelect) {\n _this.blurInput();\n }\n };\n\n _this.removeValue = function (removedValue) {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n\n var candidate = _this.getOptionValue(removedValue);\n\n var newValueArray = selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n });\n var newValue = valueTernary(isMulti, newValueArray, newValueArray[0] || null);\n\n _this.onChange(newValue, {\n action: 'remove-value',\n removedValue: removedValue\n });\n\n _this.focusInput();\n };\n\n _this.clearValue = function () {\n var selectValue = _this.state.selectValue;\n\n _this.onChange(valueTernary(_this.props.isMulti, [], null), {\n action: 'clear',\n removedValues: selectValue\n });\n };\n\n _this.popValue = function () {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n var lastSelectedValue = selectValue[selectValue.length - 1];\n var newValueArray = selectValue.slice(0, selectValue.length - 1);\n var newValue = valueTernary(isMulti, newValueArray, newValueArray[0] || null);\n\n _this.onChange(newValue, {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n };\n\n _this.getValue = function () {\n return _this.state.selectValue;\n };\n\n _this.cx = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return classNames.apply(void 0, [_this.props.classNamePrefix].concat(args));\n };\n\n _this.getOptionLabel = function (data) {\n return getOptionLabel(_this.props, data);\n };\n\n _this.getOptionValue = function (data) {\n return getOptionValue(_this.props, data);\n };\n\n _this.getStyles = function (key, props) {\n var base = defaultStyles[key](props);\n base.boxSizing = 'border-box';\n var custom = _this.props.styles[key];\n return custom ? custom(base, props) : base;\n };\n\n _this.getElementId = function (element) {\n return \"\".concat(_this.instancePrefix, \"-\").concat(element);\n };\n\n _this.getComponents = function () {\n return defaultComponents(_this.props);\n };\n\n _this.buildCategorizedOptions = function () {\n return buildCategorizedOptions(_this.props, _this.state.selectValue);\n };\n\n _this.getCategorizedOptions = function () {\n return _this.props.menuIsOpen ? _this.buildCategorizedOptions() : [];\n };\n\n _this.buildFocusableOptions = function () {\n return buildFocusableOptionsFromCategorizedOptions(_this.buildCategorizedOptions());\n };\n\n _this.getFocusableOptions = function () {\n return _this.props.menuIsOpen ? _this.buildFocusableOptions() : [];\n };\n\n _this.ariaOnChange = function (value, actionMeta) {\n _this.setState({\n ariaSelection: _objectSpread2({\n value: value\n }, actionMeta)\n });\n };\n\n _this.onMenuMouseDown = function (event) {\n if (event.button !== 0) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n _this.focusInput();\n };\n\n _this.onMenuMouseMove = function (event) {\n _this.blockOptionHover = false;\n };\n\n _this.onControlMouseDown = function (event) {\n // Event captured by dropdown indicator\n if (event.defaultPrevented) {\n return;\n }\n\n var openMenuOnClick = _this.props.openMenuOnClick;\n\n if (!_this.state.isFocused) {\n if (openMenuOnClick) {\n _this.openAfterFocus = true;\n }\n\n _this.focusInput();\n } else if (!_this.props.menuIsOpen) {\n if (openMenuOnClick) {\n _this.openMenu('first');\n }\n } else {\n if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n _this.onMenuClose();\n }\n }\n\n if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n event.preventDefault();\n }\n };\n\n _this.onDropdownIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n if (_this.props.isDisabled) return;\n var _this$props4 = _this.props,\n isMulti = _this$props4.isMulti,\n menuIsOpen = _this$props4.menuIsOpen;\n\n _this.focusInput();\n\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n\n _this.onMenuClose();\n } else {\n _this.openMenu('first');\n }\n\n event.preventDefault();\n };\n\n _this.onClearIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n _this.clearValue();\n\n event.preventDefault();\n _this.openAfterFocus = false;\n\n if (event.type === 'touchend') {\n _this.focusInput();\n } else {\n setTimeout(function () {\n return _this.focusInput();\n });\n }\n };\n\n _this.onScroll = function (event) {\n if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {\n _this.props.onMenuClose();\n }\n } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n if (_this.props.closeMenuOnScroll(event)) {\n _this.props.onMenuClose();\n }\n }\n };\n\n _this.onCompositionStart = function () {\n _this.isComposing = true;\n };\n\n _this.onCompositionEnd = function () {\n _this.isComposing = false;\n };\n\n _this.onTouchStart = function (_ref2) {\n var touches = _ref2.touches;\n var touch = touches && touches.item(0);\n\n if (!touch) {\n return;\n }\n\n _this.initialTouchX = touch.clientX;\n _this.initialTouchY = touch.clientY;\n _this.userIsDragging = false;\n };\n\n _this.onTouchMove = function (_ref3) {\n var touches = _ref3.touches;\n var touch = touches && touches.item(0);\n\n if (!touch) {\n return;\n }\n\n var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n var moveThreshold = 5;\n _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n };\n\n _this.onTouchEnd = function (event) {\n if (_this.userIsDragging) return; // close the menu if the user taps outside\n // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n // on events on child elements, not the document (which we've attached this handler to).\n\n if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n _this.blurInput();\n } // reset move vars\n\n\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n };\n\n _this.onControlTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onControlMouseDown(event);\n };\n\n _this.onClearIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onClearIndicatorMouseDown(event);\n };\n\n _this.onDropdownIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onDropdownIndicatorMouseDown(event);\n };\n\n _this.handleInputChange = function (event) {\n var prevInputValue = _this.props.inputValue;\n var inputValue = event.currentTarget.value;\n\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n\n _this.onInputChange(inputValue, {\n action: 'input-change',\n prevInputValue: prevInputValue\n });\n\n if (!_this.props.menuIsOpen) {\n _this.onMenuOpen();\n }\n };\n\n _this.onInputFocus = function (event) {\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n\n _this.setState({\n inputIsHiddenAfterUpdate: false,\n isFocused: true\n });\n\n if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n _this.openMenu('first');\n }\n\n _this.openAfterFocus = false;\n };\n\n _this.onInputBlur = function (event) {\n var prevInputValue = _this.props.inputValue;\n\n if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n _this.inputRef.focus();\n\n return;\n }\n\n if (_this.props.onBlur) {\n _this.props.onBlur(event);\n }\n\n _this.onInputChange('', {\n action: 'input-blur',\n prevInputValue: prevInputValue\n });\n\n _this.onMenuClose();\n\n _this.setState({\n focusedValue: null,\n isFocused: false\n });\n };\n\n _this.onOptionHover = function (focusedOption) {\n if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n return;\n }\n\n _this.setState({\n focusedOption: focusedOption\n });\n };\n\n _this.shouldHideSelectedOptions = function () {\n return shouldHideSelectedOptions(_this.props);\n };\n\n _this.onKeyDown = function (event) {\n var _this$props5 = _this.props,\n isMulti = _this$props5.isMulti,\n backspaceRemovesValue = _this$props5.backspaceRemovesValue,\n escapeClearsValue = _this$props5.escapeClearsValue,\n inputValue = _this$props5.inputValue,\n isClearable = _this$props5.isClearable,\n isDisabled = _this$props5.isDisabled,\n menuIsOpen = _this$props5.menuIsOpen,\n onKeyDown = _this$props5.onKeyDown,\n tabSelectsValue = _this$props5.tabSelectsValue,\n openMenuOnFocus = _this$props5.openMenuOnFocus;\n var _this$state = _this.state,\n focusedOption = _this$state.focusedOption,\n focusedValue = _this$state.focusedValue,\n selectValue = _this$state.selectValue;\n if (isDisabled) return;\n\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n\n if (event.defaultPrevented) {\n return;\n }\n } // Block option hover events when the user has just pressed a key\n\n\n _this.blockOptionHover = true;\n\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('previous');\n\n break;\n\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('next');\n\n break;\n\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n\n if (focusedValue) {\n _this.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n\n if (isMulti) {\n _this.popValue();\n } else if (isClearable) {\n _this.clearValue();\n }\n }\n\n break;\n\n case 'Tab':\n if (_this.isComposing) return;\n\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption || // don't capture the event if the menu opens on focus and the focused\n // option is already selected; it breaks the flow of navigation\n openMenuOnFocus && _this.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'Enter':\n if (event.keyCode === 229) {\n // ignore the keydown event from an Input Method Editor(IME)\n // ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n break;\n }\n\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (_this.isComposing) return;\n\n _this.selectOption(focusedOption);\n\n break;\n }\n\n return;\n\n case 'Escape':\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n\n _this.onInputChange('', {\n action: 'menu-close',\n prevInputValue: inputValue\n });\n\n _this.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this.clearValue();\n }\n\n break;\n\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n\n if (!menuIsOpen) {\n _this.openMenu('first');\n\n break;\n }\n\n if (!focusedOption) return;\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'ArrowUp':\n if (menuIsOpen) {\n _this.focusOption('up');\n } else {\n _this.openMenu('last');\n }\n\n break;\n\n case 'ArrowDown':\n if (menuIsOpen) {\n _this.focusOption('down');\n } else {\n _this.openMenu('first');\n }\n\n break;\n\n case 'PageUp':\n if (!menuIsOpen) return;\n\n _this.focusOption('pageup');\n\n break;\n\n case 'PageDown':\n if (!menuIsOpen) return;\n\n _this.focusOption('pagedown');\n\n break;\n\n case 'Home':\n if (!menuIsOpen) return;\n\n _this.focusOption('first');\n\n break;\n\n case 'End':\n if (!menuIsOpen) return;\n\n _this.focusOption('last');\n\n break;\n\n default:\n return;\n }\n\n event.preventDefault();\n };\n\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n _this.state.selectValue = cleanValue(_props.value);\n return _this;\n }\n\n _createClass(Select, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startListeningComposition();\n this.startListeningToTouch();\n\n if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n // Listen to all scroll events, and filter them out inside of 'onScroll'\n document.addEventListener('scroll', this.onScroll, true);\n }\n\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props6 = this.props,\n isDisabled = _this$props6.isDisabled,\n menuIsOpen = _this$props6.menuIsOpen;\n var isFocused = this.state.isFocused;\n\n if ( // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled || // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n }\n\n if (isFocused && isDisabled && !prevProps.isDisabled) {\n // ensure select state gets blurred in case Select is programatically disabled while focused\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n isFocused: false\n }, this.onMenuClose);\n } // scroll the focused option into view if necessary\n\n\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n this.scrollToFocusedOptionOnUpdate = false;\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n } // ==============================\n // Consumer Handlers\n // ==============================\n\n }, {\n key: \"onMenuOpen\",\n value: function onMenuOpen() {\n this.props.onMenuOpen();\n }\n }, {\n key: \"onMenuClose\",\n value: function onMenuClose() {\n this.onInputChange('', {\n action: 'menu-close',\n prevInputValue: this.props.inputValue\n });\n this.props.onMenuClose();\n }\n }, {\n key: \"onInputChange\",\n value: function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\n } // ==============================\n // Methods\n // ==============================\n\n }, {\n key: \"focusInput\",\n value: function focusInput() {\n if (!this.inputRef) return;\n this.inputRef.focus();\n }\n }, {\n key: \"blurInput\",\n value: function blurInput() {\n if (!this.inputRef) return;\n this.inputRef.blur();\n } // aliased for consumers\n\n }, {\n key: \"openMenu\",\n value: function openMenu(focusOption) {\n var _this2 = this;\n\n var _this$state2 = this.state,\n selectValue = _this$state2.selectValue,\n isFocused = _this$state2.isFocused;\n var focusableOptions = this.buildFocusableOptions();\n var openAtIndex = focusOption === 'first' ? 0 : focusableOptions.length - 1;\n\n if (!this.props.isMulti) {\n var selectedIndex = focusableOptions.indexOf(selectValue[0]);\n\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n } // only scroll if the menu isn't already open\n\n\n this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n this.setState({\n inputIsHiddenAfterUpdate: false,\n focusedValue: null,\n focusedOption: focusableOptions[openAtIndex]\n }, function () {\n return _this2.onMenuOpen();\n });\n }\n }, {\n key: \"focusValue\",\n value: function focusValue(direction) {\n var _this$state3 = this.state,\n selectValue = _this$state3.selectValue,\n focusedValue = _this$state3.focusedValue; // Only multiselects support value focusing\n\n if (!this.props.isMulti) return;\n this.setState({\n focusedOption: null\n });\n var focusedIndex = selectValue.indexOf(focusedValue);\n\n if (!focusedValue) {\n focusedIndex = -1;\n }\n\n var lastIndex = selectValue.length - 1;\n var nextFocus = -1;\n if (!selectValue.length) return;\n\n switch (direction) {\n case 'previous':\n if (focusedIndex === 0) {\n // don't cycle from the start to the end\n nextFocus = 0;\n } else if (focusedIndex === -1) {\n // if nothing is focused, focus the last value first\n nextFocus = lastIndex;\n } else {\n nextFocus = focusedIndex - 1;\n }\n\n break;\n\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n\n break;\n }\n\n this.setState({\n inputIsHidden: nextFocus !== -1,\n focusedValue: selectValue[nextFocus]\n });\n }\n }, {\n key: \"focusOption\",\n value: function focusOption() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';\n var pageSize = this.props.pageSize;\n var focusedOption = this.state.focusedOption;\n var options = this.getFocusableOptions();\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n\n var focusedIndex = options.indexOf(focusedOption);\n\n if (!focusedOption) {\n focusedIndex = -1;\n }\n\n if (direction === 'up') {\n nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n } else if (direction === 'down') {\n nextFocus = (focusedIndex + 1) % options.length;\n } else if (direction === 'pageup') {\n nextFocus = focusedIndex - pageSize;\n if (nextFocus < 0) nextFocus = 0;\n } else if (direction === 'pagedown') {\n nextFocus = focusedIndex + pageSize;\n if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n } else if (direction === 'last') {\n nextFocus = options.length - 1;\n }\n\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null\n });\n }\n }, {\n key: \"getTheme\",\n value: // ==============================\n // Getters\n // ==============================\n function getTheme() {\n // Use the default theme if there are no customizations.\n if (!this.props.theme) {\n return defaultTheme;\n } // If the theme prop is a function, assume the function\n // knows how to merge the passed-in default theme with\n // its own modifications.\n\n\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n } // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n\n\n return _objectSpread2(_objectSpread2({}, defaultTheme), this.props.theme);\n }\n }, {\n key: \"getCommonProps\",\n value: function getCommonProps() {\n var clearValue = this.clearValue,\n cx = this.cx,\n getStyles = this.getStyles,\n getValue = this.getValue,\n selectOption = this.selectOption,\n setValue = this.setValue,\n props = this.props;\n var isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var hasValue = this.hasValue();\n return {\n clearValue: clearValue,\n cx: cx,\n getStyles: getStyles,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n selectProps: props,\n setValue: setValue,\n theme: this.getTheme()\n };\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n var selectValue = this.state.selectValue;\n return selectValue.length > 0;\n }\n }, {\n key: \"hasOptions\",\n value: function hasOptions() {\n return !!this.getFocusableOptions().length;\n }\n }, {\n key: \"isClearable\",\n value: function isClearable() {\n var _this$props7 = this.props,\n isClearable = _this$props7.isClearable,\n isMulti = _this$props7.isMulti; // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n\n if (isClearable === undefined) return isMulti;\n return isClearable;\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option, selectValue) {\n return _isOptionDisabled(this.props, option, selectValue);\n }\n }, {\n key: \"isOptionSelected\",\n value: function isOptionSelected(option, selectValue) {\n return _isOptionSelected(this.props, option, selectValue);\n }\n }, {\n key: \"filterOption\",\n value: function filterOption(option, inputValue) {\n return _filterOption(this.props, option, inputValue);\n }\n }, {\n key: \"formatOptionLabel\",\n value: function formatOptionLabel(data, context) {\n if (typeof this.props.formatOptionLabel === 'function') {\n var _inputValue = this.props.inputValue;\n var _selectValue = this.state.selectValue;\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: _inputValue,\n selectValue: _selectValue\n });\n } else {\n return this.getOptionLabel(data);\n }\n }\n }, {\n key: \"formatGroupLabel\",\n value: function formatGroupLabel(data) {\n return this.props.formatGroupLabel(data);\n } // ==============================\n // Mouse Handlers\n // ==============================\n\n }, {\n key: \"startListeningComposition\",\n value: // ==============================\n // Composition Handlers\n // ==============================\n function startListeningComposition() {\n if (document && document.addEventListener) {\n document.addEventListener('compositionstart', this.onCompositionStart, false);\n document.addEventListener('compositionend', this.onCompositionEnd, false);\n }\n }\n }, {\n key: \"stopListeningComposition\",\n value: function stopListeningComposition() {\n if (document && document.removeEventListener) {\n document.removeEventListener('compositionstart', this.onCompositionStart);\n document.removeEventListener('compositionend', this.onCompositionEnd);\n }\n }\n }, {\n key: \"startListeningToTouch\",\n value: // ==============================\n // Touch Handlers\n // ==============================\n function startListeningToTouch() {\n if (document && document.addEventListener) {\n document.addEventListener('touchstart', this.onTouchStart, false);\n document.addEventListener('touchmove', this.onTouchMove, false);\n document.addEventListener('touchend', this.onTouchEnd, false);\n }\n }\n }, {\n key: \"stopListeningToTouch\",\n value: function stopListeningToTouch() {\n if (document && document.removeEventListener) {\n document.removeEventListener('touchstart', this.onTouchStart);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n }\n }, {\n key: \"renderInput\",\n value: // ==============================\n // Renderers\n // ==============================\n function renderInput() {\n var _this$props8 = this.props,\n isDisabled = _this$props8.isDisabled,\n isSearchable = _this$props8.isSearchable,\n inputId = _this$props8.inputId,\n inputValue = _this$props8.inputValue,\n tabIndex = _this$props8.tabIndex,\n form = _this$props8.form,\n menuIsOpen = _this$props8.menuIsOpen;\n\n var _this$getComponents = this.getComponents(),\n Input = _this$getComponents.Input;\n\n var _this$state4 = this.state,\n inputIsHidden = _this$state4.inputIsHidden,\n ariaSelection = _this$state4.ariaSelection;\n var commonProps = this.commonProps;\n var id = inputId || this.getElementId('input'); // aria attributes makes the JSX \"noisy\", separated for clarity\n\n var ariaAttributes = _objectSpread2(_objectSpread2(_objectSpread2({\n 'aria-autocomplete': 'list',\n 'aria-expanded': menuIsOpen,\n 'aria-haspopup': true,\n 'aria-errormessage': this.props['aria-errormessage'],\n 'aria-invalid': this.props['aria-invalid'],\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby'],\n role: 'combobox'\n }, menuIsOpen && {\n 'aria-controls': this.getElementId('listbox'),\n 'aria-owns': this.getElementId('listbox')\n }), !isSearchable && {\n 'aria-readonly': true\n }), this.hasValue() ? (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus' && {\n 'aria-describedby': this.getElementId('live-region')\n } : {\n 'aria-describedby': this.getElementId('placeholder')\n });\n\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return /*#__PURE__*/React.createElement(DummyInput, _extends({\n id: id,\n innerRef: this.getInputRef,\n onBlur: this.onInputBlur,\n onChange: noop,\n onFocus: this.onInputFocus,\n disabled: isDisabled,\n tabIndex: tabIndex,\n inputMode: \"none\",\n form: form,\n value: \"\"\n }, ariaAttributes));\n }\n\n return /*#__PURE__*/React.createElement(Input, _extends({}, commonProps, {\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n id: id,\n innerRef: this.getInputRef,\n isDisabled: isDisabled,\n isHidden: inputIsHidden,\n onBlur: this.onInputBlur,\n onChange: this.handleInputChange,\n onFocus: this.onInputFocus,\n spellCheck: \"false\",\n tabIndex: tabIndex,\n form: form,\n type: \"text\",\n value: inputValue\n }, ariaAttributes));\n }\n }, {\n key: \"renderPlaceholderOrValue\",\n value: function renderPlaceholderOrValue() {\n var _this3 = this;\n\n var _this$getComponents2 = this.getComponents(),\n MultiValue = _this$getComponents2.MultiValue,\n MultiValueContainer = _this$getComponents2.MultiValueContainer,\n MultiValueLabel = _this$getComponents2.MultiValueLabel,\n MultiValueRemove = _this$getComponents2.MultiValueRemove,\n SingleValue = _this$getComponents2.SingleValue,\n Placeholder = _this$getComponents2.Placeholder;\n\n var commonProps = this.commonProps;\n var _this$props9 = this.props,\n controlShouldRenderValue = _this$props9.controlShouldRenderValue,\n isDisabled = _this$props9.isDisabled,\n isMulti = _this$props9.isMulti,\n inputValue = _this$props9.inputValue,\n placeholder = _this$props9.placeholder;\n var _this$state5 = this.state,\n selectValue = _this$state5.selectValue,\n focusedValue = _this$state5.focusedValue,\n isFocused = _this$state5.isFocused;\n\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : /*#__PURE__*/React.createElement(Placeholder, _extends({}, commonProps, {\n key: \"placeholder\",\n isDisabled: isDisabled,\n isFocused: isFocused,\n innerProps: {\n id: this.getElementId('placeholder')\n }\n }), placeholder);\n }\n\n if (isMulti) {\n return selectValue.map(function (opt, index) {\n var isOptionFocused = opt === focusedValue;\n var key = \"\".concat(_this3.getOptionLabel(opt), \"-\").concat(_this3.getOptionValue(opt));\n return /*#__PURE__*/React.createElement(MultiValue, _extends({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isOptionFocused,\n isDisabled: isDisabled,\n key: key,\n index: index,\n removeProps: {\n onClick: function onClick() {\n return _this3.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this3.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n }\n },\n data: opt\n }), _this3.formatOptionLabel(opt, 'value'));\n });\n }\n\n if (inputValue) {\n return null;\n }\n\n var singleValue = selectValue[0];\n return /*#__PURE__*/React.createElement(SingleValue, _extends({}, commonProps, {\n data: singleValue,\n isDisabled: isDisabled\n }), this.formatOptionLabel(singleValue, 'value'));\n }\n }, {\n key: \"renderClearIndicator\",\n value: function renderClearIndicator() {\n var _this$getComponents3 = this.getComponents(),\n ClearIndicator = _this$getComponents3.ClearIndicator;\n\n var commonProps = this.commonProps;\n var _this$props10 = this.props,\n isDisabled = _this$props10.isDisabled,\n isLoading = _this$props10.isLoading;\n var isFocused = this.state.isFocused;\n\n if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n return null;\n }\n\n var innerProps = {\n onMouseDown: this.onClearIndicatorMouseDown,\n onTouchEnd: this.onClearIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(ClearIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderLoadingIndicator\",\n value: function renderLoadingIndicator() {\n var _this$getComponents4 = this.getComponents(),\n LoadingIndicator = _this$getComponents4.LoadingIndicator;\n\n var commonProps = this.commonProps;\n var _this$props11 = this.props,\n isDisabled = _this$props11.isDisabled,\n isLoading = _this$props11.isLoading;\n var isFocused = this.state.isFocused;\n if (!LoadingIndicator || !isLoading) return null;\n var innerProps = {\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(LoadingIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderIndicatorSeparator\",\n value: function renderIndicatorSeparator() {\n var _this$getComponents5 = this.getComponents(),\n DropdownIndicator = _this$getComponents5.DropdownIndicator,\n IndicatorSeparator = _this$getComponents5.IndicatorSeparator; // separator doesn't make sense without the dropdown indicator\n\n\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n return /*#__PURE__*/React.createElement(IndicatorSeparator, _extends({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderDropdownIndicator\",\n value: function renderDropdownIndicator() {\n var _this$getComponents6 = this.getComponents(),\n DropdownIndicator = _this$getComponents6.DropdownIndicator;\n\n if (!DropdownIndicator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(DropdownIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this4 = this;\n\n var _this$getComponents7 = this.getComponents(),\n Group = _this$getComponents7.Group,\n GroupHeading = _this$getComponents7.GroupHeading,\n Menu = _this$getComponents7.Menu,\n MenuList = _this$getComponents7.MenuList,\n MenuPortal = _this$getComponents7.MenuPortal,\n LoadingMessage = _this$getComponents7.LoadingMessage,\n NoOptionsMessage = _this$getComponents7.NoOptionsMessage,\n Option = _this$getComponents7.Option;\n\n var commonProps = this.commonProps;\n var focusedOption = this.state.focusedOption;\n var _this$props12 = this.props,\n captureMenuScroll = _this$props12.captureMenuScroll,\n inputValue = _this$props12.inputValue,\n isLoading = _this$props12.isLoading,\n loadingMessage = _this$props12.loadingMessage,\n minMenuHeight = _this$props12.minMenuHeight,\n maxMenuHeight = _this$props12.maxMenuHeight,\n menuIsOpen = _this$props12.menuIsOpen,\n menuPlacement = _this$props12.menuPlacement,\n menuPosition = _this$props12.menuPosition,\n menuPortalTarget = _this$props12.menuPortalTarget,\n menuShouldBlockScroll = _this$props12.menuShouldBlockScroll,\n menuShouldScrollIntoView = _this$props12.menuShouldScrollIntoView,\n noOptionsMessage = _this$props12.noOptionsMessage,\n onMenuScrollToTop = _this$props12.onMenuScrollToTop,\n onMenuScrollToBottom = _this$props12.onMenuScrollToBottom;\n if (!menuIsOpen) return null; // TODO: Internal Option Type here\n\n var render = function render(props, id) {\n var type = props.type,\n data = props.data,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected,\n label = props.label,\n value = props.value;\n var isFocused = focusedOption === data;\n var onHover = isDisabled ? undefined : function () {\n return _this4.onOptionHover(data);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this4.selectOption(data);\n };\n var optionId = \"\".concat(_this4.getElementId('option'), \"-\").concat(id);\n var innerProps = {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n tabIndex: -1\n };\n return /*#__PURE__*/React.createElement(Option, _extends({}, commonProps, {\n innerProps: innerProps,\n data: data,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: type,\n value: value,\n isFocused: isFocused,\n innerRef: isFocused ? _this4.getFocusedOptionRef : undefined\n }), _this4.formatOptionLabel(props.data, 'menu'));\n };\n\n var menuUI;\n\n if (this.hasOptions()) {\n menuUI = this.getCategorizedOptions().map(function (item) {\n if (item.type === 'group') {\n var _data = item.data,\n options = item.options,\n groupIndex = item.index;\n var groupId = \"\".concat(_this4.getElementId('group'), \"-\").concat(groupIndex);\n var headingId = \"\".concat(groupId, \"-heading\");\n return /*#__PURE__*/React.createElement(Group, _extends({}, commonProps, {\n key: groupId,\n data: _data,\n options: options,\n Heading: GroupHeading,\n headingProps: {\n id: headingId,\n data: item.data\n },\n label: _this4.formatGroupLabel(item.data)\n }), item.options.map(function (option) {\n return render(option, \"\".concat(groupIndex, \"-\").concat(option.index));\n }));\n } else if (item.type === 'option') {\n return render(item, \"\".concat(item.index));\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({\n inputValue: inputValue\n });\n if (message === null) return null;\n menuUI = /*#__PURE__*/React.createElement(LoadingMessage, commonProps, message);\n } else {\n var _message = noOptionsMessage({\n inputValue: inputValue\n });\n\n if (_message === null) return null;\n menuUI = /*#__PURE__*/React.createElement(NoOptionsMessage, commonProps, _message);\n }\n\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n var menuElement = /*#__PURE__*/React.createElement(MenuPlacer, _extends({}, commonProps, menuPlacementProps), function (_ref4) {\n var ref = _ref4.ref,\n _ref4$placerProps = _ref4.placerProps,\n placement = _ref4$placerProps.placement,\n maxHeight = _ref4$placerProps.maxHeight;\n return /*#__PURE__*/React.createElement(Menu, _extends({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this4.onMenuMouseDown,\n onMouseMove: _this4.onMenuMouseMove,\n id: _this4.getElementId('listbox')\n },\n isLoading: isLoading,\n placement: placement\n }), /*#__PURE__*/React.createElement(ScrollManager, {\n captureEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom,\n lockEnabled: menuShouldBlockScroll\n }, function (scrollTargetRef) {\n return /*#__PURE__*/React.createElement(MenuList, _extends({}, commonProps, {\n innerRef: function innerRef(instance) {\n _this4.getMenuListRef(instance);\n\n scrollTargetRef(instance);\n },\n isLoading: isLoading,\n maxHeight: maxHeight,\n focusedOption: focusedOption\n }), menuUI);\n }));\n }); // positioning behaviour is almost identical for portalled and fixed,\n // so we use the same component. the actual portalling logic is forked\n // within the component based on `menuPosition`\n\n return menuPortalTarget || menuPosition === 'fixed' ? /*#__PURE__*/React.createElement(MenuPortal, _extends({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }), menuElement) : menuElement;\n }\n }, {\n key: \"renderFormField\",\n value: function renderFormField() {\n var _this5 = this;\n\n var _this$props13 = this.props,\n delimiter = _this$props13.delimiter,\n isDisabled = _this$props13.isDisabled,\n isMulti = _this$props13.isMulti,\n name = _this$props13.name;\n var selectValue = this.state.selectValue;\n if (!name || isDisabled) return;\n\n if (isMulti) {\n if (delimiter) {\n var value = selectValue.map(function (opt) {\n return _this5.getOptionValue(opt);\n }).join(delimiter);\n return /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: value\n });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return /*#__PURE__*/React.createElement(\"input\", {\n key: \"i-\".concat(i),\n name: name,\n type: \"hidden\",\n value: _this5.getOptionValue(opt)\n });\n }) : /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\"\n });\n return /*#__PURE__*/React.createElement(\"div\", null, input);\n }\n } else {\n var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n\n return /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: _value\n });\n }\n }\n }, {\n key: \"renderLiveRegion\",\n value: function renderLiveRegion() {\n var commonProps = this.commonProps;\n var _this$state6 = this.state,\n ariaSelection = _this$state6.ariaSelection,\n focusedOption = _this$state6.focusedOption,\n focusedValue = _this$state6.focusedValue,\n isFocused = _this$state6.isFocused,\n selectValue = _this$state6.selectValue;\n var focusableOptions = this.getFocusableOptions();\n return /*#__PURE__*/React.createElement(LiveRegion, _extends({}, commonProps, {\n id: this.getElementId('live-region'),\n ariaSelection: ariaSelection,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n isFocused: isFocused,\n selectValue: selectValue,\n focusableOptions: focusableOptions\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$getComponents8 = this.getComponents(),\n Control = _this$getComponents8.Control,\n IndicatorsContainer = _this$getComponents8.IndicatorsContainer,\n SelectContainer = _this$getComponents8.SelectContainer,\n ValueContainer = _this$getComponents8.ValueContainer;\n\n var _this$props14 = this.props,\n className = _this$props14.className,\n id = _this$props14.id,\n isDisabled = _this$props14.isDisabled,\n menuIsOpen = _this$props14.menuIsOpen;\n var isFocused = this.state.isFocused;\n var commonProps = this.commonProps = this.getCommonProps();\n return /*#__PURE__*/React.createElement(SelectContainer, _extends({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }), this.renderLiveRegion(), /*#__PURE__*/React.createElement(Control, _extends({}, commonProps, {\n innerRef: this.getControlRef,\n innerProps: {\n onMouseDown: this.onControlMouseDown,\n onTouchEnd: this.onControlTouchEnd\n },\n isDisabled: isDisabled,\n isFocused: isFocused,\n menuIsOpen: menuIsOpen\n }), /*#__PURE__*/React.createElement(ValueContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderPlaceholderOrValue(), this.renderInput()), /*#__PURE__*/React.createElement(IndicatorsContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n var prevProps = state.prevProps,\n clearFocusValueOnUpdate = state.clearFocusValueOnUpdate,\n inputIsHiddenAfterUpdate = state.inputIsHiddenAfterUpdate,\n ariaSelection = state.ariaSelection,\n isFocused = state.isFocused,\n prevWasFocused = state.prevWasFocused;\n var options = props.options,\n value = props.value,\n menuIsOpen = props.menuIsOpen,\n inputValue = props.inputValue,\n isMulti = props.isMulti;\n var selectValue = cleanValue(value);\n var newMenuOptionsState = {};\n\n if (prevProps && (value !== prevProps.value || options !== prevProps.options || menuIsOpen !== prevProps.menuIsOpen || inputValue !== prevProps.inputValue)) {\n var focusableOptions = menuIsOpen ? buildFocusableOptions(props, selectValue) : [];\n var focusedValue = clearFocusValueOnUpdate ? getNextFocusedValue(state, selectValue) : null;\n var focusedOption = getNextFocusedOption(state, focusableOptions);\n newMenuOptionsState = {\n selectValue: selectValue,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n clearFocusValueOnUpdate: false\n };\n } // some updates should toggle the state of the input visibility\n\n\n var newInputIsHiddenState = inputIsHiddenAfterUpdate != null && props !== prevProps ? {\n inputIsHidden: inputIsHiddenAfterUpdate,\n inputIsHiddenAfterUpdate: undefined\n } : {};\n var newAriaSelection = ariaSelection;\n var hasKeptFocus = isFocused && prevWasFocused;\n\n if (isFocused && !hasKeptFocus) {\n // If `value` or `defaultValue` props are not empty then announce them\n // when the Select is initially focused\n newAriaSelection = {\n value: valueTernary(isMulti, selectValue, selectValue[0] || null),\n options: selectValue,\n action: 'initial-input-focus'\n };\n hasKeptFocus = !prevWasFocused;\n } // If the 'initial-input-focus' action has been set already\n // then reset the ariaSelection to null\n\n\n if ((ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus') {\n newAriaSelection = null;\n }\n\n return _objectSpread2(_objectSpread2(_objectSpread2({}, newMenuOptionsState), newInputIsHiddenState), {}, {\n prevProps: props,\n ariaSelection: newAriaSelection,\n prevWasFocused: hasKeptFocus\n });\n }\n }]);\n\n return Select;\n}(Component);\n\nSelect.defaultProps = defaultProps;\n\nexport { Select as S, getOptionLabel$1 as a, defaultProps as b, createFilter as c, defaultTheme as d, getOptionValue$1 as g, mergeStyles as m };\n","import { u as useStateManager } from './useStateManager-18181353.esm.js';\nexport { u as useStateManager } from './useStateManager-18181353.esm.js';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport { forwardRef, Component } from 'react';\nimport { S as Select } from './Select-8612393a.esm.js';\nexport { c as createFilter, d as defaultTheme, m as mergeStyles } from './Select-8612393a.esm.js';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport { _ as _createSuper } from './index-d8fed9ee.esm.js';\nexport { c as components } from './index-d8fed9ee.esm.js';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\nimport memoizeOne from 'memoize-one';\nimport '@babel/runtime/helpers/slicedToArray';\nimport '@babel/runtime/helpers/objectWithoutProperties';\nimport '@babel/runtime/helpers/toConsumableArray';\nimport '@babel/runtime/helpers/taggedTemplateLiteral';\nimport '@babel/runtime/helpers/typeof';\nimport '@babel/runtime/helpers/defineProperty';\nimport 'react-dom';\n\nvar StateManagedSelect = /*#__PURE__*/forwardRef(function (props, ref) {\n var baseSelectProps = useStateManager(props);\n return /*#__PURE__*/React.createElement(Select, _extends({\n ref: ref\n }, baseSelectProps));\n});\n\nvar NonceProvider = /*#__PURE__*/function (_Component) {\n _inherits(NonceProvider, _Component);\n\n var _super = _createSuper(NonceProvider);\n\n function NonceProvider(props) {\n var _this;\n\n _classCallCheck(this, NonceProvider);\n\n _this = _super.call(this, props);\n\n _this.createEmotionCache = function (nonce, key) {\n return createCache({\n nonce: nonce,\n key: key\n });\n };\n\n _this.createEmotionCache = memoizeOne(_this.createEmotionCache);\n return _this;\n }\n\n _createClass(NonceProvider, [{\n key: \"render\",\n value: function render() {\n var emotionCache = this.createEmotionCache(this.props.nonce, this.props.cacheKey);\n return /*#__PURE__*/React.createElement(CacheProvider, {\n value: emotionCache\n }, this.props.children);\n }\n }]);\n\n return NonceProvider;\n}(Component);\n\nexport default StateManagedSelect;\nexport { NonceProvider };\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { unstable_useEventCallback as useEventCallback } from '@mui/utils';\nexport default useEventCallback;","import * as React from 'react';\nimport useEnhancedEffect from './useEnhancedEffect';\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n */\n\nexport default function useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useCallback((...args) => // @ts-expect-error hide `this`\n // tslint:disable-next-line:ban-comma-operator\n (0, ref.current)(...args), []);\n}","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, spacing, mixins) {\n return _extends({\n toolbar: {\n minHeight: 56,\n [`${breakpoints.up('xs')} and (orientation: landscape)`]: {\n minHeight: 48\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n }\n }, mixins);\n}","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nconst _excluded = [\"mode\", \"contrastThreshold\", \"tonalOffset\"];\nimport { deepmerge } from '@mui/utils';\nimport { darken, getContrastRatio, lighten } from '@mui/system';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport purple from '../colors/purple';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport lightBlue from '../colors/lightBlue';\nimport green from '../colors/green';\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\n\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\n\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\n\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\n\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\n\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\n\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\n\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2\n } = palette,\n other = _objectWithoutPropertiesLoose(palette, _excluded);\n\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode); // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n\n return contrastText;\n }\n\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = _extends({}, color);\n\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\nThe color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });` : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n\n return color;\n };\n\n const modes = {\n dark,\n light\n };\n\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n\n const paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common,\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset\n }, modes[mode]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"];\nimport { deepmerge } from '@mui/utils';\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nexport default function createTypography(palette, typography) {\n const _ref = typeof typography === 'function' ? typography(palette) : typography,\n {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n\n const coef = fontSize / 14;\n\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}, casing, allVariants);\n\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return deepmerge(_extends({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"mixins\", \"spacing\", \"palette\", \"transitions\", \"typography\", \"shape\"];\nimport { deepmerge } from '@mui/utils';\nimport { generateUtilityClass } from '@mui/base';\nimport { createTheme as systemCreateTheme } from '@mui/system';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport createTransitions from './createTransitions';\nimport zIndex from './zIndex';\n\nfunction createTheme(options = {}, ...args) {\n const {\n mixins: mixinsInput = {},\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, systemTheme.spacing, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: _extends({}, zIndex)\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n\n const traverse = (node, component) => {\n let key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (key in node) {\n const child = node[key];\n\n if (stateClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n } // Remove the style to prevent global conflicts.\n\n\n node[key] = {};\n }\n }\n };\n\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n\n if (styleOverrides && component.indexOf('Mui') === 0) {\n traverse(styleOverrides, component);\n }\n });\n }\n\n return muiTheme;\n}\n\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n\n return createTheme(...args);\n}\nexport default createTheme;","import createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","import { unstable_useForkRef as useForkRef } from '@mui/utils';\nexport default useForkRef;","import * as React from 'react';\nimport setRef from './setRef';\nexport default function useForkRef(refA, refB) {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refA == null && refB == null) {\n return null;\n }\n\n return refValue => {\n setRef(refA, refValue);\n setRef(refB, refValue);\n };\n }, [refA, refB]);\n}","import React from 'react';\nexport default React.createContext(null);","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), 'ExpandMore');\n\nexports.default = _default;","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport default weakMemoize;\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\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'\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 (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3)\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","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 {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\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, {length: -root.length}, props)\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, 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 && characters.charCodeAt(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)\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:\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) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), 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)\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) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: 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), 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 * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\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)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {string}\n */\nexport function prefix (value, length) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// flex, flex-direction\n\t\tcase 6828: case 4268:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// (s)ticky?\n\t\t\tif (charat(value, length + 1) !== 115)\n\t\t\t\tbreak\n\t\t// display: (flex|inline-flex)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n\t\t\t\t// stic(k)y\n\t\t\t\tcase 107:\n\t\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\t\t// (inline-)?fl(e)x\n\t\t\t\tcase 101:\n\t\t\t\t\treturn replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t}\n\t\t\tbreak\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t}\n\n\t\t\treturn WEBKIT + value + MS + value + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} 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\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < 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 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: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length)\n\t\t\t\t\tbreak\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, stringify, COMMENT, rulesheet, middleware, prefixer, serialize, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar last = function last(arr) {\n return arr.length ? arr[arr.length - 1] : null;\n}; // based on https://github.com/thysultan/stylis.js/blob/e6843c373ebcbbfade25ebcc23f540ed8508da0a/src/Tokenizer.js#L239-L244\n\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return !!element && element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule') return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n var prevElement = index > 0 ? children[index - 1] : null;\n\n if (prevElement && isIgnoringComment(last(prevElement.children))) {\n return;\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if ( key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import { unstable_useControlled as useControlled } from '@mui/utils';\nexport default useControlled;","/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nlet hadFocusVisibleRecentlyTimeout;\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\n\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n\n if (node.isContentEditable) {\n return true;\n }\n\n return false;\n}\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\n\n\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n hadKeyboardEvent = true;\n}\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\n\n\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\n\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\n\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n\n try {\n return target.matches(':focus-visible');\n } catch (error) {// Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n } // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n\n\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\n\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n /**\n * Should be called if a blur event is fired\n */\n\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(() => {\n hadFocusVisibleRecently = false;\n }, 100);\n isFocusVisibleRef.current = false;\n return true;\n }\n\n return false;\n }\n /**\n * Should be called if a blur event is fired\n */\n\n\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n\n return false;\n }\n\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","import { unstable_useIsFocusVisible as useIsFocusVisible } from '@mui/utils';\nexport default useIsFocusVisible;","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export 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}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"duration\", \"easing\", \"delay\"];\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\n\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\n\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n const constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\n\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = _extends({}, easing, inputTransitions.easing);\n\n const mergedDuration = _extends({}, duration, inputTransitions.duration);\n\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string'; // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n\n\n const isNumber = value => !isNaN(parseFloat(value));\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n\n return _extends({\n getAutoHeightDuration,\n create\n }, inputTransitions, {\n easing: mergedEasing,\n duration: mergedDuration\n });\n}","import * as React from 'react';\n/**\n * @ignore - internal component.\n * @type {React.Context<{} | {expanded: boolean, disabled: boolean, toggle: () => void}>}\n */\n\nconst AccordionContext = /*#__PURE__*/React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n AccordionContext.displayName = 'AccordionContext';\n}\n\nexport default AccordionContext;","import merge from './merge';\n\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n\n return acc;\n }, {});\n };\n\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\n\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\n\nfunction getBorder(value) {\n if (typeof value !== 'number') {\n return value;\n }\n\n return `${value}px solid`;\n}\n\nexport const border = style({\n prop: 'border',\n themeKey: 'borders',\n transform: getBorder\n});\nexport const borderTop = style({\n prop: 'borderTop',\n themeKey: 'borders',\n transform: getBorder\n});\nexport const borderRight = style({\n prop: 'borderRight',\n themeKey: 'borders',\n transform: getBorder\n});\nexport const borderBottom = style({\n prop: 'borderBottom',\n themeKey: 'borders',\n transform: getBorder\n});\nexport const borderLeft = style({\n prop: 'borderLeft',\n themeKey: 'borders',\n transform: getBorder\n});\nexport const borderColor = style({\n prop: 'borderColor',\n themeKey: 'palette'\n});\nexport const borderTopColor = style({\n prop: 'borderTopColor',\n themeKey: 'palette'\n});\nexport const borderRightColor = style({\n prop: 'borderRightColor',\n themeKey: 'palette'\n});\nexport const borderBottomColor = style({\n prop: 'borderBottomColor',\n themeKey: 'palette'\n});\nexport const borderLeftColor = style({\n prop: 'borderLeftColor',\n themeKey: 'palette'\n});\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius);\nexport default borders;","import style from './style';\nimport compose from './compose';\nexport const displayPrint = style({\n prop: 'displayPrint',\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n});\nexport const displayRaw = style({\n prop: 'display'\n});\nexport const overflow = style({\n prop: 'overflow'\n});\nexport const textOverflow = style({\n prop: 'textOverflow'\n});\nexport const visibility = style({\n prop: 'visibility'\n});\nexport const whiteSpace = style({\n prop: 'whiteSpace'\n});\nexport default compose(displayPrint, displayRaw, overflow, textOverflow, visibility, whiteSpace);","import style from './style';\nimport compose from './compose';\nexport const flexBasis = style({\n prop: 'flexBasis'\n});\nexport const flexDirection = style({\n prop: 'flexDirection'\n});\nexport const flexWrap = style({\n prop: 'flexWrap'\n});\nexport const justifyContent = style({\n prop: 'justifyContent'\n});\nexport const alignItems = style({\n prop: 'alignItems'\n});\nexport const alignContent = style({\n prop: 'alignContent'\n});\nexport const order = style({\n prop: 'order'\n});\nexport const flex = style({\n prop: 'flex'\n});\nexport const flexGrow = style({\n prop: 'flexGrow'\n});\nexport const flexShrink = style({\n prop: 'flexShrink'\n});\nexport const alignSelf = style({\n prop: 'alignSelf'\n});\nexport const justifyItems = style({\n prop: 'justifyItems'\n});\nexport const justifySelf = style({\n prop: 'justifySelf'\n});\nconst flexbox = compose(flexBasis, flexDirection, flexWrap, justifyContent, alignItems, alignContent, order, flex, flexGrow, flexShrink, alignSelf, justifyItems, justifySelf);\nexport default flexbox;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport const position = style({\n prop: 'position'\n});\nexport const zIndex = style({\n prop: 'zIndex',\n themeKey: 'zIndex'\n});\nexport const top = style({\n prop: 'top'\n});\nexport const right = style({\n prop: 'right'\n});\nexport const bottom = style({\n prop: 'bottom'\n});\nexport const left = style({\n prop: 'left'\n});\nexport default compose(position, zIndex, top, right, bottom, left);","import style from './style';\nimport compose from './compose';\nexport const color = style({\n prop: 'color',\n themeKey: 'palette'\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette'\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette'\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nconst boxShadow = style({\n prop: 'boxShadow',\n themeKey: 'shadows'\n});\nexport default boxShadow;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\n\nfunction transform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\n\nexport const width = style({\n prop: 'width',\n transform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme$breakpoi, _props$theme$breakpoi2;\n\n const breakpoint = ((_props$theme = props.theme) == null ? void 0 : (_props$theme$breakpoi = _props$theme.breakpoints) == null ? void 0 : (_props$theme$breakpoi2 = _props$theme$breakpoi.values) == null ? void 0 : _props$theme$breakpoi2[propValue]) || breakpointsValues[propValue];\n return {\n maxWidth: breakpoint || transform(propValue)\n };\n };\n\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform\n});\nexport const height = style({\n prop: 'height',\n transform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import style from './style';\nimport compose from './compose';\nexport const fontFamily = style({\n prop: 'fontFamily',\n themeKey: 'typography'\n});\nexport const fontSize = style({\n prop: 'fontSize',\n themeKey: 'typography'\n});\nexport const fontStyle = style({\n prop: 'fontStyle',\n themeKey: 'typography'\n});\nexport const fontWeight = style({\n prop: 'fontWeight',\n themeKey: 'typography'\n});\nexport const letterSpacing = style({\n prop: 'letterSpacing'\n});\nexport const textTransform = style({\n prop: 'textTransform'\n});\nexport const lineHeight = style({\n prop: 'lineHeight'\n});\nexport const textAlign = style({\n prop: 'textAlign'\n});\nexport const typographyVariant = style({\n prop: 'typography',\n cssProperty: false,\n themeKey: 'typography'\n});\nconst typography = compose(typographyVariant, fontFamily, fontSize, fontStyle, fontWeight, letterSpacing, lineHeight, textAlign, textTransform);\nexport default typography;","import borders from './borders';\nimport display from './display';\nimport flexbox from './flexbox';\nimport grid from './grid';\nimport positions from './positions';\nimport palette from './palette';\nimport shadows from './shadows';\nimport sizing from './sizing';\nimport spacing from './spacing';\nimport typography from './typography';\nconst filterPropsMapping = {\n borders: borders.filterProps,\n display: display.filterProps,\n flexbox: flexbox.filterProps,\n grid: grid.filterProps,\n positions: positions.filterProps,\n palette: palette.filterProps,\n shadows: shadows.filterProps,\n sizing: sizing.filterProps,\n spacing: spacing.filterProps,\n typography: typography.filterProps\n};\nexport const styleFunctionMapping = {\n borders,\n display,\n flexbox,\n grid,\n positions,\n palette,\n shadows,\n sizing,\n spacing,\n typography\n};\nexport const propToStyleFunction = Object.keys(filterPropsMapping).reduce((acc, styleFnName) => {\n filterPropsMapping[styleFnName].forEach(propName => {\n acc[propName] = styleFunctionMapping[styleFnName];\n });\n return acc;\n}, {});\n\nfunction getThemeValue(prop, value, theme) {\n const inputProps = {\n [prop]: value,\n theme\n };\n const styleFunction = propToStyleFunction[prop];\n return styleFunction ? styleFunction(inputProps) : {\n [prop]: value\n };\n}\n\nexport default getThemeValue;","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/utils/macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe iff we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","import hoistNonReactStatics$1 from 'hoist-non-react-statics';\n\n// this file isolates this package that is not tree-shakeable\n// and if this module doesn't actually contain any logic of its own\n// then Rollup just use 'hoist-non-react-statics' directly in other chunks\n\nvar hoistNonReactStatics = (function (targetComponent, sourceComponent) {\n return hoistNonReactStatics$1(targetComponent, sourceComponent);\n});\n\nexport default hoistNonReactStatics;\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","module.exports = require(\"regenerator-runtime\");\n","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\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","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import { unstable_createChainedFunction as createChainedFunction } from '@mui/utils';\nexport default createChainedFunction;","/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getSvgIconUtilityClass(slot) {\n return generateUtilityClass('MuiSvgIcon', slot);\n}\nconst svgIconClasses = generateUtilityClasses('MuiSvgIcon', ['root', 'colorPrimary', 'colorSecondary', 'colorAction', 'colorError', 'colorDisabled', 'fontSizeInherit', 'fontSizeSmall', 'fontSizeMedium', 'fontSizeLarge']);\nexport default svgIconClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"inheritViewBox\", \"titleAccess\", \"viewBox\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getSvgIconUtilityClass } from './svgIconClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n color,\n fontSize,\n classes\n } = ownerState;\n const slots = {\n root: ['root', color !== 'inherit' && `color${capitalize(color)}`, `fontSize${capitalize(fontSize)}`]\n };\n return composeClasses(slots, getSvgIconUtilityClass, classes);\n};\n\nconst SvgIconRoot = styled('svg', {\n name: 'MuiSvgIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'inherit' && styles[`color${capitalize(ownerState.color)}`], styles[`fontSize${capitalize(ownerState.fontSize)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$transitions, _theme$transitions$cr, _theme$transitions2, _theme$transitions2$d, _theme$typography, _theme$typography$pxT, _theme$typography2, _theme$typography2$px, _theme$typography3, _theme$typography3$px, _theme$palette$ownerS, _theme$palette, _theme$palette$ownerS2, _theme$palette2, _theme$palette2$actio, _theme$palette3, _theme$palette3$actio;\n\n return {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n fill: 'currentColor',\n flexShrink: 0,\n transition: (_theme$transitions = theme.transitions) == null ? void 0 : (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', {\n duration: (_theme$transitions2 = theme.transitions) == null ? void 0 : (_theme$transitions2$d = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2$d.shorter\n }),\n fontSize: {\n inherit: 'inherit',\n small: ((_theme$typography = theme.typography) == null ? void 0 : (_theme$typography$pxT = _theme$typography.pxToRem) == null ? void 0 : _theme$typography$pxT.call(_theme$typography, 20)) || '1.25rem',\n medium: ((_theme$typography2 = theme.typography) == null ? void 0 : (_theme$typography2$px = _theme$typography2.pxToRem) == null ? void 0 : _theme$typography2$px.call(_theme$typography2, 24)) || '1.5rem',\n large: ((_theme$typography3 = theme.typography) == null ? void 0 : (_theme$typography3$px = _theme$typography3.pxToRem) == null ? void 0 : _theme$typography3$px.call(_theme$typography3, 35)) || '2.1875'\n }[ownerState.fontSize],\n // TODO v5 deprecate, v6 remove for sx\n color: (_theme$palette$ownerS = (_theme$palette = theme.palette) == null ? void 0 : (_theme$palette$ownerS2 = _theme$palette[ownerState.color]) == null ? void 0 : _theme$palette$ownerS2.main) != null ? _theme$palette$ownerS : {\n action: (_theme$palette2 = theme.palette) == null ? void 0 : (_theme$palette2$actio = _theme$palette2.action) == null ? void 0 : _theme$palette2$actio.active,\n disabled: (_theme$palette3 = theme.palette) == null ? void 0 : (_theme$palette3$actio = _theme$palette3.action) == null ? void 0 : _theme$palette3$actio.disabled,\n inherit: undefined\n }[ownerState.color]\n };\n});\nconst SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiSvgIcon'\n });\n\n const {\n children,\n className,\n color = 'inherit',\n component = 'svg',\n fontSize = 'medium',\n htmlColor,\n inheritViewBox = false,\n titleAccess,\n viewBox = '0 0 24 24'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n component,\n fontSize,\n instanceFontSize: inProps.fontSize,\n inheritViewBox,\n viewBox\n });\n\n const more = {};\n\n if (!inheritViewBox) {\n more.viewBox = viewBox;\n }\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SvgIconRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n focusable: \"false\",\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, more, other, {\n children: [children, titleAccess ? /*#__PURE__*/_jsx(\"title\", {\n children: titleAccess\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n * @default 'inherit'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['inherit', 'action', 'disabled', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n * @default 'medium'\n */\n fontSize: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['inherit', 'large', 'medium', 'small']), PropTypes.string]),\n\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n\n /**\n * If `true`, the root node will inherit the custom `component`'s viewBox and the `viewBox`\n * prop will be ignored.\n * Useful when you want to reference a custom `component` and have `SvgIcon` pass that\n * `component`'s viewBox to the root node.\n * @default false\n */\n inheritViewBox: PropTypes.bool,\n\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this prop.\n */\n shapeRendering: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n * @default '0 0 24 24'\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default SvgIcon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport SvgIcon from '../SvgIcon';\n/**\n * Private module reserved for @mui packages.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createSvgIcon(path, displayName) {\n const Component = (props, ref) => /*#__PURE__*/_jsx(SvgIcon, _extends({\n \"data-testid\": `${displayName}Icon`,\n ref: ref\n }, props, {\n children: path\n }));\n\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = `${displayName}Icon`;\n }\n\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","import { unstable_debounce as debounce } from '@mui/utils';\nexport default debounce;","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func, wait = 166) {\n let timeout;\n\n function debounced(...args) {\n const later = () => {\n func.apply(this, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n\n return debounced;\n}","import { unstable_deprecatedPropType as deprecatedPropType } from '@mui/utils';\nexport default deprecatedPropType;","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n\n return (props, propName, componentName, location, propFullName) => {\n const componentNameSafe = componentName || '<>';\n const propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The ${location} \\`${propFullNameSafe}\\` of ` + `\\`${componentNameSafe}\\` is deprecated. ${reason}`);\n }\n\n return null;\n };\n}","import { unstable_isMuiElement as isMuiElement } from '@mui/utils';\nexport default isMuiElement;","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import { unstable_ownerDocument as ownerDocument } from '@mui/utils';\nexport default ownerDocument;","import { unstable_ownerWindow as ownerWindow } from '@mui/utils';\nexport default ownerWindow;","import ownerDocument from './ownerDocument';\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}","import { unstable_requirePropFactory as requirePropFactory } from '@mui/utils';\nexport default requirePropFactory;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function requirePropFactory(componentNameInError, Component) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n } // eslint-disable-next-line react/forbid-foreign-prop-types\n\n\n const prevPropTypes = Component ? _extends({}, Component.propTypes) : null;\n\n const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {\n const propFullNameSafe = propFullName || propName;\n const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];\n\n if (defaultTypeChecker) {\n const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);\n\n if (typeCheckerResult) {\n return typeCheckerResult;\n }\n }\n\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(`The prop \\`${propFullNameSafe}\\` of ` + `\\`${componentNameInError}\\` can only be used together with the \\`${requiredProp}\\` prop.`);\n }\n\n return null;\n };\n\n return requireProp;\n}","import { unstable_setRef as setRef } from '@mui/utils';\nexport default setRef;","import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nexport default useEnhancedEffect;","import * as React from 'react';\nlet globalId = 0;\n\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n} // eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814\n\n\nconst maybeReactUseId = React['useId' + ''];\n/**\n *\n * @example
\n * @param idOverride\n * @returns {string}\n */\n\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n } // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n\n\n return useGlobalId(idOverride);\n}","import { unstable_useId as useId } from '@mui/utils';\nexport default useId;","import { unstable_unsupportedProp as unsupportedProp } from '@mui/utils';\nexport default unsupportedProp;","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n\n const propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n\n return null;\n}","import { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/base/className';\nexport { default as capitalize } from './capitalize';\nexport { default as createChainedFunction } from './createChainedFunction';\nexport { default as createSvgIcon } from './createSvgIcon';\nexport { default as debounce } from './debounce';\nexport { default as deprecatedPropType } from './deprecatedPropType';\nexport { default as isMuiElement } from './isMuiElement';\nexport { default as ownerDocument } from './ownerDocument';\nexport { default as ownerWindow } from './ownerWindow';\nexport { default as requirePropFactory } from './requirePropFactory';\nexport { default as setRef } from './setRef';\nexport { default as unstable_useEnhancedEffect } from './useEnhancedEffect';\nexport { default as unstable_useId } from './useId';\nexport { default as unsupportedProp } from './unsupportedProp';\nexport { default as useControlled } from './useControlled';\nexport { default as useEventCallback } from './useEventCallback';\nexport { default as useForkRef } from './useForkRef';\nexport { default as useIsFocusVisible } from './useIsFocusVisible'; // TODO: remove this export once ClassNameGenerator is stable\n// eslint-disable-next-line @typescript-eslint/naming-convention\n\nexport const unstable_ClassNameGenerator = {\n configure: generator => {\n console.warn(['MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.', '', \"You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead\", '', 'The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401', '', 'The updated documentation: https://mui.com/guides/classname-generator/'].join('\\n'));\n ClassNameGenerator.configure(generator);\n }\n};","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","const defaultGenerator = componentName => componentName;\n\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n\n generate(componentName) {\n return generate(componentName);\n },\n\n reset() {\n generate = defaultGenerator;\n }\n\n };\n};\n\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","import * as React from 'react';\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","/*!\n * react-filepond v7.1.1\n * A handy FilePond adapter component for React\n * \n * Copyright (c) 2021 PQINA\n * https://pqina.nl/filepond\n * \n * Licensed under the MIT license.\n */\n\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FilePond = exports.FileStatus = exports.registerPlugin = undefined;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _filepond = require('filepond');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// Import required methods and styles from the FilePond module, should not need anything else\n\n\n// We need to be able to call the registerPlugin method directly so we can add plugins\nexports.registerPlugin = _filepond.registerPlugin;\nexports.FileStatus = _filepond.FileStatus;\n\n// Do this once\n\nvar isSupported = (0, _filepond.supported)();\n\n// filtered methods\nvar filteredMethods = ['setOptions', 'on', 'off', 'onOnce', 'appendTo', 'insertAfter', 'insertBefore', 'isAttachedTo', 'replaceElement', 'restoreElement', 'destroy'];\n\n// The React wrapper\n\nvar FilePond = exports.FilePond = function (_React$Component) {\n _inherits(FilePond, _React$Component);\n\n function FilePond(props) {\n _classCallCheck(this, FilePond);\n\n var _this = _possibleConstructorReturn(this, (FilePond.__proto__ || Object.getPrototypeOf(FilePond)).call(this, props));\n\n _this.allowFilesSync = true;\n return _this;\n }\n\n // Will setup FilePond instance when mounted\n\n\n _createClass(FilePond, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n // exit here if not supported\n if (!isSupported) return;\n\n var options = Object.assign({}, this.props);\n\n // if onupdate files is defined, make sure setFiles does not cause race condition\n if (options.onupdatefiles) {\n var cb = options.onupdatefiles;\n options.onupdatefiles = function (items) {\n _this2.allowFilesSync = false;\n cb(items);\n };\n }\n\n // Create our pond\n this._pond = (0, _filepond.create)(this._element, options);\n\n // Reference pond methods to FilePond component instance\n Object.keys(this._pond).filter(function (key) {\n return !filteredMethods.includes(key);\n }).forEach(function (key) {\n _this2[key] = _this2._pond[key];\n });\n }\n\n // Will clean up FilePond instance when unmounted\n\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n // exit when no pond defined\n if (!this._pond) return;\n this._pond.destroy();\n this.allowFilesSync = true;\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n if (!this.allowFilesSync) {\n this.allowFilesSync = true;\n return false;\n }\n return true;\n }\n\n // Something changed\n\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n\n // exit when no pond defined\n if (!this._pond) return;\n\n var options = Object.assign({}, this.props);\n\n // this is only set onces, on didmount\n delete options.onupdatefiles;\n\n // update pond options based on new props\n this._pond.setOptions(options);\n }\n\n // Renders basic element hook for FilePond to attach to\n\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props = this.props,\n id = _props.id,\n name = _props.name,\n className = _props.className,\n allowMultiple = _props.allowMultiple,\n required = _props.required,\n captureMethod = _props.captureMethod,\n acceptedFileTypes = _props.acceptedFileTypes;\n\n return (0, _react.createElement)('div', { className: 'filepond--wrapper' }, (0, _react.createElement)('input', {\n type: 'file',\n name: name,\n id: id,\n accept: acceptedFileTypes,\n multiple: allowMultiple,\n required: required,\n className: className,\n capture: captureMethod,\n ref: function ref(element) {\n return _this3._element = element;\n }\n }));\n }\n }]);\n\n return FilePond;\n}(_react2.default.Component);\n\n\n","import * as React from 'react';\nconst ThemeContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\n\nexport default ThemeContext;","import * as React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n const theme = React.useContext(ThemeContext);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","import { useTheme as muiUseTheme } from '@mui/private-theming';\n\nfunction isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\nfunction useTheme(defaultTheme = null) {\n const contextTheme = muiUseTheme();\n return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;\n}\n\nexport default useTheme;","import createTheme from './createTheme';\nimport useThemeWithoutDefault from './useThemeWithoutDefault';\nexport const systemDefaultTheme = createTheme();\n\nfunction useTheme(defaultTheme = systemDefaultTheme) {\n return useThemeWithoutDefault(defaultTheme);\n}\n\nexport default useTheme;","import _formatMuiErrorMessage from \"./formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport function isPlainObject(item) {\n return item !== null && typeof item === 'object' && item.constructor === Object;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? _extends({}, target) : target;\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n\n if (isPlainObject(source[key]) && key in target && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else {\n output[key] = source[key];\n }\n });\n }\n\n return output;\n}","/** @license React v17.0.2\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=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(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 D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(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){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(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(oa,\npa);D[b]=new B(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(oa,pa);D[b]=new B(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(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(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 ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function 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 m({},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 $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(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\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(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 bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!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,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({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 vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(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}}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(y(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;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&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=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){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 Oe(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)}\nvar Pe=fa&&\"documentMode\"in document&&11>=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&&Oe(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&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;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}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)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=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(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&64))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 jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"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[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,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=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","/** @license React v17.0.2\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';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.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:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\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 = 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 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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\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","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n\nmodule.exports = _taggedTemplateLiteral;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/**\n * Copyright (c) 2014-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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\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","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\n\nvar _utils = require(\"@mui/material/utils\");","/*!\n * FilePond 4.30.3\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n\n(function(global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n ? factory(exports)\n : typeof define === 'function' && define.amd\n ? define(['exports'], factory)\n : ((global = global || self), factory((global.FilePond = {})));\n})(this, function(exports) {\n 'use strict';\n\n var isNode = function isNode(value) {\n return value instanceof HTMLElement;\n };\n\n var createStore = function createStore(initialState) {\n var queries = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var actions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n // internal state\n var state = Object.assign({}, initialState);\n\n // contains all actions for next frame, is clear when actions are requested\n var actionQueue = [];\n var dispatchQueue = [];\n\n // returns a duplicate of the current state\n var getState = function getState() {\n return Object.assign({}, state);\n };\n\n // returns a duplicate of the actions array and clears the actions array\n var processActionQueue = function processActionQueue() {\n // create copy of actions queue\n var queue = [].concat(actionQueue);\n\n // clear actions queue (we don't want no double actions)\n actionQueue.length = 0;\n\n return queue;\n };\n\n // processes actions that might block the main UI thread\n var processDispatchQueue = function processDispatchQueue() {\n // create copy of actions queue\n var queue = [].concat(dispatchQueue);\n\n // clear actions queue (we don't want no double actions)\n dispatchQueue.length = 0;\n\n // now dispatch these actions\n queue.forEach(function(_ref) {\n var type = _ref.type,\n data = _ref.data;\n dispatch(type, data);\n });\n };\n\n // adds a new action, calls its handler and\n var dispatch = function dispatch(type, data, isBlocking) {\n // is blocking action (should never block if document is hidden)\n if (isBlocking && !document.hidden) {\n dispatchQueue.push({ type: type, data: data });\n return;\n }\n\n // if this action has a handler, handle the action\n if (actionHandlers[type]) {\n actionHandlers[type](data);\n }\n\n // now add action\n actionQueue.push({\n type: type,\n data: data,\n });\n };\n\n var query = function query(str) {\n var _queryHandles;\n for (\n var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n return queryHandles[str]\n ? (_queryHandles = queryHandles)[str].apply(_queryHandles, args)\n : null;\n };\n\n var api = {\n getState: getState,\n processActionQueue: processActionQueue,\n processDispatchQueue: processDispatchQueue,\n dispatch: dispatch,\n query: query,\n };\n\n var queryHandles = {};\n queries.forEach(function(query) {\n queryHandles = Object.assign({}, query(state), {}, queryHandles);\n });\n\n var actionHandlers = {};\n actions.forEach(function(action) {\n actionHandlers = Object.assign({}, action(dispatch, query, state), {}, actionHandlers);\n });\n\n return api;\n };\n\n var defineProperty = function defineProperty(obj, property, definition) {\n if (typeof definition === 'function') {\n obj[property] = definition;\n return;\n }\n Object.defineProperty(obj, property, Object.assign({}, definition));\n };\n\n var forin = function forin(obj, cb) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) {\n continue;\n }\n\n cb(key, obj[key]);\n }\n };\n\n var createObject = function createObject(definition) {\n var obj = {};\n forin(definition, function(property) {\n defineProperty(obj, property, definition[property]);\n });\n return obj;\n };\n\n var attr = function attr(node, name) {\n var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (value === null) {\n return node.getAttribute(name) || node.hasAttribute(name);\n }\n node.setAttribute(name, value);\n };\n\n var ns = 'http://www.w3.org/2000/svg';\n var svgElements = ['svg', 'path']; // only svg elements used\n\n var isSVGElement = function isSVGElement(tag) {\n return svgElements.includes(tag);\n };\n\n var createElement = function createElement(tag, className) {\n var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (typeof className === 'object') {\n attributes = className;\n className = null;\n }\n var element = isSVGElement(tag)\n ? document.createElementNS(ns, tag)\n : document.createElement(tag);\n if (className) {\n if (isSVGElement(tag)) {\n attr(element, 'class', className);\n } else {\n element.className = className;\n }\n }\n forin(attributes, function(name, value) {\n attr(element, name, value);\n });\n return element;\n };\n\n var appendChild = function appendChild(parent) {\n return function(child, index) {\n if (typeof index !== 'undefined' && parent.children[index]) {\n parent.insertBefore(child, parent.children[index]);\n } else {\n parent.appendChild(child);\n }\n };\n };\n\n var appendChildView = function appendChildView(parent, childViews) {\n return function(view, index) {\n if (typeof index !== 'undefined') {\n childViews.splice(index, 0, view);\n } else {\n childViews.push(view);\n }\n\n return view;\n };\n };\n\n var removeChildView = function removeChildView(parent, childViews) {\n return function(view) {\n // remove from child views\n childViews.splice(childViews.indexOf(view), 1);\n\n // remove the element\n if (view.element.parentNode) {\n parent.removeChild(view.element);\n }\n\n return view;\n };\n };\n\n var IS_BROWSER = (function() {\n return typeof window !== 'undefined' && typeof window.document !== 'undefined';\n })();\n var isBrowser = function isBrowser() {\n return IS_BROWSER;\n };\n\n var testElement = isBrowser() ? createElement('svg') : {};\n var getChildCount =\n 'children' in testElement\n ? function(el) {\n return el.children.length;\n }\n : function(el) {\n return el.childNodes.length;\n };\n\n var getViewRect = function getViewRect(elementRect, childViews, offset, scale) {\n var left = offset[0] || elementRect.left;\n var top = offset[1] || elementRect.top;\n var right = left + elementRect.width;\n var bottom = top + elementRect.height * (scale[1] || 1);\n\n var rect = {\n // the rectangle of the element itself\n element: Object.assign({}, elementRect),\n\n // the rectangle of the element expanded to contain its children, does not include any margins\n inner: {\n left: elementRect.left,\n top: elementRect.top,\n right: elementRect.right,\n bottom: elementRect.bottom,\n },\n\n // the rectangle of the element expanded to contain its children including own margin and child margins\n // margins will be added after we've recalculated the size\n outer: {\n left: left,\n top: top,\n right: right,\n bottom: bottom,\n },\n };\n\n // expand rect to fit all child rectangles\n childViews\n .filter(function(childView) {\n return !childView.isRectIgnored();\n })\n .map(function(childView) {\n return childView.rect;\n })\n .forEach(function(childViewRect) {\n expandRect(rect.inner, Object.assign({}, childViewRect.inner));\n expandRect(rect.outer, Object.assign({}, childViewRect.outer));\n });\n\n // calculate inner width and height\n calculateRectSize(rect.inner);\n\n // append additional margin (top and left margins are included in top and left automatically)\n rect.outer.bottom += rect.element.marginBottom;\n rect.outer.right += rect.element.marginRight;\n\n // calculate outer width and height\n calculateRectSize(rect.outer);\n\n return rect;\n };\n\n var expandRect = function expandRect(parent, child) {\n // adjust for parent offset\n child.top += parent.top;\n child.right += parent.left;\n child.bottom += parent.top;\n child.left += parent.left;\n\n if (child.bottom > parent.bottom) {\n parent.bottom = child.bottom;\n }\n\n if (child.right > parent.right) {\n parent.right = child.right;\n }\n };\n\n var calculateRectSize = function calculateRectSize(rect) {\n rect.width = rect.right - rect.left;\n rect.height = rect.bottom - rect.top;\n };\n\n var isNumber = function isNumber(value) {\n return typeof value === 'number';\n };\n\n /**\n * Determines if position is at destination\n * @param position\n * @param destination\n * @param velocity\n * @param errorMargin\n * @returns {boolean}\n */\n var thereYet = function thereYet(position, destination, velocity) {\n var errorMargin = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.001;\n return Math.abs(position - destination) < errorMargin && Math.abs(velocity) < errorMargin;\n };\n\n /**\n * Spring animation\n */\n var spring =\n // default options\n function spring() // method definition\n {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$stiffness = _ref.stiffness,\n stiffness = _ref$stiffness === void 0 ? 0.5 : _ref$stiffness,\n _ref$damping = _ref.damping,\n damping = _ref$damping === void 0 ? 0.75 : _ref$damping,\n _ref$mass = _ref.mass,\n mass = _ref$mass === void 0 ? 10 : _ref$mass;\n var target = null;\n var position = null;\n var velocity = 0;\n var resting = false;\n\n // updates spring state\n var interpolate = function interpolate(ts, skipToEndState) {\n // in rest, don't animate\n if (resting) return;\n\n // need at least a target or position to do springy things\n if (!(isNumber(target) && isNumber(position))) {\n resting = true;\n velocity = 0;\n return;\n }\n\n // calculate spring force\n var f = -(position - target) * stiffness;\n\n // update velocity by adding force based on mass\n velocity += f / mass;\n\n // update position by adding velocity\n position += velocity;\n\n // slow down based on amount of damping\n velocity *= damping;\n\n // we've arrived if we're near target and our velocity is near zero\n if (thereYet(position, target, velocity) || skipToEndState) {\n position = target;\n velocity = 0;\n resting = true;\n\n // we done\n api.onupdate(position);\n api.oncomplete(position);\n } else {\n // progress update\n api.onupdate(position);\n }\n };\n\n /**\n * Set new target value\n * @param value\n */\n var setTarget = function setTarget(value) {\n // if currently has no position, set target and position to this value\n if (isNumber(value) && !isNumber(position)) {\n position = value;\n }\n\n // next target value will not be animated to\n if (target === null) {\n target = value;\n position = value;\n }\n\n // let start moving to target\n target = value;\n\n // already at target\n if (position === target || typeof target === 'undefined') {\n // now resting as target is current position, stop moving\n resting = true;\n velocity = 0;\n\n // done!\n api.onupdate(position);\n api.oncomplete(position);\n\n return;\n }\n\n resting = false;\n };\n\n // need 'api' to call onupdate callback\n var api = createObject({\n interpolate: interpolate,\n target: {\n set: setTarget,\n get: function get() {\n return target;\n },\n },\n\n resting: {\n get: function get() {\n return resting;\n },\n },\n\n onupdate: function onupdate(value) {},\n oncomplete: function oncomplete(value) {},\n });\n\n return api;\n };\n\n var easeLinear = function easeLinear(t) {\n return t;\n };\n var easeInOutQuad = function easeInOutQuad(t) {\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n };\n\n var tween =\n // default values\n function tween() // method definition\n {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$duration = _ref.duration,\n duration = _ref$duration === void 0 ? 500 : _ref$duration,\n _ref$easing = _ref.easing,\n easing = _ref$easing === void 0 ? easeInOutQuad : _ref$easing,\n _ref$delay = _ref.delay,\n delay = _ref$delay === void 0 ? 0 : _ref$delay;\n var start = null;\n var t;\n var p;\n var resting = true;\n var reverse = false;\n var target = null;\n\n var interpolate = function interpolate(ts, skipToEndState) {\n if (resting || target === null) return;\n\n if (start === null) {\n start = ts;\n }\n\n if (ts - start < delay) return;\n\n t = ts - start - delay;\n\n if (t >= duration || skipToEndState) {\n t = 1;\n p = reverse ? 0 : 1;\n api.onupdate(p * target);\n api.oncomplete(p * target);\n resting = true;\n } else {\n p = t / duration;\n api.onupdate((t >= 0 ? easing(reverse ? 1 - p : p) : 0) * target);\n }\n };\n\n // need 'api' to call onupdate callback\n var api = createObject({\n interpolate: interpolate,\n target: {\n get: function get() {\n return reverse ? 0 : target;\n },\n set: function set(value) {\n // is initial value\n if (target === null) {\n target = value;\n api.onupdate(value);\n api.oncomplete(value);\n return;\n }\n\n // want to tween to a smaller value and have a current value\n if (value < target) {\n target = 1;\n reverse = true;\n } else {\n // not tweening to a smaller value\n reverse = false;\n target = value;\n }\n\n // let's go!\n resting = false;\n start = null;\n },\n },\n\n resting: {\n get: function get() {\n return resting;\n },\n },\n\n onupdate: function onupdate(value) {},\n oncomplete: function oncomplete(value) {},\n });\n\n return api;\n };\n\n var animator = {\n spring: spring,\n tween: tween,\n };\n\n /*\n { type: 'spring', stiffness: .5, damping: .75, mass: 10 };\n { translation: { type: 'spring', ... }, ... }\n { translation: { x: { type: 'spring', ... } } }\n */\n var createAnimator = function createAnimator(definition, category, property) {\n // default is single definition\n // we check if transform is set, if so, we check if property is set\n var def =\n definition[category] && typeof definition[category][property] === 'object'\n ? definition[category][property]\n : definition[category] || definition;\n\n var type = typeof def === 'string' ? def : def.type;\n var props = typeof def === 'object' ? Object.assign({}, def) : {};\n\n return animator[type] ? animator[type](props) : null;\n };\n\n var addGetSet = function addGetSet(keys, obj, props) {\n var overwrite = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n obj = Array.isArray(obj) ? obj : [obj];\n obj.forEach(function(o) {\n keys.forEach(function(key) {\n var name = key;\n var getter = function getter() {\n return props[key];\n };\n var setter = function setter(value) {\n return (props[key] = value);\n };\n\n if (typeof key === 'object') {\n name = key.key;\n getter = key.getter || getter;\n setter = key.setter || setter;\n }\n\n if (o[name] && !overwrite) {\n return;\n }\n\n o[name] = {\n get: getter,\n set: setter,\n };\n });\n });\n };\n\n // add to state,\n // add getters and setters to internal and external api (if not set)\n // setup animators\n\n var animations = function animations(_ref) {\n var mixinConfig = _ref.mixinConfig,\n viewProps = _ref.viewProps,\n viewInternalAPI = _ref.viewInternalAPI,\n viewExternalAPI = _ref.viewExternalAPI;\n // initial properties\n var initialProps = Object.assign({}, viewProps);\n\n // list of all active animations\n var animations = [];\n\n // setup animators\n forin(mixinConfig, function(property, animation) {\n var animator = createAnimator(animation);\n if (!animator) {\n return;\n }\n\n // when the animator updates, update the view state value\n animator.onupdate = function(value) {\n viewProps[property] = value;\n };\n\n // set animator target\n animator.target = initialProps[property];\n\n // when value is set, set the animator target value\n var prop = {\n key: property,\n setter: function setter(value) {\n // if already at target, we done!\n if (animator.target === value) {\n return;\n }\n\n animator.target = value;\n },\n getter: function getter() {\n return viewProps[property];\n },\n };\n\n // add getters and setters\n addGetSet([prop], [viewInternalAPI, viewExternalAPI], viewProps, true);\n\n // add it to the list for easy updating from the _write method\n animations.push(animator);\n });\n\n // expose internal write api\n return {\n write: function write(ts) {\n var skipToEndState = document.hidden;\n var resting = true;\n animations.forEach(function(animation) {\n if (!animation.resting) resting = false;\n animation.interpolate(ts, skipToEndState);\n });\n return resting;\n },\n destroy: function destroy() {},\n };\n };\n\n var addEvent = function addEvent(element) {\n return function(type, fn) {\n element.addEventListener(type, fn);\n };\n };\n\n var removeEvent = function removeEvent(element) {\n return function(type, fn) {\n element.removeEventListener(type, fn);\n };\n };\n\n // mixin\n var listeners = function listeners(_ref) {\n var mixinConfig = _ref.mixinConfig,\n viewProps = _ref.viewProps,\n viewInternalAPI = _ref.viewInternalAPI,\n viewExternalAPI = _ref.viewExternalAPI,\n viewState = _ref.viewState,\n view = _ref.view;\n var events = [];\n\n var add = addEvent(view.element);\n var remove = removeEvent(view.element);\n\n viewExternalAPI.on = function(type, fn) {\n events.push({\n type: type,\n fn: fn,\n });\n\n add(type, fn);\n };\n\n viewExternalAPI.off = function(type, fn) {\n events.splice(\n events.findIndex(function(event) {\n return event.type === type && event.fn === fn;\n }),\n 1\n );\n\n remove(type, fn);\n };\n\n return {\n write: function write() {\n // not busy\n return true;\n },\n destroy: function destroy() {\n events.forEach(function(event) {\n remove(event.type, event.fn);\n });\n },\n };\n };\n\n // add to external api and link to props\n\n var apis = function apis(_ref) {\n var mixinConfig = _ref.mixinConfig,\n viewProps = _ref.viewProps,\n viewExternalAPI = _ref.viewExternalAPI;\n addGetSet(mixinConfig, viewExternalAPI, viewProps);\n };\n\n var isDefined = function isDefined(value) {\n return value != null;\n };\n\n // add to state,\n // add getters and setters to internal and external api (if not set)\n // set initial state based on props in viewProps\n // apply as transforms each frame\n\n var defaults = {\n opacity: 1,\n scaleX: 1,\n scaleY: 1,\n translateX: 0,\n translateY: 0,\n rotateX: 0,\n rotateY: 0,\n rotateZ: 0,\n originX: 0,\n originY: 0,\n };\n\n var styles = function styles(_ref) {\n var mixinConfig = _ref.mixinConfig,\n viewProps = _ref.viewProps,\n viewInternalAPI = _ref.viewInternalAPI,\n viewExternalAPI = _ref.viewExternalAPI,\n view = _ref.view;\n // initial props\n var initialProps = Object.assign({}, viewProps);\n\n // current props\n var currentProps = {};\n\n // we will add those properties to the external API and link them to the viewState\n addGetSet(mixinConfig, [viewInternalAPI, viewExternalAPI], viewProps);\n\n // override rect on internal and external rect getter so it takes in account transforms\n var getOffset = function getOffset() {\n return [viewProps['translateX'] || 0, viewProps['translateY'] || 0];\n };\n\n var getScale = function getScale() {\n return [viewProps['scaleX'] || 0, viewProps['scaleY'] || 0];\n };\n var getRect = function getRect() {\n return view.rect\n ? getViewRect(view.rect, view.childViews, getOffset(), getScale())\n : null;\n };\n viewInternalAPI.rect = { get: getRect };\n viewExternalAPI.rect = { get: getRect };\n\n // apply view props\n mixinConfig.forEach(function(key) {\n viewProps[key] =\n typeof initialProps[key] === 'undefined' ? defaults[key] : initialProps[key];\n });\n\n // expose api\n return {\n write: function write() {\n // see if props have changed\n if (!propsHaveChanged(currentProps, viewProps)) {\n return;\n }\n\n // moves element to correct position on screen\n applyStyles(view.element, viewProps);\n\n // store new transforms\n Object.assign(currentProps, Object.assign({}, viewProps));\n\n // no longer busy\n return true;\n },\n destroy: function destroy() {},\n };\n };\n\n var propsHaveChanged = function propsHaveChanged(currentProps, newProps) {\n // different amount of keys\n if (Object.keys(currentProps).length !== Object.keys(newProps).length) {\n return true;\n }\n\n // lets analyze the individual props\n for (var prop in newProps) {\n if (newProps[prop] !== currentProps[prop]) {\n return true;\n }\n }\n\n return false;\n };\n\n var applyStyles = function applyStyles(element, _ref2) {\n var opacity = _ref2.opacity,\n perspective = _ref2.perspective,\n translateX = _ref2.translateX,\n translateY = _ref2.translateY,\n scaleX = _ref2.scaleX,\n scaleY = _ref2.scaleY,\n rotateX = _ref2.rotateX,\n rotateY = _ref2.rotateY,\n rotateZ = _ref2.rotateZ,\n originX = _ref2.originX,\n originY = _ref2.originY,\n width = _ref2.width,\n height = _ref2.height;\n\n var transforms = '';\n var styles = '';\n\n // handle transform origin\n if (isDefined(originX) || isDefined(originY)) {\n styles += 'transform-origin: ' + (originX || 0) + 'px ' + (originY || 0) + 'px;';\n }\n\n // transform order is relevant\n // 0. perspective\n if (isDefined(perspective)) {\n transforms += 'perspective(' + perspective + 'px) ';\n }\n\n // 1. translate\n if (isDefined(translateX) || isDefined(translateY)) {\n transforms +=\n 'translate3d(' + (translateX || 0) + 'px, ' + (translateY || 0) + 'px, 0) ';\n }\n\n // 2. scale\n if (isDefined(scaleX) || isDefined(scaleY)) {\n transforms +=\n 'scale3d(' +\n (isDefined(scaleX) ? scaleX : 1) +\n ', ' +\n (isDefined(scaleY) ? scaleY : 1) +\n ', 1) ';\n }\n\n // 3. rotate\n if (isDefined(rotateZ)) {\n transforms += 'rotateZ(' + rotateZ + 'rad) ';\n }\n\n if (isDefined(rotateX)) {\n transforms += 'rotateX(' + rotateX + 'rad) ';\n }\n\n if (isDefined(rotateY)) {\n transforms += 'rotateY(' + rotateY + 'rad) ';\n }\n\n // add transforms\n if (transforms.length) {\n styles += 'transform:' + transforms + ';';\n }\n\n // add opacity\n if (isDefined(opacity)) {\n styles += 'opacity:' + opacity + ';';\n\n // if we reach zero, we make the element inaccessible\n if (opacity === 0) {\n styles += 'visibility:hidden;';\n }\n\n // if we're below 100% opacity this element can't be clicked\n if (opacity < 1) {\n styles += 'pointer-events:none;';\n }\n }\n\n // add height\n if (isDefined(height)) {\n styles += 'height:' + height + 'px;';\n }\n\n // add width\n if (isDefined(width)) {\n styles += 'width:' + width + 'px;';\n }\n\n // apply styles\n var elementCurrentStyle = element.elementCurrentStyle || '';\n\n // if new styles does not match current styles, lets update!\n if (styles.length !== elementCurrentStyle.length || styles !== elementCurrentStyle) {\n element.style.cssText = styles;\n // store current styles so we can compare them to new styles later on\n // _not_ getting the style value is faster\n element.elementCurrentStyle = styles;\n }\n };\n\n var Mixins = {\n styles: styles,\n listeners: listeners,\n animations: animations,\n apis: apis,\n };\n\n var updateRect = function updateRect() {\n var rect = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!element.layoutCalculated) {\n rect.paddingTop = parseInt(style.paddingTop, 10) || 0;\n rect.marginTop = parseInt(style.marginTop, 10) || 0;\n rect.marginRight = parseInt(style.marginRight, 10) || 0;\n rect.marginBottom = parseInt(style.marginBottom, 10) || 0;\n rect.marginLeft = parseInt(style.marginLeft, 10) || 0;\n element.layoutCalculated = true;\n }\n\n rect.left = element.offsetLeft || 0;\n rect.top = element.offsetTop || 0;\n rect.width = element.offsetWidth || 0;\n rect.height = element.offsetHeight || 0;\n\n rect.right = rect.left + rect.width;\n rect.bottom = rect.top + rect.height;\n\n rect.scrollTop = element.scrollTop;\n\n rect.hidden = element.offsetParent === null;\n\n return rect;\n };\n\n var createView =\n // default view definition\n function createView() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$tag = _ref.tag,\n tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n _ref$name = _ref.name,\n name = _ref$name === void 0 ? null : _ref$name,\n _ref$attributes = _ref.attributes,\n attributes = _ref$attributes === void 0 ? {} : _ref$attributes,\n _ref$read = _ref.read,\n read = _ref$read === void 0 ? function() {} : _ref$read,\n _ref$write = _ref.write,\n write = _ref$write === void 0 ? function() {} : _ref$write,\n _ref$create = _ref.create,\n create = _ref$create === void 0 ? function() {} : _ref$create,\n _ref$destroy = _ref.destroy,\n destroy = _ref$destroy === void 0 ? function() {} : _ref$destroy,\n _ref$filterFrameActio = _ref.filterFrameActionsForChild,\n filterFrameActionsForChild =\n _ref$filterFrameActio === void 0\n ? function(child, actions) {\n return actions;\n }\n : _ref$filterFrameActio,\n _ref$didCreateView = _ref.didCreateView,\n didCreateView = _ref$didCreateView === void 0 ? function() {} : _ref$didCreateView,\n _ref$didWriteView = _ref.didWriteView,\n didWriteView = _ref$didWriteView === void 0 ? function() {} : _ref$didWriteView,\n _ref$ignoreRect = _ref.ignoreRect,\n ignoreRect = _ref$ignoreRect === void 0 ? false : _ref$ignoreRect,\n _ref$ignoreRectUpdate = _ref.ignoreRectUpdate,\n ignoreRectUpdate = _ref$ignoreRectUpdate === void 0 ? false : _ref$ignoreRectUpdate,\n _ref$mixins = _ref.mixins,\n mixins = _ref$mixins === void 0 ? [] : _ref$mixins;\n return function(\n // each view requires reference to store\n store\n ) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // root element should not be changed\n var element = createElement(tag, 'filepond--' + name, attributes);\n\n // style reference should also not be changed\n var style = window.getComputedStyle(element, null);\n\n // element rectangle\n var rect = updateRect();\n var frameRect = null;\n\n // rest state\n var isResting = false;\n\n // pretty self explanatory\n var childViews = [];\n\n // loaded mixins\n var activeMixins = [];\n\n // references to created children\n var ref = {};\n\n // state used for each instance\n var state = {};\n\n // list of writers that will be called to update this view\n var writers = [\n write, // default writer\n ];\n\n var readers = [\n read, // default reader\n ];\n\n var destroyers = [\n destroy, // default destroy\n ];\n\n // core view methods\n var getElement = function getElement() {\n return element;\n };\n var getChildViews = function getChildViews() {\n return childViews.concat();\n };\n var getReference = function getReference() {\n return ref;\n };\n var createChildView = function createChildView(store) {\n return function(view, props) {\n return view(store, props);\n };\n };\n var getRect = function getRect() {\n if (frameRect) {\n return frameRect;\n }\n frameRect = getViewRect(rect, childViews, [0, 0], [1, 1]);\n return frameRect;\n };\n var getStyle = function getStyle() {\n return style;\n };\n\n /**\n * Read data from DOM\n * @private\n */\n var _read = function _read() {\n frameRect = null;\n\n // read child views\n childViews.forEach(function(child) {\n return child._read();\n });\n\n var shouldUpdate = !(ignoreRectUpdate && rect.width && rect.height);\n if (shouldUpdate) {\n updateRect(rect, element, style);\n }\n\n // readers\n var api = { root: internalAPI, props: props, rect: rect };\n readers.forEach(function(reader) {\n return reader(api);\n });\n };\n\n /**\n * Write data to DOM\n * @private\n */\n var _write = function _write(ts, frameActions, shouldOptimize) {\n // if no actions, we assume that the view is resting\n var resting = frameActions.length === 0;\n\n // writers\n writers.forEach(function(writer) {\n var writerResting = writer({\n props: props,\n root: internalAPI,\n actions: frameActions,\n timestamp: ts,\n shouldOptimize: shouldOptimize,\n });\n\n if (writerResting === false) {\n resting = false;\n }\n });\n\n // run mixins\n activeMixins.forEach(function(mixin) {\n // if one of the mixins is still busy after write operation, we are not resting\n var mixinResting = mixin.write(ts);\n if (mixinResting === false) {\n resting = false;\n }\n });\n\n // updates child views that are currently attached to the DOM\n childViews\n .filter(function(child) {\n return !!child.element.parentNode;\n })\n .forEach(function(child) {\n // if a child view is not resting, we are not resting\n var childResting = child._write(\n ts,\n filterFrameActionsForChild(child, frameActions),\n shouldOptimize\n );\n\n if (!childResting) {\n resting = false;\n }\n });\n\n // append new elements to DOM and update those\n childViews\n //.filter(child => !child.element.parentNode)\n .forEach(function(child, index) {\n // skip\n if (child.element.parentNode) {\n return;\n }\n\n // append to DOM\n internalAPI.appendChild(child.element, index);\n\n // call read (need to know the size of these elements)\n child._read();\n\n // re-call write\n child._write(\n ts,\n filterFrameActionsForChild(child, frameActions),\n shouldOptimize\n );\n\n // we just added somthing to the dom, no rest\n resting = false;\n });\n\n // update resting state\n isResting = resting;\n\n didWriteView({\n props: props,\n root: internalAPI,\n actions: frameActions,\n timestamp: ts,\n });\n\n // let parent know if we are resting\n return resting;\n };\n\n var _destroy = function _destroy() {\n activeMixins.forEach(function(mixin) {\n return mixin.destroy();\n });\n destroyers.forEach(function(destroyer) {\n destroyer({ root: internalAPI, props: props });\n });\n childViews.forEach(function(child) {\n return child._destroy();\n });\n };\n\n // sharedAPI\n var sharedAPIDefinition = {\n element: {\n get: getElement,\n },\n\n style: {\n get: getStyle,\n },\n\n childViews: {\n get: getChildViews,\n },\n };\n\n // private API definition\n var internalAPIDefinition = Object.assign({}, sharedAPIDefinition, {\n rect: {\n get: getRect,\n },\n\n // access to custom children references\n ref: {\n get: getReference,\n },\n\n // dom modifiers\n is: function is(needle) {\n return name === needle;\n },\n appendChild: appendChild(element),\n createChildView: createChildView(store),\n linkView: function linkView(view) {\n childViews.push(view);\n return view;\n },\n unlinkView: function unlinkView(view) {\n childViews.splice(childViews.indexOf(view), 1);\n },\n appendChildView: appendChildView(element, childViews),\n removeChildView: removeChildView(element, childViews),\n registerWriter: function registerWriter(writer) {\n return writers.push(writer);\n },\n registerReader: function registerReader(reader) {\n return readers.push(reader);\n },\n registerDestroyer: function registerDestroyer(destroyer) {\n return destroyers.push(destroyer);\n },\n invalidateLayout: function invalidateLayout() {\n return (element.layoutCalculated = false);\n },\n\n // access to data store\n dispatch: store.dispatch,\n query: store.query,\n });\n\n // public view API methods\n var externalAPIDefinition = {\n element: {\n get: getElement,\n },\n\n childViews: {\n get: getChildViews,\n },\n\n rect: {\n get: getRect,\n },\n\n resting: {\n get: function get() {\n return isResting;\n },\n },\n\n isRectIgnored: function isRectIgnored() {\n return ignoreRect;\n },\n _read: _read,\n _write: _write,\n _destroy: _destroy,\n };\n\n // mixin API methods\n var mixinAPIDefinition = Object.assign({}, sharedAPIDefinition, {\n rect: {\n get: function get() {\n return rect;\n },\n },\n });\n\n // add mixin functionality\n Object.keys(mixins)\n .sort(function(a, b) {\n // move styles to the back of the mixin list (so adjustments of other mixins are applied to the props correctly)\n if (a === 'styles') {\n return 1;\n } else if (b === 'styles') {\n return -1;\n }\n return 0;\n })\n .forEach(function(key) {\n var mixinAPI = Mixins[key]({\n mixinConfig: mixins[key],\n viewProps: props,\n viewState: state,\n viewInternalAPI: internalAPIDefinition,\n viewExternalAPI: externalAPIDefinition,\n view: createObject(mixinAPIDefinition),\n });\n\n if (mixinAPI) {\n activeMixins.push(mixinAPI);\n }\n });\n\n // construct private api\n var internalAPI = createObject(internalAPIDefinition);\n\n // create the view\n create({\n root: internalAPI,\n props: props,\n });\n\n // append created child views to root node\n var childCount = getChildCount(element); // need to know the current child count so appending happens in correct order\n childViews.forEach(function(child, index) {\n internalAPI.appendChild(child.element, childCount + index);\n });\n\n // call did create\n didCreateView(internalAPI);\n\n // expose public api\n return createObject(externalAPIDefinition);\n };\n };\n\n var createPainter = function createPainter(read, write) {\n var fps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 60;\n\n var name = '__framePainter';\n\n // set global painter\n if (window[name]) {\n window[name].readers.push(read);\n window[name].writers.push(write);\n return;\n }\n\n window[name] = {\n readers: [read],\n writers: [write],\n };\n\n var painter = window[name];\n\n var interval = 1000 / fps;\n var last = null;\n var id = null;\n var requestTick = null;\n var cancelTick = null;\n\n var setTimerType = function setTimerType() {\n if (document.hidden) {\n requestTick = function requestTick() {\n return window.setTimeout(function() {\n return tick(performance.now());\n }, interval);\n };\n cancelTick = function cancelTick() {\n return window.clearTimeout(id);\n };\n } else {\n requestTick = function requestTick() {\n return window.requestAnimationFrame(tick);\n };\n cancelTick = function cancelTick() {\n return window.cancelAnimationFrame(id);\n };\n }\n };\n\n document.addEventListener('visibilitychange', function() {\n if (cancelTick) cancelTick();\n setTimerType();\n tick(performance.now());\n });\n\n var tick = function tick(ts) {\n // queue next tick\n id = requestTick(tick);\n\n // limit fps\n if (!last) {\n last = ts;\n }\n\n var delta = ts - last;\n\n if (delta <= interval) {\n // skip frame\n return;\n }\n\n // align next frame\n last = ts - (delta % interval);\n\n // update view\n painter.readers.forEach(function(read) {\n return read();\n });\n painter.writers.forEach(function(write) {\n return write(ts);\n });\n };\n\n setTimerType();\n tick(performance.now());\n\n return {\n pause: function pause() {\n cancelTick(id);\n },\n };\n };\n\n var createRoute = function createRoute(routes, fn) {\n return function(_ref) {\n var root = _ref.root,\n props = _ref.props,\n _ref$actions = _ref.actions,\n actions = _ref$actions === void 0 ? [] : _ref$actions,\n timestamp = _ref.timestamp,\n shouldOptimize = _ref.shouldOptimize;\n actions\n .filter(function(action) {\n return routes[action.type];\n })\n .forEach(function(action) {\n return routes[action.type]({\n root: root,\n props: props,\n action: action.data,\n timestamp: timestamp,\n shouldOptimize: shouldOptimize,\n });\n });\n\n if (fn) {\n fn({\n root: root,\n props: props,\n actions: actions,\n timestamp: timestamp,\n shouldOptimize: shouldOptimize,\n });\n }\n };\n };\n\n var insertBefore = function insertBefore(newNode, referenceNode) {\n return referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n var insertAfter = function insertAfter(newNode, referenceNode) {\n return referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);\n };\n\n var isArray = function isArray(value) {\n return Array.isArray(value);\n };\n\n var isEmpty = function isEmpty(value) {\n return value == null;\n };\n\n var trim = function trim(str) {\n return str.trim();\n };\n\n var toString = function toString(value) {\n return '' + value;\n };\n\n var toArray = function toArray(value) {\n var splitter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';\n if (isEmpty(value)) {\n return [];\n }\n if (isArray(value)) {\n return value;\n }\n return toString(value)\n .split(splitter)\n .map(trim)\n .filter(function(str) {\n return str.length;\n });\n };\n\n var isBoolean = function isBoolean(value) {\n return typeof value === 'boolean';\n };\n\n var toBoolean = function toBoolean(value) {\n return isBoolean(value) ? value : value === 'true';\n };\n\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n\n var toNumber = function toNumber(value) {\n return isNumber(value)\n ? value\n : isString(value)\n ? toString(value).replace(/[a-z]+/gi, '')\n : 0;\n };\n\n var toInt = function toInt(value) {\n return parseInt(toNumber(value), 10);\n };\n\n var toFloat = function toFloat(value) {\n return parseFloat(toNumber(value));\n };\n\n var isInt = function isInt(value) {\n return isNumber(value) && isFinite(value) && Math.floor(value) === value;\n };\n\n var toBytes = function toBytes(value) {\n var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n // is in bytes\n if (isInt(value)) {\n return value;\n }\n\n // is natural file size\n var naturalFileSize = toString(value).trim();\n\n // if is value in megabytes\n if (/MB$/i.test(naturalFileSize)) {\n naturalFileSize = naturalFileSize.replace(/MB$i/, '').trim();\n return toInt(naturalFileSize) * base * base;\n }\n\n // if is value in kilobytes\n if (/KB/i.test(naturalFileSize)) {\n naturalFileSize = naturalFileSize.replace(/KB$i/, '').trim();\n return toInt(naturalFileSize) * base;\n }\n\n return toInt(naturalFileSize);\n };\n\n var isFunction = function isFunction(value) {\n return typeof value === 'function';\n };\n\n var toFunctionReference = function toFunctionReference(string) {\n var ref = self;\n var levels = string.split('.');\n var level = null;\n while ((level = levels.shift())) {\n ref = ref[level];\n if (!ref) {\n return null;\n }\n }\n return ref;\n };\n\n var methods = {\n process: 'POST',\n patch: 'PATCH',\n revert: 'DELETE',\n fetch: 'GET',\n restore: 'GET',\n load: 'GET',\n };\n\n var createServerAPI = function createServerAPI(outline) {\n var api = {};\n\n api.url = isString(outline) ? outline : outline.url || '';\n api.timeout = outline.timeout ? parseInt(outline.timeout, 10) : 0;\n api.headers = outline.headers ? outline.headers : {};\n\n forin(methods, function(key) {\n api[key] = createAction(key, outline[key], methods[key], api.timeout, api.headers);\n });\n\n // remove process if no url or process on outline\n api.process = outline.process || isString(outline) || outline.url ? api.process : null;\n\n // special treatment for remove\n api.remove = outline.remove || null;\n\n // remove generic headers from api object\n delete api.headers;\n\n return api;\n };\n\n var createAction = function createAction(name, outline, method, timeout, headers) {\n // is explicitely set to null so disable\n if (outline === null) {\n return null;\n }\n\n // if is custom function, done! Dev handles everything.\n if (typeof outline === 'function') {\n return outline;\n }\n\n // build action object\n var action = {\n url: method === 'GET' || method === 'PATCH' ? '?' + name + '=' : '',\n method: method,\n headers: headers,\n withCredentials: false,\n timeout: timeout,\n onload: null,\n ondata: null,\n onerror: null,\n };\n\n // is a single url\n if (isString(outline)) {\n action.url = outline;\n return action;\n }\n\n // overwrite\n Object.assign(action, outline);\n\n // see if should reformat headers;\n if (isString(action.headers)) {\n var parts = action.headers.split(/:(.+)/);\n action.headers = {\n header: parts[0],\n value: parts[1],\n };\n }\n\n // if is bool withCredentials\n action.withCredentials = toBoolean(action.withCredentials);\n\n return action;\n };\n\n var toServerAPI = function toServerAPI(value) {\n return createServerAPI(value);\n };\n\n var isNull = function isNull(value) {\n return value === null;\n };\n\n var isObject = function isObject(value) {\n return typeof value === 'object' && value !== null;\n };\n\n var isAPI = function isAPI(value) {\n return (\n isObject(value) &&\n isString(value.url) &&\n isObject(value.process) &&\n isObject(value.revert) &&\n isObject(value.restore) &&\n isObject(value.fetch)\n );\n };\n\n var getType = function getType(value) {\n if (isArray(value)) {\n return 'array';\n }\n\n if (isNull(value)) {\n return 'null';\n }\n\n if (isInt(value)) {\n return 'int';\n }\n\n if (/^[0-9]+ ?(?:GB|MB|KB)$/gi.test(value)) {\n return 'bytes';\n }\n\n if (isAPI(value)) {\n return 'api';\n }\n\n return typeof value;\n };\n\n var replaceSingleQuotes = function replaceSingleQuotes(str) {\n return str\n .replace(/{\\s*'/g, '{\"')\n .replace(/'\\s*}/g, '\"}')\n .replace(/'\\s*:/g, '\":')\n .replace(/:\\s*'/g, ':\"')\n .replace(/,\\s*'/g, ',\"')\n .replace(/'\\s*,/g, '\",');\n };\n\n var conversionTable = {\n array: toArray,\n boolean: toBoolean,\n int: function int(value) {\n return getType(value) === 'bytes' ? toBytes(value) : toInt(value);\n },\n number: toFloat,\n float: toFloat,\n bytes: toBytes,\n string: function string(value) {\n return isFunction(value) ? value : toString(value);\n },\n function: function _function(value) {\n return toFunctionReference(value);\n },\n serverapi: toServerAPI,\n object: function object(value) {\n try {\n return JSON.parse(replaceSingleQuotes(value));\n } catch (e) {\n return null;\n }\n },\n };\n\n var convertTo = function convertTo(value, type) {\n return conversionTable[type](value);\n };\n\n var getValueByType = function getValueByType(newValue, defaultValue, valueType) {\n // can always assign default value\n if (newValue === defaultValue) {\n return newValue;\n }\n\n // get the type of the new value\n var newValueType = getType(newValue);\n\n // is valid type?\n if (newValueType !== valueType) {\n // is string input, let's attempt to convert\n var convertedValue = convertTo(newValue, valueType);\n\n // what is the type now\n newValueType = getType(convertedValue);\n\n // no valid conversions found\n if (convertedValue === null) {\n throw 'Trying to assign value with incorrect type to \"' +\n option +\n '\", allowed type: \"' +\n valueType +\n '\"';\n } else {\n newValue = convertedValue;\n }\n }\n\n // assign new value\n return newValue;\n };\n\n var createOption = function createOption(defaultValue, valueType) {\n var currentValue = defaultValue;\n return {\n enumerable: true,\n get: function get() {\n return currentValue;\n },\n set: function set(newValue) {\n currentValue = getValueByType(newValue, defaultValue, valueType);\n },\n };\n };\n\n var createOptions = function createOptions(options) {\n var obj = {};\n forin(options, function(prop) {\n var optionDefinition = options[prop];\n obj[prop] = createOption(optionDefinition[0], optionDefinition[1]);\n });\n return createObject(obj);\n };\n\n var createInitialState = function createInitialState(options) {\n return {\n // model\n items: [],\n\n // timeout used for calling update items\n listUpdateTimeout: null,\n\n // timeout used for stacking metadata updates\n itemUpdateTimeout: null,\n\n // queue of items waiting to be processed\n processingQueue: [],\n\n // options\n options: createOptions(options),\n };\n };\n\n var fromCamels = function fromCamels(string) {\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '-';\n return string\n .split(/(?=[A-Z])/)\n .map(function(part) {\n return part.toLowerCase();\n })\n .join(separator);\n };\n\n var createOptionAPI = function createOptionAPI(store, options) {\n var obj = {};\n forin(options, function(key) {\n obj[key] = {\n get: function get() {\n return store.getState().options[key];\n },\n set: function set(value) {\n store.dispatch('SET_' + fromCamels(key, '_').toUpperCase(), {\n value: value,\n });\n },\n };\n });\n return obj;\n };\n\n var createOptionActions = function createOptionActions(options) {\n return function(dispatch, query, state) {\n var obj = {};\n forin(options, function(key) {\n var name = fromCamels(key, '_').toUpperCase();\n\n obj['SET_' + name] = function(action) {\n try {\n state.options[key] = action.value;\n } catch (e) {} // nope, failed\n\n // we successfully set the value of this option\n dispatch('DID_SET_' + name, { value: state.options[key] });\n };\n });\n return obj;\n };\n };\n\n var createOptionQueries = function createOptionQueries(options) {\n return function(state) {\n var obj = {};\n forin(options, function(key) {\n obj['GET_' + fromCamels(key, '_').toUpperCase()] = function(action) {\n return state.options[key];\n };\n });\n return obj;\n };\n };\n\n var InteractionMethod = {\n API: 1,\n DROP: 2,\n BROWSE: 3,\n PASTE: 4,\n NONE: 5,\n };\n\n var getUniqueId = function getUniqueId() {\n return Math.random()\n .toString(36)\n .substr(2, 9);\n };\n\n function _typeof(obj) {\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 &&\n typeof Symbol === 'function' &&\n obj.constructor === Symbol &&\n obj !== Symbol.prototype\n ? 'symbol'\n : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n var REACT_ELEMENT_TYPE;\n\n function _jsx(type, props, key, children) {\n if (!REACT_ELEMENT_TYPE) {\n REACT_ELEMENT_TYPE =\n (typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element')) ||\n 0xeac7;\n }\n\n var defaultProps = type && type.defaultProps;\n var childrenLength = arguments.length - 3;\n\n if (!props && childrenLength !== 0) {\n props = {\n children: void 0,\n };\n }\n\n if (props && defaultProps) {\n for (var propName in defaultProps) {\n if (props[propName] === void 0) {\n props[propName] = defaultProps[propName];\n }\n }\n } else if (!props) {\n props = defaultProps || {};\n }\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = new Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 3];\n }\n\n props.children = childArray;\n }\n\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key === undefined ? null : '' + key,\n ref: null,\n props: props,\n _owner: null,\n };\n }\n\n function _asyncIterator(iterable) {\n var method;\n\n if (typeof Symbol !== 'undefined') {\n if (Symbol.asyncIterator) {\n method = iterable[Symbol.asyncIterator];\n if (method != null) return method.call(iterable);\n }\n\n if (Symbol.iterator) {\n method = iterable[Symbol.iterator];\n if (method != null) return method.call(iterable);\n }\n }\n\n throw new TypeError('Object is not async iterable');\n }\n\n function _AwaitValue(value) {\n this.wrapped = value;\n }\n\n function _AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function(resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null,\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg);\n var value = result.value;\n var wrappedAwait = value instanceof _AwaitValue;\n Promise.resolve(wrappedAwait ? value.wrapped : value).then(\n function(arg) {\n if (wrappedAwait) {\n resume('next', arg);\n return;\n }\n\n settle(result.done ? 'return' : 'normal', arg);\n },\n function(err) {\n resume('throw', err);\n }\n );\n } catch (err) {\n settle('throw', err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case 'return':\n front.resolve({\n value: value,\n done: true,\n });\n break;\n\n case 'throw':\n front.reject(value);\n break;\n\n default:\n front.resolve({\n value: value,\n done: false,\n });\n break;\n }\n\n front = front.next;\n\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n if (typeof gen.return !== 'function') {\n this.return = undefined;\n }\n }\n\n if (typeof Symbol === 'function' && Symbol.asyncIterator) {\n _AsyncGenerator.prototype[Symbol.asyncIterator] = function() {\n return this;\n };\n }\n\n _AsyncGenerator.prototype.next = function(arg) {\n return this._invoke('next', arg);\n };\n\n _AsyncGenerator.prototype.throw = function(arg) {\n return this._invoke('throw', arg);\n };\n\n _AsyncGenerator.prototype.return = function(arg) {\n return this._invoke('return', arg);\n };\n\n function _wrapAsyncGenerator(fn) {\n return function() {\n return new _AsyncGenerator(fn.apply(this, arguments));\n };\n }\n\n function _awaitAsyncGenerator(value) {\n return new _AwaitValue(value);\n }\n\n function _asyncGeneratorDelegate(inner, awaitWrap) {\n var iter = {},\n waiting = false;\n\n function pump(key, value) {\n waiting = true;\n value = new Promise(function(resolve) {\n resolve(inner[key](value));\n });\n return {\n done: false,\n value: awaitWrap(value),\n };\n }\n\n if (typeof Symbol === 'function' && Symbol.iterator) {\n iter[Symbol.iterator] = function() {\n return this;\n };\n }\n\n iter.next = function(value) {\n if (waiting) {\n waiting = false;\n return value;\n }\n\n return pump('next', value);\n };\n\n if (typeof inner.throw === 'function') {\n iter.throw = function(value) {\n if (waiting) {\n waiting = false;\n throw value;\n }\n\n return pump('throw', value);\n };\n }\n\n if (typeof inner.return === 'function') {\n iter.return = function(value) {\n return pump('return', value);\n };\n }\n\n return iter;\n }\n\n function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n }\n\n function _asyncToGenerator(fn) {\n return function() {\n var self = this,\n args = arguments;\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, 'next', value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, 'throw', err);\n }\n\n _next(undefined);\n });\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _defineEnumerableProperties(obj, descs) {\n for (var key in descs) {\n var desc = descs[key];\n desc.configurable = desc.enumerable = true;\n if ('value' in desc) desc.writable = true;\n Object.defineProperty(obj, key, desc);\n }\n\n if (Object.getOwnPropertySymbols) {\n var objectSymbols = Object.getOwnPropertySymbols(descs);\n\n for (var i = 0; i < objectSymbols.length; i++) {\n var sym = objectSymbols[i];\n var desc = descs[sym];\n desc.configurable = desc.enumerable = true;\n if ('value' in desc) desc.writable = true;\n Object.defineProperty(obj, sym, desc);\n }\n }\n\n return obj;\n }\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true,\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _extends() {\n _extends =\n Object.assign ||\n 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\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(\n Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n })\n );\n }\n\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n }\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _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(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(source).forEach(function(key) {\n Object.defineProperty(\n target,\n key,\n Object.getOwnPropertyDescriptor(source, key)\n );\n });\n }\n }\n\n return target;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function');\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true,\n },\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf\n ? Object.getPrototypeOf\n : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf =\n Object.setPrototypeOf ||\n function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function isNativeReflectConstruct() {\n if (typeof Reflect === 'undefined' || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === 'function') return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n }\n\n function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf('[native code]') !== -1;\n }\n\n function _wrapNativeSuper(Class) {\n var _cache = typeof Map === 'function' ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== 'function') {\n throw new TypeError('Super expression must either be null or a function');\n }\n\n if (typeof _cache !== 'undefined') {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n }\n\n function _instanceof(left, right) {\n if (right != null && typeof Symbol !== 'undefined' && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n }\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule\n ? obj\n : {\n default: obj,\n };\n }\n\n function _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc =\n Object.defineProperty && Object.getOwnPropertyDescriptor\n ? Object.getOwnPropertyDescriptor(obj, key)\n : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n }\n\n function _newArrowCheck(innerThis, boundThis) {\n if (innerThis !== boundThis) {\n throw new TypeError('Cannot instantiate an arrow function');\n }\n }\n\n function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError('Cannot destructure undefined');\n }\n\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\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\n function _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\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === 'object' || typeof call === 'function')) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== 'undefined' && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function set(target, property, value, receiver) {\n if (typeof Reflect !== 'undefined' && Reflect.set) {\n set = Reflect.set;\n } else {\n set = function set(target, property, value, receiver) {\n var base = _superPropBase(target, property);\n\n var desc;\n\n if (base) {\n desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.set) {\n desc.set.call(receiver, value);\n return true;\n } else if (!desc.writable) {\n return false;\n }\n }\n\n desc = Object.getOwnPropertyDescriptor(receiver, property);\n\n if (desc) {\n if (!desc.writable) {\n return false;\n }\n\n desc.value = value;\n Object.defineProperty(receiver, property, desc);\n } else {\n _defineProperty(receiver, property, value);\n }\n\n return true;\n };\n }\n\n return set(target, property, value, receiver);\n }\n\n function _set(target, property, value, receiver, isStrict) {\n var s = set(target, property, value, receiver || target);\n\n if (!s && isStrict) {\n throw new Error('failed to set property');\n }\n\n return value;\n }\n\n function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(\n Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw),\n },\n })\n );\n }\n\n function _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n strings.raw = raw;\n return strings;\n }\n\n function _temporalRef(val, name) {\n if (val === _temporalUndefined) {\n throw new ReferenceError(name + ' is not defined - temporal dead zone');\n } else {\n return val;\n }\n }\n\n function _readOnlyError(name) {\n throw new Error('\"' + name + '\" is read-only');\n }\n\n function _classNameTDZError(name) {\n throw new Error('Class \"' + name + '\" cannot be referenced in computed property keys.');\n }\n\n var _temporalUndefined = {};\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n }\n\n function _slicedToArrayLoose(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimitLoose(arr, i) || _nonIterableRest();\n }\n\n function _toArray(arr) {\n return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest();\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArray(iter) {\n if (\n Symbol.iterator in Object(iter) ||\n Object.prototype.toString.call(iter) === '[object Arguments]'\n )\n return Array.from(iter);\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i['return'] != null) _i['return']();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _iterableToArrayLimitLoose(arr, i) {\n var _arr = [];\n\n for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done; ) {\n _arr.push(_step.value);\n\n if (i && _arr.length === i) break;\n }\n\n return _arr;\n }\n\n function _nonIterableSpread() {\n throw new TypeError('Invalid attempt to spread non-iterable instance');\n }\n\n function _nonIterableRest() {\n throw new TypeError('Invalid attempt to destructure non-iterable instance');\n }\n\n function _skipFirstGeneratorNext(fn) {\n return function() {\n var it = fn.apply(this, arguments);\n it.next();\n return it;\n };\n }\n\n function _toPrimitive(input, hint) {\n if (typeof input !== 'object' || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n\n if (prim !== undefined) {\n var res = prim.call(input, hint || 'default');\n if (typeof res !== 'object') return res;\n throw new TypeError('@@toPrimitive must return a primitive value.');\n }\n\n return (hint === 'string' ? String : Number)(input);\n }\n\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, 'string');\n\n return typeof key === 'symbol' ? key : String(key);\n }\n\n function _initializerWarningHelper(descriptor, context) {\n throw new Error(\n 'Decorating class property failed. Please ensure that ' +\n 'proposal-class-properties is enabled and set to use loose mode. ' +\n 'To use proposal-class-properties in spec mode with decorators, wait for ' +\n 'the next major version of decorators in stage 2.'\n );\n }\n\n function _initializerDefineProperty(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0,\n });\n }\n\n function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object.keys(descriptor).forEach(function(key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators\n .slice()\n .reverse()\n .reduce(function(desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object.defineProperty(target, property, desc);\n desc = null;\n }\n\n return desc;\n }\n\n var id = 0;\n\n function _classPrivateFieldLooseKey(name) {\n return '__private_' + id++ + '_' + name;\n }\n\n function _classPrivateFieldLooseBase(receiver, privateKey) {\n if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {\n throw new TypeError('attempted to use private field on non-instance');\n }\n\n return receiver;\n }\n\n function _classPrivateFieldGet(receiver, privateMap) {\n var descriptor = privateMap.get(receiver);\n\n if (!descriptor) {\n throw new TypeError('attempted to get private field on non-instance');\n }\n\n if (descriptor.get) {\n return descriptor.get.call(receiver);\n }\n\n return descriptor.value;\n }\n\n function _classPrivateFieldSet(receiver, privateMap, value) {\n var descriptor = privateMap.get(receiver);\n\n if (!descriptor) {\n throw new TypeError('attempted to set private field on non-instance');\n }\n\n if (descriptor.set) {\n descriptor.set.call(receiver, value);\n } else {\n if (!descriptor.writable) {\n throw new TypeError('attempted to set read only private field');\n }\n\n descriptor.value = value;\n }\n\n return value;\n }\n\n function _classPrivateFieldDestructureSet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError('attempted to set private field on non-instance');\n }\n\n var descriptor = privateMap.get(receiver);\n\n if (descriptor.set) {\n if (!('__destrObj' in descriptor)) {\n descriptor.__destrObj = {\n set value(v) {\n descriptor.set.call(receiver, v);\n },\n };\n }\n\n return descriptor.__destrObj;\n } else {\n if (!descriptor.writable) {\n throw new TypeError('attempted to set read only private field');\n }\n\n return descriptor;\n }\n }\n\n function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) {\n if (receiver !== classConstructor) {\n throw new TypeError('Private static access of wrong provenance');\n }\n\n return descriptor.value;\n }\n\n function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) {\n if (receiver !== classConstructor) {\n throw new TypeError('Private static access of wrong provenance');\n }\n\n if (!descriptor.writable) {\n throw new TypeError('attempted to set read only private field');\n }\n\n descriptor.value = value;\n return value;\n }\n\n function _classStaticPrivateMethodGet(receiver, classConstructor, method) {\n if (receiver !== classConstructor) {\n throw new TypeError('Private static access of wrong provenance');\n }\n\n return method;\n }\n\n function _classStaticPrivateMethodSet() {\n throw new TypeError('attempted to set read only static private field');\n }\n\n function _decorate(decorators, factory, superClass, mixins) {\n var api = _getDecoratorsApi();\n\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n api = mixins[i](api);\n }\n }\n\n var r = factory(function initialize(O) {\n api.initializeInstanceElements(O, decorated.elements);\n }, superClass);\n var decorated = api.decorateClass(\n _coalesceClassElements(r.d.map(_createElementDescriptor)),\n decorators\n );\n api.initializeClassElements(r.F, decorated.elements);\n return api.runClassFinishers(r.F, decorated.finishers);\n }\n\n function _getDecoratorsApi() {\n _getDecoratorsApi = function() {\n return api;\n };\n\n var api = {\n elementsDefinitionOrder: [['method'], ['field']],\n initializeInstanceElements: function(O, elements) {\n ['method', 'field'].forEach(function(kind) {\n elements.forEach(function(element) {\n if (element.kind === kind && element.placement === 'own') {\n this.defineClassElement(O, element);\n }\n }, this);\n }, this);\n },\n initializeClassElements: function(F, elements) {\n var proto = F.prototype;\n ['method', 'field'].forEach(function(kind) {\n elements.forEach(function(element) {\n var placement = element.placement;\n\n if (\n element.kind === kind &&\n (placement === 'static' || placement === 'prototype')\n ) {\n var receiver = placement === 'static' ? F : proto;\n this.defineClassElement(receiver, element);\n }\n }, this);\n }, this);\n },\n defineClassElement: function(receiver, element) {\n var descriptor = element.descriptor;\n\n if (element.kind === 'field') {\n var initializer = element.initializer;\n descriptor = {\n enumerable: descriptor.enumerable,\n writable: descriptor.writable,\n configurable: descriptor.configurable,\n value: initializer === void 0 ? void 0 : initializer.call(receiver),\n };\n }\n\n Object.defineProperty(receiver, element.key, descriptor);\n },\n decorateClass: function(elements, decorators) {\n var newElements = [];\n var finishers = [];\n var placements = {\n static: [],\n prototype: [],\n own: [],\n };\n elements.forEach(function(element) {\n this.addElementPlacement(element, placements);\n }, this);\n elements.forEach(function(element) {\n if (!_hasDecorators(element)) return newElements.push(element);\n var elementFinishersExtras = this.decorateElement(element, placements);\n newElements.push(elementFinishersExtras.element);\n newElements.push.apply(newElements, elementFinishersExtras.extras);\n finishers.push.apply(finishers, elementFinishersExtras.finishers);\n }, this);\n\n if (!decorators) {\n return {\n elements: newElements,\n finishers: finishers,\n };\n }\n\n var result = this.decorateConstructor(newElements, decorators);\n finishers.push.apply(finishers, result.finishers);\n result.finishers = finishers;\n return result;\n },\n addElementPlacement: function(element, placements, silent) {\n var keys = placements[element.placement];\n\n if (!silent && keys.indexOf(element.key) !== -1) {\n throw new TypeError('Duplicated element (' + element.key + ')');\n }\n\n keys.push(element.key);\n },\n decorateElement: function(element, placements) {\n var extras = [];\n var finishers = [];\n\n for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) {\n var keys = placements[element.placement];\n keys.splice(keys.indexOf(element.key), 1);\n var elementObject = this.fromElementDescriptor(element);\n var elementFinisherExtras = this.toElementFinisherExtras(\n (0, decorators[i])(elementObject) || elementObject\n );\n element = elementFinisherExtras.element;\n this.addElementPlacement(element, placements);\n\n if (elementFinisherExtras.finisher) {\n finishers.push(elementFinisherExtras.finisher);\n }\n\n var newExtras = elementFinisherExtras.extras;\n\n if (newExtras) {\n for (var j = 0; j < newExtras.length; j++) {\n this.addElementPlacement(newExtras[j], placements);\n }\n\n extras.push.apply(extras, newExtras);\n }\n }\n\n return {\n element: element,\n finishers: finishers,\n extras: extras,\n };\n },\n decorateConstructor: function(elements, decorators) {\n var finishers = [];\n\n for (var i = decorators.length - 1; i >= 0; i--) {\n var obj = this.fromClassDescriptor(elements);\n var elementsAndFinisher = this.toClassDescriptor(\n (0, decorators[i])(obj) || obj\n );\n\n if (elementsAndFinisher.finisher !== undefined) {\n finishers.push(elementsAndFinisher.finisher);\n }\n\n if (elementsAndFinisher.elements !== undefined) {\n elements = elementsAndFinisher.elements;\n\n for (var j = 0; j < elements.length - 1; j++) {\n for (var k = j + 1; k < elements.length; k++) {\n if (\n elements[j].key === elements[k].key &&\n elements[j].placement === elements[k].placement\n ) {\n throw new TypeError(\n 'Duplicated element (' + elements[j].key + ')'\n );\n }\n }\n }\n }\n }\n\n return {\n elements: elements,\n finishers: finishers,\n };\n },\n fromElementDescriptor: function(element) {\n var obj = {\n kind: element.kind,\n key: element.key,\n placement: element.placement,\n descriptor: element.descriptor,\n };\n var desc = {\n value: 'Descriptor',\n configurable: true,\n };\n Object.defineProperty(obj, Symbol.toStringTag, desc);\n if (element.kind === 'field') obj.initializer = element.initializer;\n return obj;\n },\n toElementDescriptors: function(elementObjects) {\n if (elementObjects === undefined) return;\n return _toArray(elementObjects).map(function(elementObject) {\n var element = this.toElementDescriptor(elementObject);\n this.disallowProperty(elementObject, 'finisher', 'An element descriptor');\n this.disallowProperty(elementObject, 'extras', 'An element descriptor');\n return element;\n }, this);\n },\n toElementDescriptor: function(elementObject) {\n var kind = String(elementObject.kind);\n\n if (kind !== 'method' && kind !== 'field') {\n throw new TypeError(\n 'An element descriptor\\'s .kind property must be either \"method\" or' +\n ' \"field\", but a decorator created an element descriptor with' +\n ' .kind \"' +\n kind +\n '\"'\n );\n }\n\n var key = _toPropertyKey(elementObject.key);\n\n var placement = String(elementObject.placement);\n\n if (placement !== 'static' && placement !== 'prototype' && placement !== 'own') {\n throw new TypeError(\n 'An element descriptor\\'s .placement property must be one of \"static\",' +\n ' \"prototype\" or \"own\", but a decorator created an element descriptor' +\n ' with .placement \"' +\n placement +\n '\"'\n );\n }\n\n var descriptor = elementObject.descriptor;\n this.disallowProperty(elementObject, 'elements', 'An element descriptor');\n var element = {\n kind: kind,\n key: key,\n placement: placement,\n descriptor: Object.assign({}, descriptor),\n };\n\n if (kind !== 'field') {\n this.disallowProperty(elementObject, 'initializer', 'A method descriptor');\n } else {\n this.disallowProperty(\n descriptor,\n 'get',\n 'The property descriptor of a field descriptor'\n );\n this.disallowProperty(\n descriptor,\n 'set',\n 'The property descriptor of a field descriptor'\n );\n this.disallowProperty(\n descriptor,\n 'value',\n 'The property descriptor of a field descriptor'\n );\n element.initializer = elementObject.initializer;\n }\n\n return element;\n },\n toElementFinisherExtras: function(elementObject) {\n var element = this.toElementDescriptor(elementObject);\n\n var finisher = _optionalCallableProperty(elementObject, 'finisher');\n\n var extras = this.toElementDescriptors(elementObject.extras);\n return {\n element: element,\n finisher: finisher,\n extras: extras,\n };\n },\n fromClassDescriptor: function(elements) {\n var obj = {\n kind: 'class',\n elements: elements.map(this.fromElementDescriptor, this),\n };\n var desc = {\n value: 'Descriptor',\n configurable: true,\n };\n Object.defineProperty(obj, Symbol.toStringTag, desc);\n return obj;\n },\n toClassDescriptor: function(obj) {\n var kind = String(obj.kind);\n\n if (kind !== 'class') {\n throw new TypeError(\n 'A class descriptor\\'s .kind property must be \"class\", but a decorator' +\n ' created a class descriptor with .kind \"' +\n kind +\n '\"'\n );\n }\n\n this.disallowProperty(obj, 'key', 'A class descriptor');\n this.disallowProperty(obj, 'placement', 'A class descriptor');\n this.disallowProperty(obj, 'descriptor', 'A class descriptor');\n this.disallowProperty(obj, 'initializer', 'A class descriptor');\n this.disallowProperty(obj, 'extras', 'A class descriptor');\n\n var finisher = _optionalCallableProperty(obj, 'finisher');\n\n var elements = this.toElementDescriptors(obj.elements);\n return {\n elements: elements,\n finisher: finisher,\n };\n },\n runClassFinishers: function(constructor, finishers) {\n for (var i = 0; i < finishers.length; i++) {\n var newConstructor = (0, finishers[i])(constructor);\n\n if (newConstructor !== undefined) {\n if (typeof newConstructor !== 'function') {\n throw new TypeError('Finishers must return a constructor.');\n }\n\n constructor = newConstructor;\n }\n }\n\n return constructor;\n },\n disallowProperty: function(obj, name, objectType) {\n if (obj[name] !== undefined) {\n throw new TypeError(objectType + \" can't have a .\" + name + ' property.');\n }\n },\n };\n return api;\n }\n\n function _createElementDescriptor(def) {\n var key = _toPropertyKey(def.key);\n\n var descriptor;\n\n if (def.kind === 'method') {\n descriptor = {\n value: def.value,\n writable: true,\n configurable: true,\n enumerable: false,\n };\n } else if (def.kind === 'get') {\n descriptor = {\n get: def.value,\n configurable: true,\n enumerable: false,\n };\n } else if (def.kind === 'set') {\n descriptor = {\n set: def.value,\n configurable: true,\n enumerable: false,\n };\n } else if (def.kind === 'field') {\n descriptor = {\n configurable: true,\n writable: true,\n enumerable: true,\n };\n }\n\n var element = {\n kind: def.kind === 'field' ? 'field' : 'method',\n key: key,\n placement: def.static ? 'static' : def.kind === 'field' ? 'own' : 'prototype',\n descriptor: descriptor,\n };\n if (def.decorators) element.decorators = def.decorators;\n if (def.kind === 'field') element.initializer = def.value;\n return element;\n }\n\n function _coalesceGetterSetter(element, other) {\n if (element.descriptor.get !== undefined) {\n other.descriptor.get = element.descriptor.get;\n } else {\n other.descriptor.set = element.descriptor.set;\n }\n }\n\n function _coalesceClassElements(elements) {\n var newElements = [];\n\n var isSameElement = function(other) {\n return (\n other.kind === 'method' &&\n other.key === element.key &&\n other.placement === element.placement\n );\n };\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i];\n var other;\n\n if (element.kind === 'method' && (other = newElements.find(isSameElement))) {\n if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) {\n if (_hasDecorators(element) || _hasDecorators(other)) {\n throw new ReferenceError(\n 'Duplicated methods (' + element.key + \") can't be decorated.\"\n );\n }\n\n other.descriptor = element.descriptor;\n } else {\n if (_hasDecorators(element)) {\n if (_hasDecorators(other)) {\n throw new ReferenceError(\n \"Decorators can't be placed on different accessors with for \" +\n 'the same property (' +\n element.key +\n ').'\n );\n }\n\n other.decorators = element.decorators;\n }\n\n _coalesceGetterSetter(element, other);\n }\n } else {\n newElements.push(element);\n }\n }\n\n return newElements;\n }\n\n function _hasDecorators(element) {\n return element.decorators && element.decorators.length;\n }\n\n function _isDataDescriptor(desc) {\n return desc !== undefined && !(desc.value === undefined && desc.writable === undefined);\n }\n\n function _optionalCallableProperty(obj, name) {\n var value = obj[name];\n\n if (value !== undefined && typeof value !== 'function') {\n throw new TypeError(\"Expected '\" + name + \"' to be a function\");\n }\n\n return value;\n }\n\n function _classPrivateMethodGet(receiver, privateSet, fn) {\n if (!privateSet.has(receiver)) {\n throw new TypeError('attempted to get private field on non-instance');\n }\n\n return fn;\n }\n\n function _classPrivateMethodSet() {\n throw new TypeError('attempted to reassign private method');\n }\n\n function _wrapRegExp(re, groups) {\n _wrapRegExp = function(re, groups) {\n return new BabelRegExp(re, groups);\n };\n\n var _RegExp = _wrapNativeSuper(RegExp);\n\n var _super = RegExp.prototype;\n\n var _groups = new WeakMap();\n\n function BabelRegExp(re, groups) {\n var _this = _RegExp.call(this, re);\n\n _groups.set(_this, groups);\n\n return _this;\n }\n\n _inherits(BabelRegExp, _RegExp);\n\n BabelRegExp.prototype.exec = function(str) {\n var result = _super.exec.call(this, str);\n\n if (result) result.groups = buildGroups(result, this);\n return result;\n };\n\n BabelRegExp.prototype[Symbol.replace] = function(str, substitution) {\n if (typeof substitution === 'string') {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(\n this,\n str,\n substitution.replace(/\\$<([^>]+)>/g, function(_, name) {\n return '$' + groups[name];\n })\n );\n } else if (typeof substitution === 'function') {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function() {\n var args = [];\n args.push.apply(args, arguments);\n\n if (typeof args[args.length - 1] !== 'object') {\n args.push(buildGroups(args, _this));\n }\n\n return substitution.apply(this, args);\n });\n } else {\n return _super[Symbol.replace].call(this, str, substitution);\n }\n };\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function(groups, name) {\n groups[name] = result[g[name]];\n return groups;\n }, Object.create(null));\n }\n\n return _wrapRegExp.apply(this, arguments);\n }\n\n var arrayRemove = function arrayRemove(arr, index) {\n return arr.splice(index, 1);\n };\n\n var run = function run(cb, sync) {\n if (sync) {\n cb();\n } else if (document.hidden) {\n Promise.resolve(1).then(cb);\n } else {\n setTimeout(cb, 0);\n }\n };\n\n var on = function on() {\n var listeners = [];\n var off = function off(event, cb) {\n arrayRemove(\n listeners,\n listeners.findIndex(function(listener) {\n return listener.event === event && (listener.cb === cb || !cb);\n })\n );\n };\n var _fire = function fire(event, args, sync) {\n listeners\n .filter(function(listener) {\n return listener.event === event;\n })\n .map(function(listener) {\n return listener.cb;\n })\n .forEach(function(cb) {\n return run(function() {\n return cb.apply(void 0, _toConsumableArray(args));\n }, sync);\n });\n };\n return {\n fireSync: function fireSync(event) {\n for (\n var _len = arguments.length,\n args = new Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n _fire(event, args, true);\n },\n fire: function fire(event) {\n for (\n var _len2 = arguments.length,\n args = new Array(_len2 > 1 ? _len2 - 1 : 0),\n _key2 = 1;\n _key2 < _len2;\n _key2++\n ) {\n args[_key2 - 1] = arguments[_key2];\n }\n _fire(event, args, false);\n },\n on: function on(event, cb) {\n listeners.push({ event: event, cb: cb });\n },\n onOnce: function onOnce(event, _cb) {\n listeners.push({\n event: event,\n cb: function cb() {\n off(event, _cb);\n _cb.apply(void 0, arguments);\n },\n });\n },\n off: off,\n };\n };\n\n var copyObjectPropertiesToObject = function copyObjectPropertiesToObject(\n src,\n target,\n excluded\n ) {\n Object.getOwnPropertyNames(src)\n .filter(function(property) {\n return !excluded.includes(property);\n })\n .forEach(function(key) {\n return Object.defineProperty(\n target,\n key,\n Object.getOwnPropertyDescriptor(src, key)\n );\n });\n };\n\n var PRIVATE = [\n 'fire',\n 'process',\n 'revert',\n 'load',\n 'on',\n 'off',\n 'onOnce',\n 'retryLoad',\n 'extend',\n 'archive',\n 'archived',\n 'release',\n 'released',\n 'requestProcessing',\n 'freeze',\n ];\n\n var createItemAPI = function createItemAPI(item) {\n var api = {};\n copyObjectPropertiesToObject(item, api, PRIVATE);\n return api;\n };\n\n var removeReleasedItems = function removeReleasedItems(items) {\n items.forEach(function(item, index) {\n if (item.released) {\n arrayRemove(items, index);\n }\n });\n };\n\n var ItemStatus = {\n INIT: 1,\n IDLE: 2,\n PROCESSING_QUEUED: 9,\n PROCESSING: 3,\n PROCESSING_COMPLETE: 5,\n PROCESSING_ERROR: 6,\n PROCESSING_REVERT_ERROR: 10,\n LOADING: 7,\n LOAD_ERROR: 8,\n };\n\n var FileOrigin = {\n INPUT: 1,\n LIMBO: 2,\n LOCAL: 3,\n };\n\n var getNonNumeric = function getNonNumeric(str) {\n return /[^0-9]+/.exec(str);\n };\n\n var getDecimalSeparator = function getDecimalSeparator() {\n return getNonNumeric((1.1).toLocaleString())[0];\n };\n\n var getThousandsSeparator = function getThousandsSeparator() {\n // Added for browsers that do not return the thousands separator (happend on native browser Android 4.4.4)\n // We check against the normal toString output and if they're the same return a comma when decimal separator is a dot\n var decimalSeparator = getDecimalSeparator();\n var thousandsStringWithSeparator = (1000.0).toLocaleString();\n var thousandsStringWithoutSeparator = (1000.0).toString();\n if (thousandsStringWithSeparator !== thousandsStringWithoutSeparator) {\n return getNonNumeric(thousandsStringWithSeparator)[0];\n }\n return decimalSeparator === '.' ? ',' : '.';\n };\n\n var Type = {\n BOOLEAN: 'boolean',\n INT: 'int',\n NUMBER: 'number',\n STRING: 'string',\n ARRAY: 'array',\n OBJECT: 'object',\n FUNCTION: 'function',\n ACTION: 'action',\n SERVER_API: 'serverapi',\n REGEX: 'regex',\n };\n\n // all registered filters\n var filters = [];\n\n // loops over matching filters and passes options to each filter, returning the mapped results\n var applyFilterChain = function applyFilterChain(key, value, utils) {\n return new Promise(function(resolve, reject) {\n // find matching filters for this key\n var matchingFilters = filters\n .filter(function(f) {\n return f.key === key;\n })\n .map(function(f) {\n return f.cb;\n });\n\n // resolve now\n if (matchingFilters.length === 0) {\n resolve(value);\n return;\n }\n\n // first filter to kick things of\n var initialFilter = matchingFilters.shift();\n\n // chain filters\n matchingFilters\n .reduce(\n // loop over promises passing value to next promise\n function(current, next) {\n return current.then(function(value) {\n return next(value, utils);\n });\n },\n\n // call initial filter, will return a promise\n initialFilter(value, utils)\n\n // all executed\n )\n .then(function(value) {\n return resolve(value);\n })\n .catch(function(error) {\n return reject(error);\n });\n });\n };\n\n var applyFilters = function applyFilters(key, value, utils) {\n return filters\n .filter(function(f) {\n return f.key === key;\n })\n .map(function(f) {\n return f.cb(value, utils);\n });\n };\n\n // adds a new filter to the list\n var addFilter = function addFilter(key, cb) {\n return filters.push({ key: key, cb: cb });\n };\n\n var extendDefaultOptions = function extendDefaultOptions(additionalOptions) {\n return Object.assign(defaultOptions, additionalOptions);\n };\n\n var getOptions = function getOptions() {\n return Object.assign({}, defaultOptions);\n };\n\n var setOptions = function setOptions(opts) {\n forin(opts, function(key, value) {\n // key does not exist, so this option cannot be set\n if (!defaultOptions[key]) {\n return;\n }\n defaultOptions[key][0] = getValueByType(\n value,\n defaultOptions[key][0],\n defaultOptions[key][1]\n );\n });\n };\n\n // default options on app\n var defaultOptions = {\n // the id to add to the root element\n id: [null, Type.STRING],\n\n // input field name to use\n name: ['filepond', Type.STRING],\n\n // disable the field\n disabled: [false, Type.BOOLEAN],\n\n // classname to put on wrapper\n className: [null, Type.STRING],\n\n // is the field required\n required: [false, Type.BOOLEAN],\n\n // Allow media capture when value is set\n captureMethod: [null, Type.STRING],\n // - \"camera\", \"microphone\" or \"camcorder\",\n // - Does not work with multiple on apple devices\n // - If set, acceptedFileTypes must be made to match with media wildcard \"image/*\", \"audio/*\" or \"video/*\"\n\n // sync `acceptedFileTypes` property with `accept` attribute\n allowSyncAcceptAttribute: [true, Type.BOOLEAN],\n\n // Feature toggles\n allowDrop: [true, Type.BOOLEAN], // Allow dropping of files\n allowBrowse: [true, Type.BOOLEAN], // Allow browsing the file system\n allowPaste: [true, Type.BOOLEAN], // Allow pasting files\n allowMultiple: [false, Type.BOOLEAN], // Allow multiple files (disabled by default, as multiple attribute is also required on input to allow multiple)\n allowReplace: [true, Type.BOOLEAN], // Allow dropping a file on other file to replace it (only works when multiple is set to false)\n allowRevert: [true, Type.BOOLEAN], // Allows user to revert file upload\n allowRemove: [true, Type.BOOLEAN], // Allow user to remove a file\n allowProcess: [true, Type.BOOLEAN], // Allows user to process a file, when set to false, this removes the file upload button\n allowReorder: [false, Type.BOOLEAN], // Allow reordering of files\n allowDirectoriesOnly: [false, Type.BOOLEAN], // Allow only selecting directories with browse (no support for filtering dnd at this point)\n\n // Try store file if `server` not set\n storeAsFile: [false, Type.BOOLEAN],\n\n // Revert mode\n forceRevert: [false, Type.BOOLEAN], // Set to 'force' to require the file to be reverted before removal\n\n // Input requirements\n maxFiles: [null, Type.INT], // Max number of files\n checkValidity: [false, Type.BOOLEAN], // Enables custom validity messages\n\n // Where to put file\n itemInsertLocationFreedom: [true, Type.BOOLEAN], // Set to false to always add items to begin or end of list\n itemInsertLocation: ['before', Type.STRING], // Default index in list to add items that have been dropped at the top of the list\n itemInsertInterval: [75, Type.INT],\n\n // Drag 'n Drop related\n dropOnPage: [false, Type.BOOLEAN], // Allow dropping of files anywhere on page (prevents browser from opening file if dropped outside of Up)\n dropOnElement: [true, Type.BOOLEAN], // Drop needs to happen on element (set to false to also load drops outside of Up)\n dropValidation: [false, Type.BOOLEAN], // Enable or disable validating files on drop\n ignoredFiles: [['.ds_store', 'thumbs.db', 'desktop.ini'], Type.ARRAY],\n\n // Upload related\n instantUpload: [true, Type.BOOLEAN], // Should upload files immediately on drop\n maxParallelUploads: [2, Type.INT], // Maximum files to upload in parallel\n allowMinimumUploadDuration: [true, Type.BOOLEAN], // if true uploads take at least 750 ms, this ensures the user sees the upload progress giving trust the upload actually happened\n\n // Chunks\n chunkUploads: [false, Type.BOOLEAN], // Enable chunked uploads\n chunkForce: [false, Type.BOOLEAN], // Force use of chunk uploads even for files smaller than chunk size\n chunkSize: [5000000, Type.INT], // Size of chunks (5MB default)\n chunkRetryDelays: [[500, 1000, 3000], Type.ARRAY], // Amount of times to retry upload of a chunk when it fails\n\n // The server api end points to use for uploading (see docs)\n server: [null, Type.SERVER_API],\n\n // File size calculations, can set to 1024, this is only used for display, properties use file size base 1000\n fileSizeBase: [1000, Type.INT],\n\n // Labels and status messages\n labelFileSizeBytes: ['bytes', Type.STRING],\n labelFileSizeKilobytes: ['KB', Type.STRING],\n labelFileSizeMegabytes: ['MB', Type.STRING],\n labelFileSizeGigabytes: ['GB', Type.STRING],\n\n labelDecimalSeparator: [getDecimalSeparator(), Type.STRING], // Default is locale separator\n labelThousandsSeparator: [getThousandsSeparator(), Type.STRING], // Default is locale separator\n\n labelIdle: [\n 'Drag & Drop your files or Browse',\n Type.STRING,\n ],\n\n labelInvalidField: ['Field contains invalid files', Type.STRING],\n labelFileWaitingForSize: ['Waiting for size', Type.STRING],\n labelFileSizeNotAvailable: ['Size not available', Type.STRING],\n labelFileCountSingular: ['file in list', Type.STRING],\n labelFileCountPlural: ['files in list', Type.STRING],\n labelFileLoading: ['Loading', Type.STRING],\n labelFileAdded: ['Added', Type.STRING], // assistive only\n labelFileLoadError: ['Error during load', Type.STRING],\n labelFileRemoved: ['Removed', Type.STRING], // assistive only\n labelFileRemoveError: ['Error during remove', Type.STRING],\n labelFileProcessing: ['Uploading', Type.STRING],\n labelFileProcessingComplete: ['Upload complete', Type.STRING],\n labelFileProcessingAborted: ['Upload cancelled', Type.STRING],\n labelFileProcessingError: ['Error during upload', Type.STRING],\n labelFileProcessingRevertError: ['Error during revert', Type.STRING],\n\n labelTapToCancel: ['tap to cancel', Type.STRING],\n labelTapToRetry: ['tap to retry', Type.STRING],\n labelTapToUndo: ['tap to undo', Type.STRING],\n\n labelButtonRemoveItem: ['Remove', Type.STRING],\n labelButtonAbortItemLoad: ['Abort', Type.STRING],\n labelButtonRetryItemLoad: ['Retry', Type.STRING],\n labelButtonAbortItemProcessing: ['Cancel', Type.STRING],\n labelButtonUndoItemProcessing: ['Undo', Type.STRING],\n labelButtonRetryItemProcessing: ['Retry', Type.STRING],\n labelButtonProcessItem: ['Upload', Type.STRING],\n\n // make sure width and height plus viewpox are even numbers so icons are nicely centered\n iconRemove: [\n '',\n Type.STRING,\n ],\n\n iconProcess: [\n '',\n Type.STRING,\n ],\n\n iconRetry: [\n '',\n Type.STRING,\n ],\n\n iconUndo: [\n '',\n Type.STRING,\n ],\n\n iconDone: [\n '',\n Type.STRING,\n ],\n\n // event handlers\n oninit: [null, Type.FUNCTION],\n onwarning: [null, Type.FUNCTION],\n onerror: [null, Type.FUNCTION],\n onactivatefile: [null, Type.FUNCTION],\n oninitfile: [null, Type.FUNCTION],\n onaddfilestart: [null, Type.FUNCTION],\n onaddfileprogress: [null, Type.FUNCTION],\n onaddfile: [null, Type.FUNCTION],\n onprocessfilestart: [null, Type.FUNCTION],\n onprocessfileprogress: [null, Type.FUNCTION],\n onprocessfileabort: [null, Type.FUNCTION],\n onprocessfilerevert: [null, Type.FUNCTION],\n onprocessfile: [null, Type.FUNCTION],\n onprocessfiles: [null, Type.FUNCTION],\n onremovefile: [null, Type.FUNCTION],\n onpreparefile: [null, Type.FUNCTION],\n onupdatefiles: [null, Type.FUNCTION],\n onreorderfiles: [null, Type.FUNCTION],\n\n // hooks\n beforeDropFile: [null, Type.FUNCTION],\n beforeAddFile: [null, Type.FUNCTION],\n beforeRemoveFile: [null, Type.FUNCTION],\n beforePrepareFile: [null, Type.FUNCTION],\n\n // styles\n stylePanelLayout: [null, Type.STRING], // null 'integrated', 'compact', 'circle'\n stylePanelAspectRatio: [null, Type.STRING], // null or '3:2' or 1\n styleItemPanelAspectRatio: [null, Type.STRING],\n styleButtonRemoveItemPosition: ['left', Type.STRING],\n styleButtonProcessItemPosition: ['right', Type.STRING],\n styleLoadIndicatorPosition: ['right', Type.STRING],\n styleProgressIndicatorPosition: ['right', Type.STRING],\n styleButtonRemoveItemAlign: [false, Type.BOOLEAN],\n\n // custom initial files array\n files: [[], Type.ARRAY],\n\n // show support by displaying credits\n credits: [['https://pqina.nl/', 'Powered by PQINA'], Type.ARRAY],\n };\n\n var getItemByQuery = function getItemByQuery(items, query) {\n // just return first index\n if (isEmpty(query)) {\n return items[0] || null;\n }\n\n // query is index\n if (isInt(query)) {\n return items[query] || null;\n }\n\n // if query is item, get the id\n if (typeof query === 'object') {\n query = query.id;\n }\n\n // assume query is a string and return item by id\n return (\n items.find(function(item) {\n return item.id === query;\n }) || null\n );\n };\n\n var getNumericAspectRatioFromString = function getNumericAspectRatioFromString(aspectRatio) {\n if (isEmpty(aspectRatio)) {\n return aspectRatio;\n }\n if (/:/.test(aspectRatio)) {\n var parts = aspectRatio.split(':');\n return parts[1] / parts[0];\n }\n return parseFloat(aspectRatio);\n };\n\n var getActiveItems = function getActiveItems(items) {\n return items.filter(function(item) {\n return !item.archived;\n });\n };\n\n var Status = {\n EMPTY: 0,\n IDLE: 1, // waiting\n ERROR: 2, // a file is in error state\n BUSY: 3, // busy processing or loading\n READY: 4, // all files uploaded\n };\n\n var res = null;\n var canUpdateFileInput = function canUpdateFileInput() {\n if (res === null) {\n try {\n var dataTransfer = new DataTransfer();\n dataTransfer.items.add(new File(['hello world'], 'This_Works.txt'));\n var el = document.createElement('input');\n el.setAttribute('type', 'file');\n el.files = dataTransfer.files;\n res = el.files.length === 1;\n } catch (err) {\n res = false;\n }\n }\n return res;\n };\n\n var ITEM_ERROR = [\n ItemStatus.LOAD_ERROR,\n ItemStatus.PROCESSING_ERROR,\n ItemStatus.PROCESSING_REVERT_ERROR,\n ];\n\n var ITEM_BUSY = [\n ItemStatus.LOADING,\n ItemStatus.PROCESSING,\n ItemStatus.PROCESSING_QUEUED,\n ItemStatus.INIT,\n ];\n\n var ITEM_READY = [ItemStatus.PROCESSING_COMPLETE];\n\n var isItemInErrorState = function isItemInErrorState(item) {\n return ITEM_ERROR.includes(item.status);\n };\n var isItemInBusyState = function isItemInBusyState(item) {\n return ITEM_BUSY.includes(item.status);\n };\n var isItemInReadyState = function isItemInReadyState(item) {\n return ITEM_READY.includes(item.status);\n };\n\n var isAsync = function isAsync(state) {\n return (\n isObject(state.options.server) &&\n (isObject(state.options.server.process) || isFunction(state.options.server.process))\n );\n };\n\n var queries = function queries(state) {\n return {\n GET_STATUS: function GET_STATUS() {\n var items = getActiveItems(state.items);\n var EMPTY = Status.EMPTY,\n ERROR = Status.ERROR,\n BUSY = Status.BUSY,\n IDLE = Status.IDLE,\n READY = Status.READY;\n\n if (items.length === 0) return EMPTY;\n\n if (items.some(isItemInErrorState)) return ERROR;\n\n if (items.some(isItemInBusyState)) return BUSY;\n\n if (items.some(isItemInReadyState)) return READY;\n\n return IDLE;\n },\n\n GET_ITEM: function GET_ITEM(query) {\n return getItemByQuery(state.items, query);\n },\n\n GET_ACTIVE_ITEM: function GET_ACTIVE_ITEM(query) {\n return getItemByQuery(getActiveItems(state.items), query);\n },\n\n GET_ACTIVE_ITEMS: function GET_ACTIVE_ITEMS() {\n return getActiveItems(state.items);\n },\n\n GET_ITEMS: function GET_ITEMS() {\n return state.items;\n },\n\n GET_ITEM_NAME: function GET_ITEM_NAME(query) {\n var item = getItemByQuery(state.items, query);\n return item ? item.filename : null;\n },\n\n GET_ITEM_SIZE: function GET_ITEM_SIZE(query) {\n var item = getItemByQuery(state.items, query);\n return item ? item.fileSize : null;\n },\n\n GET_STYLES: function GET_STYLES() {\n return Object.keys(state.options)\n .filter(function(key) {\n return /^style/.test(key);\n })\n .map(function(option) {\n return {\n name: option,\n value: state.options[option],\n };\n });\n },\n\n GET_PANEL_ASPECT_RATIO: function GET_PANEL_ASPECT_RATIO() {\n var isShapeCircle = /circle/.test(state.options.stylePanelLayout);\n var aspectRatio = isShapeCircle\n ? 1\n : getNumericAspectRatioFromString(state.options.stylePanelAspectRatio);\n return aspectRatio;\n },\n\n GET_ITEM_PANEL_ASPECT_RATIO: function GET_ITEM_PANEL_ASPECT_RATIO() {\n return state.options.styleItemPanelAspectRatio;\n },\n\n GET_ITEMS_BY_STATUS: function GET_ITEMS_BY_STATUS(status) {\n return getActiveItems(state.items).filter(function(item) {\n return item.status === status;\n });\n },\n\n GET_TOTAL_ITEMS: function GET_TOTAL_ITEMS() {\n return getActiveItems(state.items).length;\n },\n\n SHOULD_UPDATE_FILE_INPUT: function SHOULD_UPDATE_FILE_INPUT() {\n return state.options.storeAsFile && canUpdateFileInput() && !isAsync(state);\n },\n\n IS_ASYNC: function IS_ASYNC() {\n return isAsync(state);\n },\n\n GET_FILE_SIZE_LABELS: function GET_FILE_SIZE_LABELS(query) {\n return {\n labelBytes: query('GET_LABEL_FILE_SIZE_BYTES') || undefined,\n labelKilobytes: query('GET_LABEL_FILE_SIZE_KILOBYTES') || undefined,\n labelMegabytes: query('GET_LABEL_FILE_SIZE_MEGABYTES') || undefined,\n labelGigabytes: query('GET_LABEL_FILE_SIZE_GIGABYTES') || undefined,\n };\n },\n };\n };\n\n var hasRoomForItem = function hasRoomForItem(state) {\n var count = getActiveItems(state.items).length;\n\n // if cannot have multiple items, to add one item it should currently not contain items\n if (!state.options.allowMultiple) {\n return count === 0;\n }\n\n // if allows multiple items, we check if a max item count has been set, if not, there's no limit\n var maxFileCount = state.options.maxFiles;\n if (maxFileCount === null) {\n return true;\n }\n\n // we check if the current count is smaller than the max count, if so, another file can still be added\n if (count < maxFileCount) {\n return true;\n }\n\n // no more room for another file\n return false;\n };\n\n var limit = function limit(value, min, max) {\n return Math.max(Math.min(max, value), min);\n };\n\n var arrayInsert = function arrayInsert(arr, index, item) {\n return arr.splice(index, 0, item);\n };\n\n var insertItem = function insertItem(items, item, index) {\n if (isEmpty(item)) {\n return null;\n }\n\n // if index is undefined, append\n if (typeof index === 'undefined') {\n items.push(item);\n return item;\n }\n\n // limit the index to the size of the items array\n index = limit(index, 0, items.length);\n\n // add item to array\n arrayInsert(items, index, item);\n\n // expose\n return item;\n };\n\n var isBase64DataURI = function isBase64DataURI(str) {\n return /^\\s*data:([a-z]+\\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\\-._~:@\\/?%\\s]*)\\s*$/i.test(\n str\n );\n };\n\n var getFilenameFromURL = function getFilenameFromURL(url) {\n return url\n .split('/')\n .pop()\n .split('?')\n .shift();\n };\n\n var getExtensionFromFilename = function getExtensionFromFilename(name) {\n return name.split('.').pop();\n };\n\n var guesstimateExtension = function guesstimateExtension(type) {\n // if no extension supplied, exit here\n if (typeof type !== 'string') {\n return '';\n }\n\n // get subtype\n var subtype = type.split('/').pop();\n\n // is svg subtype\n if (/svg/.test(subtype)) {\n return 'svg';\n }\n\n if (/zip|compressed/.test(subtype)) {\n return 'zip';\n }\n\n if (/plain/.test(subtype)) {\n return 'txt';\n }\n\n if (/msword/.test(subtype)) {\n return 'doc';\n }\n\n // if is valid subtype\n if (/[a-z]+/.test(subtype)) {\n // always use jpg extension\n if (subtype === 'jpeg') {\n return 'jpg';\n }\n\n // return subtype\n return subtype;\n }\n\n return '';\n };\n\n var leftPad = function leftPad(value) {\n var padding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return (padding + value).slice(-padding.length);\n };\n\n var getDateString = function getDateString() {\n var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date();\n return (\n date.getFullYear() +\n '-' +\n leftPad(date.getMonth() + 1, '00') +\n '-' +\n leftPad(date.getDate(), '00') +\n '_' +\n leftPad(date.getHours(), '00') +\n '-' +\n leftPad(date.getMinutes(), '00') +\n '-' +\n leftPad(date.getSeconds(), '00')\n );\n };\n\n var getFileFromBlob = function getFileFromBlob(blob, filename) {\n var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var extension = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var file =\n typeof type === 'string'\n ? blob.slice(0, blob.size, type)\n : blob.slice(0, blob.size, blob.type);\n file.lastModifiedDate = new Date();\n\n // copy relative path\n if (blob._relativePath) file._relativePath = blob._relativePath;\n\n // if blob has name property, use as filename if no filename supplied\n if (!isString(filename)) {\n filename = getDateString();\n }\n\n // if filename supplied but no extension and filename has extension\n if (filename && extension === null && getExtensionFromFilename(filename)) {\n file.name = filename;\n } else {\n extension = extension || guesstimateExtension(file.type);\n file.name = filename + (extension ? '.' + extension : '');\n }\n\n return file;\n };\n\n var getBlobBuilder = function getBlobBuilder() {\n return (window.BlobBuilder =\n window.BlobBuilder ||\n window.WebKitBlobBuilder ||\n window.MozBlobBuilder ||\n window.MSBlobBuilder);\n };\n\n var createBlob = function createBlob(arrayBuffer, mimeType) {\n var BB = getBlobBuilder();\n\n if (BB) {\n var bb = new BB();\n bb.append(arrayBuffer);\n return bb.getBlob(mimeType);\n }\n\n return new Blob([arrayBuffer], {\n type: mimeType,\n });\n };\n\n var getBlobFromByteStringWithMimeType = function getBlobFromByteStringWithMimeType(\n byteString,\n mimeType\n ) {\n var ab = new ArrayBuffer(byteString.length);\n var ia = new Uint8Array(ab);\n\n for (var i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n\n return createBlob(ab, mimeType);\n };\n\n var getMimeTypeFromBase64DataURI = function getMimeTypeFromBase64DataURI(dataURI) {\n return (/^data:(.+);/.exec(dataURI) || [])[1] || null;\n };\n\n var getBase64DataFromBase64DataURI = function getBase64DataFromBase64DataURI(dataURI) {\n // get data part of string (remove data:image/jpeg...,)\n var data = dataURI.split(',')[1];\n\n // remove any whitespace as that causes InvalidCharacterError in IE\n return data.replace(/\\s/g, '');\n };\n\n var getByteStringFromBase64DataURI = function getByteStringFromBase64DataURI(dataURI) {\n return atob(getBase64DataFromBase64DataURI(dataURI));\n };\n\n var getBlobFromBase64DataURI = function getBlobFromBase64DataURI(dataURI) {\n var mimeType = getMimeTypeFromBase64DataURI(dataURI);\n var byteString = getByteStringFromBase64DataURI(dataURI);\n\n return getBlobFromByteStringWithMimeType(byteString, mimeType);\n };\n\n var getFileFromBase64DataURI = function getFileFromBase64DataURI(dataURI, filename, extension) {\n return getFileFromBlob(getBlobFromBase64DataURI(dataURI), filename, null, extension);\n };\n\n var getFileNameFromHeader = function getFileNameFromHeader(header) {\n // test if is content disposition header, if not exit\n if (!/^content-disposition:/i.test(header)) return null;\n\n // get filename parts\n var matches = header\n .split(/filename=|filename\\*=.+''/)\n .splice(1)\n .map(function(name) {\n return name.trim().replace(/^[\"']|[;\"']{0,2}$/g, '');\n })\n .filter(function(name) {\n return name.length;\n });\n\n return matches.length ? decodeURI(matches[matches.length - 1]) : null;\n };\n\n var getFileSizeFromHeader = function getFileSizeFromHeader(header) {\n if (/content-length:/i.test(header)) {\n var size = header.match(/[0-9]+/)[0];\n return size ? parseInt(size, 10) : null;\n }\n return null;\n };\n\n var getTranfserIdFromHeader = function getTranfserIdFromHeader(header) {\n if (/x-content-transfer-id:/i.test(header)) {\n var id = (header.split(':')[1] || '').trim();\n return id || null;\n }\n return null;\n };\n\n var getFileInfoFromHeaders = function getFileInfoFromHeaders(headers) {\n var info = {\n source: null,\n name: null,\n size: null,\n };\n\n var rows = headers.split('\\n');\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n try {\n for (\n var _iterator = rows[Symbol.iterator](), _step;\n !(_iteratorNormalCompletion = (_step = _iterator.next()).done);\n _iteratorNormalCompletion = true\n ) {\n var header = _step.value;\n\n var name = getFileNameFromHeader(header);\n if (name) {\n info.name = name;\n continue;\n }\n\n var size = getFileSizeFromHeader(header);\n if (size) {\n info.size = size;\n continue;\n }\n\n var source = getTranfserIdFromHeader(header);\n if (source) {\n info.source = source;\n continue;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return info;\n };\n\n var createFileLoader = function createFileLoader(fetchFn) {\n var state = {\n source: null,\n complete: false,\n progress: 0,\n size: null,\n timestamp: null,\n duration: 0,\n request: null,\n };\n\n var getProgress = function getProgress() {\n return state.progress;\n };\n var abort = function abort() {\n if (state.request && state.request.abort) {\n state.request.abort();\n }\n };\n\n // load source\n var load = function load() {\n // get quick reference\n var source = state.source;\n\n api.fire('init', source);\n\n // Load Files\n if (source instanceof File) {\n api.fire('load', source);\n } else if (source instanceof Blob) {\n // Load blobs, set default name to current date\n api.fire('load', getFileFromBlob(source, source.name));\n } else if (isBase64DataURI(source)) {\n // Load base 64, set default name to current date\n api.fire('load', getFileFromBase64DataURI(source));\n } else {\n // Deal as if is external URL, let's load it!\n loadURL(source);\n }\n };\n\n // loads a url\n var loadURL = function loadURL(url) {\n // is remote url and no fetch method supplied\n if (!fetchFn) {\n api.fire('error', {\n type: 'error',\n body: \"Can't load URL\",\n code: 400,\n });\n\n return;\n }\n\n // set request start\n state.timestamp = Date.now();\n\n // load file\n state.request = fetchFn(\n url,\n function(response) {\n // update duration\n state.duration = Date.now() - state.timestamp;\n\n // done!\n state.complete = true;\n\n // turn blob response into a file\n if (response instanceof Blob) {\n response = getFileFromBlob(\n response,\n response.name || getFilenameFromURL(url)\n );\n }\n\n api.fire(\n 'load',\n // if has received blob, we go with blob, if no response, we return null\n response instanceof Blob ? response : response ? response.body : null\n );\n },\n function(error) {\n api.fire(\n 'error',\n typeof error === 'string'\n ? {\n type: 'error',\n code: 0,\n body: error,\n }\n : error\n );\n },\n function(computable, current, total) {\n // collected some meta data already\n if (total) {\n state.size = total;\n }\n\n // update duration\n state.duration = Date.now() - state.timestamp;\n\n // if we can't compute progress, we're not going to fire progress events\n if (!computable) {\n state.progress = null;\n return;\n }\n\n // update progress percentage\n state.progress = current / total;\n\n // expose\n api.fire('progress', state.progress);\n },\n function() {\n api.fire('abort');\n },\n function(response) {\n var fileinfo = getFileInfoFromHeaders(\n typeof response === 'string' ? response : response.headers\n );\n api.fire('meta', {\n size: state.size || fileinfo.size,\n filename: fileinfo.name,\n source: fileinfo.source,\n });\n }\n );\n };\n\n var api = Object.assign({}, on(), {\n setSource: function setSource(source) {\n return (state.source = source);\n },\n getProgress: getProgress, // file load progress\n abort: abort, // abort file load\n load: load, // start load\n });\n\n return api;\n };\n\n var isGet = function isGet(method) {\n return /GET|HEAD/.test(method);\n };\n\n var sendRequest = function sendRequest(data, url, options) {\n var api = {\n onheaders: function onheaders() {},\n onprogress: function onprogress() {},\n onload: function onload() {},\n ontimeout: function ontimeout() {},\n onerror: function onerror() {},\n onabort: function onabort() {},\n abort: function abort() {\n aborted = true;\n xhr.abort();\n },\n };\n\n // timeout identifier, only used when timeout is defined\n var aborted = false;\n var headersReceived = false;\n\n // set default options\n options = Object.assign(\n {\n method: 'POST',\n headers: {},\n withCredentials: false,\n },\n options\n );\n\n // encode url\n url = encodeURI(url);\n\n // if method is GET, add any received data to url\n\n if (isGet(options.method) && data) {\n url =\n '' +\n url +\n encodeURIComponent(typeof data === 'string' ? data : JSON.stringify(data));\n }\n\n // create request\n var xhr = new XMLHttpRequest();\n\n // progress of load\n var process = isGet(options.method) ? xhr : xhr.upload;\n process.onprogress = function(e) {\n // no progress event when aborted ( onprogress is called once after abort() )\n if (aborted) {\n return;\n }\n\n api.onprogress(e.lengthComputable, e.loaded, e.total);\n };\n\n // tries to get header info to the app as fast as possible\n xhr.onreadystatechange = function() {\n // not interesting in these states ('unsent' and 'openend' as they don't give us any additional info)\n if (xhr.readyState < 2) {\n return;\n }\n\n // no server response\n if (xhr.readyState === 4 && xhr.status === 0) {\n return;\n }\n\n if (headersReceived) {\n return;\n }\n\n headersReceived = true;\n\n // we've probably received some useful data in response headers\n api.onheaders(xhr);\n };\n\n // load successful\n xhr.onload = function() {\n // is classified as valid response\n if (xhr.status >= 200 && xhr.status < 300) {\n api.onload(xhr);\n } else {\n api.onerror(xhr);\n }\n };\n\n // error during load\n xhr.onerror = function() {\n return api.onerror(xhr);\n };\n\n // request aborted\n xhr.onabort = function() {\n aborted = true;\n api.onabort();\n };\n\n // request timeout\n xhr.ontimeout = function() {\n return api.ontimeout(xhr);\n };\n\n // open up open up!\n xhr.open(options.method, url, true);\n\n // set timeout if defined (do it after open so IE11 plays ball)\n if (isInt(options.timeout)) {\n xhr.timeout = options.timeout;\n }\n\n // add headers\n Object.keys(options.headers).forEach(function(key) {\n var value = unescape(encodeURIComponent(options.headers[key]));\n xhr.setRequestHeader(key, value);\n });\n\n // set type of response\n if (options.responseType) {\n xhr.responseType = options.responseType;\n }\n\n // set credentials\n if (options.withCredentials) {\n xhr.withCredentials = true;\n }\n\n // let's send our data\n xhr.send(data);\n\n return api;\n };\n\n var createResponse = function createResponse(type, code, body, headers) {\n return {\n type: type,\n code: code,\n body: body,\n headers: headers,\n };\n };\n\n var createTimeoutResponse = function createTimeoutResponse(cb) {\n return function(xhr) {\n cb(createResponse('error', 0, 'Timeout', xhr.getAllResponseHeaders()));\n };\n };\n\n var hasQS = function hasQS(str) {\n return /\\?/.test(str);\n };\n var buildURL = function buildURL() {\n var url = '';\n for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n parts[_key] = arguments[_key];\n }\n parts.forEach(function(part) {\n url += hasQS(url) && hasQS(part) ? part.replace(/\\?/, '&') : part;\n });\n return url;\n };\n\n var createFetchFunction = function createFetchFunction() {\n var apiUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var action = arguments.length > 1 ? arguments[1] : undefined;\n // custom handler (should also handle file, load, error, progress and abort)\n if (typeof action === 'function') {\n return action;\n }\n\n // no action supplied\n if (!action || !isString(action.url)) {\n return null;\n }\n\n // set onload hanlder\n var onload =\n action.onload ||\n function(res) {\n return res;\n };\n var onerror =\n action.onerror ||\n function(res) {\n return null;\n };\n\n // internal handler\n return function(url, load, error, progress, abort, headers) {\n // do local or remote request based on if the url is external\n var request = sendRequest(\n url,\n buildURL(apiUrl, action.url),\n Object.assign({}, action, {\n responseType: 'blob',\n })\n );\n\n request.onload = function(xhr) {\n // get headers\n var headers = xhr.getAllResponseHeaders();\n\n // get filename\n var filename = getFileInfoFromHeaders(headers).name || getFilenameFromURL(url);\n\n // create response\n load(\n createResponse(\n 'load',\n xhr.status,\n action.method === 'HEAD'\n ? null\n : getFileFromBlob(onload(xhr.response), filename),\n headers\n )\n );\n };\n\n request.onerror = function(xhr) {\n error(\n createResponse(\n 'error',\n xhr.status,\n onerror(xhr.response) || xhr.statusText,\n xhr.getAllResponseHeaders()\n )\n );\n };\n\n request.onheaders = function(xhr) {\n headers(createResponse('headers', xhr.status, null, xhr.getAllResponseHeaders()));\n };\n\n request.ontimeout = createTimeoutResponse(error);\n request.onprogress = progress;\n request.onabort = abort;\n\n // should return request\n return request;\n };\n };\n\n var ChunkStatus = {\n QUEUED: 0,\n COMPLETE: 1,\n PROCESSING: 2,\n ERROR: 3,\n WAITING: 4,\n };\n\n /*\n function signature:\n (file, metadata, load, error, progress, abort, transfer, options) => {\n return {\n abort:() => {}\n }\n }\n */\n\n // apiUrl, action, name, file, metadata, load, error, progress, abort, transfer, options\n var processFileChunked = function processFileChunked(\n apiUrl,\n action,\n name,\n file,\n metadata,\n load,\n error,\n progress,\n abort,\n transfer,\n options\n ) {\n // all chunks\n var chunks = [];\n var chunkTransferId = options.chunkTransferId,\n chunkServer = options.chunkServer,\n chunkSize = options.chunkSize,\n chunkRetryDelays = options.chunkRetryDelays;\n\n // default state\n var state = {\n serverId: chunkTransferId,\n aborted: false,\n };\n\n // set onload handlers\n var ondata =\n action.ondata ||\n function(fd) {\n return fd;\n };\n var onload =\n action.onload ||\n function(xhr, method) {\n return method === 'HEAD' ? xhr.getResponseHeader('Upload-Offset') : xhr.response;\n };\n var onerror =\n action.onerror ||\n function(res) {\n return null;\n };\n\n // create server hook\n var requestTransferId = function requestTransferId(cb) {\n var formData = new FormData();\n\n // add metadata under same name\n if (isObject(metadata)) formData.append(name, JSON.stringify(metadata));\n\n var headers =\n typeof action.headers === 'function'\n ? action.headers(file, metadata)\n : Object.assign({}, action.headers, {\n 'Upload-Length': file.size,\n });\n\n var requestParams = Object.assign({}, action, {\n headers: headers,\n });\n\n // send request object\n var request = sendRequest(\n ondata(formData),\n buildURL(apiUrl, action.url),\n requestParams\n );\n\n request.onload = function(xhr) {\n return cb(onload(xhr, requestParams.method));\n };\n\n request.onerror = function(xhr) {\n return error(\n createResponse(\n 'error',\n xhr.status,\n onerror(xhr.response) || xhr.statusText,\n xhr.getAllResponseHeaders()\n )\n );\n };\n\n request.ontimeout = createTimeoutResponse(error);\n };\n\n var requestTransferOffset = function requestTransferOffset(cb) {\n var requestUrl = buildURL(apiUrl, chunkServer.url, state.serverId);\n\n var headers =\n typeof action.headers === 'function'\n ? action.headers(state.serverId)\n : Object.assign({}, action.headers);\n\n var requestParams = {\n headers: headers,\n method: 'HEAD',\n };\n\n var request = sendRequest(null, requestUrl, requestParams);\n\n request.onload = function(xhr) {\n return cb(onload(xhr, requestParams.method));\n };\n\n request.onerror = function(xhr) {\n return error(\n createResponse(\n 'error',\n xhr.status,\n onerror(xhr.response) || xhr.statusText,\n xhr.getAllResponseHeaders()\n )\n );\n };\n\n request.ontimeout = createTimeoutResponse(error);\n };\n\n // create chunks\n var lastChunkIndex = Math.floor(file.size / chunkSize);\n for (var i = 0; i <= lastChunkIndex; i++) {\n var offset = i * chunkSize;\n var data = file.slice(offset, offset + chunkSize, 'application/offset+octet-stream');\n chunks[i] = {\n index: i,\n size: data.size,\n offset: offset,\n data: data,\n file: file,\n progress: 0,\n retries: _toConsumableArray(chunkRetryDelays),\n status: ChunkStatus.QUEUED,\n error: null,\n request: null,\n timeout: null,\n };\n }\n\n var completeProcessingChunks = function completeProcessingChunks() {\n return load(state.serverId);\n };\n\n var canProcessChunk = function canProcessChunk(chunk) {\n return chunk.status === ChunkStatus.QUEUED || chunk.status === ChunkStatus.ERROR;\n };\n\n var processChunk = function processChunk(chunk) {\n // processing is paused, wait here\n if (state.aborted) return;\n\n // get next chunk to process\n chunk = chunk || chunks.find(canProcessChunk);\n\n // no more chunks to process\n if (!chunk) {\n // all done?\n if (\n chunks.every(function(chunk) {\n return chunk.status === ChunkStatus.COMPLETE;\n })\n ) {\n completeProcessingChunks();\n }\n\n // no chunk to handle\n return;\n }\n\n // now processing this chunk\n chunk.status = ChunkStatus.PROCESSING;\n chunk.progress = null;\n\n // allow parsing of formdata\n var ondata =\n chunkServer.ondata ||\n function(fd) {\n return fd;\n };\n var onerror =\n chunkServer.onerror ||\n function(res) {\n return null;\n };\n\n // send request object\n var requestUrl = buildURL(apiUrl, chunkServer.url, state.serverId);\n\n var headers =\n typeof chunkServer.headers === 'function'\n ? chunkServer.headers(chunk)\n : Object.assign({}, chunkServer.headers, {\n 'Content-Type': 'application/offset+octet-stream',\n 'Upload-Offset': chunk.offset,\n 'Upload-Length': file.size,\n 'Upload-Name': file.name,\n });\n\n var request = (chunk.request = sendRequest(\n ondata(chunk.data),\n requestUrl,\n Object.assign({}, chunkServer, {\n headers: headers,\n })\n ));\n\n request.onload = function() {\n // done!\n chunk.status = ChunkStatus.COMPLETE;\n\n // remove request reference\n chunk.request = null;\n\n // start processing more chunks\n processChunks();\n };\n\n request.onprogress = function(lengthComputable, loaded, total) {\n chunk.progress = lengthComputable ? loaded : null;\n updateTotalProgress();\n };\n\n request.onerror = function(xhr) {\n chunk.status = ChunkStatus.ERROR;\n chunk.request = null;\n chunk.error = onerror(xhr.response) || xhr.statusText;\n if (!retryProcessChunk(chunk)) {\n error(\n createResponse(\n 'error',\n xhr.status,\n onerror(xhr.response) || xhr.statusText,\n xhr.getAllResponseHeaders()\n )\n );\n }\n };\n\n request.ontimeout = function(xhr) {\n chunk.status = ChunkStatus.ERROR;\n chunk.request = null;\n if (!retryProcessChunk(chunk)) {\n createTimeoutResponse(error)(xhr);\n }\n };\n\n request.onabort = function() {\n chunk.status = ChunkStatus.QUEUED;\n chunk.request = null;\n abort();\n };\n };\n\n var retryProcessChunk = function retryProcessChunk(chunk) {\n // no more retries left\n if (chunk.retries.length === 0) return false;\n\n // new retry\n chunk.status = ChunkStatus.WAITING;\n clearTimeout(chunk.timeout);\n chunk.timeout = setTimeout(function() {\n processChunk(chunk);\n }, chunk.retries.shift());\n\n // we're going to retry\n return true;\n };\n\n var updateTotalProgress = function updateTotalProgress() {\n // calculate total progress fraction\n var totalBytesTransfered = chunks.reduce(function(p, chunk) {\n if (p === null || chunk.progress === null) return null;\n return p + chunk.progress;\n }, 0);\n\n // can't compute progress\n if (totalBytesTransfered === null) return progress(false, 0, 0);\n\n // calculate progress values\n var totalSize = chunks.reduce(function(total, chunk) {\n return total + chunk.size;\n }, 0);\n\n // can update progress indicator\n progress(true, totalBytesTransfered, totalSize);\n };\n\n // process new chunks\n var processChunks = function processChunks() {\n var totalProcessing = chunks.filter(function(chunk) {\n return chunk.status === ChunkStatus.PROCESSING;\n }).length;\n if (totalProcessing >= 1) return;\n processChunk();\n };\n\n var abortChunks = function abortChunks() {\n chunks.forEach(function(chunk) {\n clearTimeout(chunk.timeout);\n if (chunk.request) {\n chunk.request.abort();\n }\n });\n };\n\n // let's go!\n if (!state.serverId) {\n requestTransferId(function(serverId) {\n // stop here if aborted, might have happened in between request and callback\n if (state.aborted) return;\n\n // pass back to item so we can use it if something goes wrong\n transfer(serverId);\n\n // store internally\n state.serverId = serverId;\n processChunks();\n });\n } else {\n requestTransferOffset(function(offset) {\n // stop here if aborted, might have happened in between request and callback\n if (state.aborted) return;\n\n // mark chunks with lower offset as complete\n chunks\n .filter(function(chunk) {\n return chunk.offset < offset;\n })\n .forEach(function(chunk) {\n chunk.status = ChunkStatus.COMPLETE;\n chunk.progress = chunk.size;\n });\n\n // continue processing\n processChunks();\n });\n }\n\n return {\n abort: function abort() {\n state.aborted = true;\n abortChunks();\n },\n };\n };\n\n /*\n function signature:\n (file, metadata, load, error, progress, abort) => {\n return {\n abort:() => {}\n }\n }\n */\n var createFileProcessorFunction = function createFileProcessorFunction(\n apiUrl,\n action,\n name,\n options\n ) {\n return function(file, metadata, load, error, progress, abort, transfer) {\n // no file received\n if (!file) return;\n\n // if was passed a file, and we can chunk it, exit here\n var canChunkUpload = options.chunkUploads;\n var shouldChunkUpload = canChunkUpload && file.size > options.chunkSize;\n var willChunkUpload = canChunkUpload && (shouldChunkUpload || options.chunkForce);\n if (file instanceof Blob && willChunkUpload)\n return processFileChunked(\n apiUrl,\n action,\n name,\n file,\n metadata,\n load,\n error,\n progress,\n abort,\n transfer,\n options\n );\n\n // set handlers\n var ondata =\n action.ondata ||\n function(fd) {\n return fd;\n };\n var onload =\n action.onload ||\n function(res) {\n return res;\n };\n var onerror =\n action.onerror ||\n function(res) {\n return null;\n };\n\n var headers =\n typeof action.headers === 'function'\n ? action.headers(file, metadata) || {}\n : Object.assign(\n {},\n\n action.headers\n );\n\n var requestParams = Object.assign({}, action, {\n headers: headers,\n });\n\n // create formdata object\n var formData = new FormData();\n\n // add metadata under same name\n if (isObject(metadata)) {\n formData.append(name, JSON.stringify(metadata));\n }\n\n // Turn into an array of objects so no matter what the input, we can handle it the same way\n (file instanceof Blob ? [{ name: null, file: file }] : file).forEach(function(item) {\n formData.append(\n name,\n item.file,\n item.name === null ? item.file.name : '' + item.name + item.file.name\n );\n });\n\n // send request object\n var request = sendRequest(\n ondata(formData),\n buildURL(apiUrl, action.url),\n requestParams\n );\n request.onload = function(xhr) {\n load(\n createResponse(\n 'load',\n xhr.status,\n onload(xhr.response),\n xhr.getAllResponseHeaders()\n )\n );\n };\n\n request.onerror = function(xhr) {\n error(\n createResponse(\n 'error',\n xhr.status,\n onerror(xhr.response) || xhr.statusText,\n xhr.getAllResponseHeaders()\n )\n );\n };\n\n request.ontimeout = createTimeoutResponse(error);\n request.onprogress = progress;\n request.onabort = abort;\n\n // should return request\n return request;\n };\n };\n\n var createProcessorFunction = function createProcessorFunction() {\n var apiUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var name = arguments.length > 2 ? arguments[2] : undefined;\n var options = arguments.length > 3 ? arguments[3] : undefined;\n\n // custom handler (should also handle file, load, error, progress and abort)\n if (typeof action === 'function')\n return function() {\n for (\n var _len = arguments.length, params = new Array(_len), _key = 0;\n _key < _len;\n _key++\n ) {\n params[_key] = arguments[_key];\n }\n return action.apply(void 0, [name].concat(params, [options]));\n };\n\n // no action supplied\n if (!action || !isString(action.url)) return null;\n\n // internal handler\n return createFileProcessorFunction(apiUrl, action, name, options);\n };\n\n /*\n function signature:\n (uniqueFileId, load, error) => { }\n */\n var createRevertFunction = function createRevertFunction() {\n var apiUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var action = arguments.length > 1 ? arguments[1] : undefined;\n // is custom implementation\n if (typeof action === 'function') {\n return action;\n }\n\n // no action supplied, return stub function, interface will work, but file won't be removed\n if (!action || !isString(action.url)) {\n return function(uniqueFileId, load) {\n return load();\n };\n }\n\n // set onload hanlder\n var onload =\n action.onload ||\n function(res) {\n return res;\n };\n var onerror =\n action.onerror ||\n function(res) {\n return null;\n };\n\n // internal implementation\n return function(uniqueFileId, load, error) {\n var request = sendRequest(\n uniqueFileId,\n apiUrl + action.url,\n action // contains method, headers and withCredentials properties\n );\n request.onload = function(xhr) {\n load(\n createResponse(\n 'load',\n xhr.status,\n onload(xhr.response),\n xhr.getAllResponseHeaders()\n )\n );\n };\n\n request.onerror = function(xhr) {\n error(\n createResponse(\n 'error',\n xhr.status,\n onerror(xhr.response) || xhr.statusText,\n xhr.getAllResponseHeaders()\n )\n );\n };\n\n request.ontimeout = createTimeoutResponse(error);\n\n return request;\n };\n };\n\n var getRandomNumber = function getRandomNumber() {\n var min = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return min + Math.random() * (max - min);\n };\n\n var createPerceivedPerformanceUpdater = function createPerceivedPerformanceUpdater(cb) {\n var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var tickMin = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 25;\n var tickMax = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 250;\n var timeout = null;\n var start = Date.now();\n\n var tick = function tick() {\n var runtime = Date.now() - start;\n var delay = getRandomNumber(tickMin, tickMax);\n\n if (runtime + delay > duration) {\n delay = runtime + delay - duration;\n }\n\n var progress = runtime / duration;\n if (progress >= 1 || document.hidden) {\n cb(1);\n return;\n }\n\n cb(progress);\n\n timeout = setTimeout(tick, delay);\n };\n\n if (duration > 0) tick();\n\n return {\n clear: function clear() {\n clearTimeout(timeout);\n },\n };\n };\n\n var createFileProcessor = function createFileProcessor(processFn, options) {\n var state = {\n complete: false,\n perceivedProgress: 0,\n perceivedPerformanceUpdater: null,\n progress: null,\n timestamp: null,\n perceivedDuration: 0,\n duration: 0,\n request: null,\n response: null,\n };\n var allowMinimumUploadDuration = options.allowMinimumUploadDuration;\n\n var process = function process(file, metadata) {\n var progressFn = function progressFn() {\n // we've not yet started the real download, stop here\n // the request might not go through, for instance, there might be some server trouble\n // if state.progress is null, the server does not allow computing progress and we show the spinner instead\n if (state.duration === 0 || state.progress === null) return;\n\n // as we're now processing, fire the progress event\n api.fire('progress', api.getProgress());\n };\n\n var completeFn = function completeFn() {\n state.complete = true;\n api.fire('load-perceived', state.response.body);\n };\n\n // let's start processing\n api.fire('start');\n\n // set request start\n state.timestamp = Date.now();\n\n // create perceived performance progress indicator\n state.perceivedPerformanceUpdater = createPerceivedPerformanceUpdater(\n function(progress) {\n state.perceivedProgress = progress;\n state.perceivedDuration = Date.now() - state.timestamp;\n\n progressFn();\n\n // if fake progress is done, and a response has been received,\n // and we've not yet called the complete method\n if (state.response && state.perceivedProgress === 1 && !state.complete) {\n // we done!\n completeFn();\n }\n },\n // random delay as in a list of files you start noticing\n // files uploading at the exact same speed\n allowMinimumUploadDuration ? getRandomNumber(750, 1500) : 0\n );\n\n // remember request so we can abort it later\n state.request = processFn(\n // the file to process\n file,\n\n // the metadata to send along\n metadata,\n\n // callbacks (load, error, progress, abort, transfer)\n // load expects the body to be a server id if\n // you want to make use of revert\n function(response) {\n // we put the response in state so we can access\n // it outside of this method\n state.response = isObject(response)\n ? response\n : {\n type: 'load',\n code: 200,\n body: '' + response,\n headers: {},\n };\n\n // update duration\n state.duration = Date.now() - state.timestamp;\n\n // force progress to 1 as we're now done\n state.progress = 1;\n\n // actual load is done let's share results\n api.fire('load', state.response.body);\n\n // we are really done\n // if perceived progress is 1 ( wait for perceived progress to complete )\n // or if server does not support progress ( null )\n if (\n !allowMinimumUploadDuration ||\n (allowMinimumUploadDuration && state.perceivedProgress === 1)\n ) {\n completeFn();\n }\n },\n\n // error is expected to be an object with type, code, body\n function(error) {\n // cancel updater\n state.perceivedPerformanceUpdater.clear();\n\n // update others about this error\n api.fire(\n 'error',\n isObject(error)\n ? error\n : {\n type: 'error',\n code: 0,\n body: '' + error,\n }\n );\n },\n\n // actual processing progress\n function(computable, current, total) {\n // update actual duration\n state.duration = Date.now() - state.timestamp;\n\n // update actual progress\n state.progress = computable ? current / total : null;\n\n progressFn();\n },\n\n // abort does not expect a value\n function() {\n // stop updater\n state.perceivedPerformanceUpdater.clear();\n\n // fire the abort event so we can switch visuals\n api.fire('abort', state.response ? state.response.body : null);\n },\n\n // register the id for this transfer\n function(transferId) {\n api.fire('transfer', transferId);\n }\n );\n };\n\n var abort = function abort() {\n // no request running, can't abort\n if (!state.request) return;\n\n // stop updater\n state.perceivedPerformanceUpdater.clear();\n\n // abort actual request\n if (state.request.abort) state.request.abort();\n\n // if has response object, we've completed the request\n state.complete = true;\n };\n\n var reset = function reset() {\n abort();\n state.complete = false;\n state.perceivedProgress = 0;\n state.progress = 0;\n state.timestamp = null;\n state.perceivedDuration = 0;\n state.duration = 0;\n state.request = null;\n state.response = null;\n };\n\n var getProgress = allowMinimumUploadDuration\n ? function() {\n return state.progress ? Math.min(state.progress, state.perceivedProgress) : null;\n }\n : function() {\n return state.progress || null;\n };\n\n var getDuration = allowMinimumUploadDuration\n ? function() {\n return Math.min(state.duration, state.perceivedDuration);\n }\n : function() {\n return state.duration;\n };\n\n var api = Object.assign({}, on(), {\n process: process, // start processing file\n abort: abort, // abort active process request\n getProgress: getProgress,\n getDuration: getDuration,\n reset: reset,\n });\n\n return api;\n };\n\n var getFilenameWithoutExtension = function getFilenameWithoutExtension(name) {\n return name.substr(0, name.lastIndexOf('.')) || name;\n };\n\n var createFileStub = function createFileStub(source) {\n var data = [source.name, source.size, source.type];\n\n // is blob or base64, then we need to set the name\n if (source instanceof Blob || isBase64DataURI(source)) {\n data[0] = source.name || getDateString();\n } else if (isBase64DataURI(source)) {\n // if is base64 data uri we need to determine the average size and type\n data[1] = source.length;\n data[2] = getMimeTypeFromBase64DataURI(source);\n } else if (isString(source)) {\n // url\n data[0] = getFilenameFromURL(source);\n data[1] = 0;\n data[2] = 'application/octet-stream';\n }\n\n return {\n name: data[0],\n size: data[1],\n type: data[2],\n };\n };\n\n var isFile = function isFile(value) {\n return !!(value instanceof File || (value instanceof Blob && value.name));\n };\n\n var deepCloneObject = function deepCloneObject(src) {\n if (!isObject(src)) return src;\n var target = isArray(src) ? [] : {};\n for (var key in src) {\n if (!src.hasOwnProperty(key)) continue;\n var v = src[key];\n target[key] = v && isObject(v) ? deepCloneObject(v) : v;\n }\n return target;\n };\n\n var createItem = function createItem() {\n var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var serverFileReference =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var file = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n // unique id for this item, is used to identify the item across views\n var id = getUniqueId();\n\n /**\n * Internal item state\n */\n var state = {\n // is archived\n archived: false,\n\n // if is frozen, no longer fires events\n frozen: false,\n\n // removed from view\n released: false,\n\n // original source\n source: null,\n\n // file model reference\n file: file,\n\n // id of file on server\n serverFileReference: serverFileReference,\n\n // id of file transfer on server\n transferId: null,\n\n // is aborted\n processingAborted: false,\n\n // current item status\n status: serverFileReference ? ItemStatus.PROCESSING_COMPLETE : ItemStatus.INIT,\n\n // active processes\n activeLoader: null,\n activeProcessor: null,\n };\n\n // callback used when abort processing is called to link back to the resolve method\n var abortProcessingRequestComplete = null;\n\n /**\n * Externally added item metadata\n */\n var metadata = {};\n\n // item data\n var setStatus = function setStatus(status) {\n return (state.status = status);\n };\n\n // fire event unless the item has been archived\n var fire = function fire(event) {\n if (state.released || state.frozen) return;\n for (\n var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1;\n _key < _len;\n _key++\n ) {\n params[_key - 1] = arguments[_key];\n }\n api.fire.apply(api, [event].concat(params));\n };\n\n // file data\n var getFileExtension = function getFileExtension() {\n return getExtensionFromFilename(state.file.name);\n };\n var getFileType = function getFileType() {\n return state.file.type;\n };\n var getFileSize = function getFileSize() {\n return state.file.size;\n };\n var getFile = function getFile() {\n return state.file;\n };\n\n //\n // logic to load a file\n //\n var load = function load(source, loader, onload) {\n // remember the original item source\n state.source = source;\n\n // source is known\n api.fireSync('init');\n\n // file stub is already there\n if (state.file) {\n api.fireSync('load-skip');\n return;\n }\n\n // set a stub file object while loading the actual data\n state.file = createFileStub(source);\n\n // starts loading\n loader.on('init', function() {\n fire('load-init');\n });\n\n // we'eve received a size indication, let's update the stub\n loader.on('meta', function(meta) {\n // set size of file stub\n state.file.size = meta.size;\n\n // set name of file stub\n state.file.filename = meta.filename;\n\n // if has received source, we done\n if (meta.source) {\n origin = FileOrigin.LIMBO;\n state.serverFileReference = meta.source;\n state.status = ItemStatus.PROCESSING_COMPLETE;\n }\n\n // size has been updated\n fire('load-meta');\n });\n\n // the file is now loading we need to update the progress indicators\n loader.on('progress', function(progress) {\n setStatus(ItemStatus.LOADING);\n\n fire('load-progress', progress);\n });\n\n // an error was thrown while loading the file, we need to switch to error state\n loader.on('error', function(error) {\n setStatus(ItemStatus.LOAD_ERROR);\n\n fire('load-request-error', error);\n });\n\n // user or another process aborted the file load (cannot retry)\n loader.on('abort', function() {\n setStatus(ItemStatus.INIT);\n fire('load-abort');\n });\n\n // done loading\n loader.on('load', function(file) {\n // as we've now loaded the file the loader is no longer required\n state.activeLoader = null;\n\n // called when file has loaded succesfully\n var success = function success(result) {\n // set (possibly) transformed file\n state.file = isFile(result) ? result : state.file;\n\n // file received\n if (origin === FileOrigin.LIMBO && state.serverFileReference) {\n setStatus(ItemStatus.PROCESSING_COMPLETE);\n } else {\n setStatus(ItemStatus.IDLE);\n }\n\n fire('load');\n };\n\n var error = function error(result) {\n // set original file\n state.file = file;\n fire('load-meta');\n\n setStatus(ItemStatus.LOAD_ERROR);\n fire('load-file-error', result);\n };\n\n // if we already have a server file reference, we don't need to call the onload method\n if (state.serverFileReference) {\n success(file);\n return;\n }\n\n // no server id, let's give this file the full treatment\n onload(file, success, error);\n });\n\n // set loader source data\n loader.setSource(source);\n\n // set as active loader\n state.activeLoader = loader;\n\n // load the source data\n loader.load();\n };\n\n var retryLoad = function retryLoad() {\n if (!state.activeLoader) {\n return;\n }\n state.activeLoader.load();\n };\n\n var abortLoad = function abortLoad() {\n if (state.activeLoader) {\n state.activeLoader.abort();\n return;\n }\n setStatus(ItemStatus.INIT);\n fire('load-abort');\n };\n\n //\n // logic to process a file\n //\n var process = function process(processor, onprocess) {\n // processing was aborted\n if (state.processingAborted) {\n state.processingAborted = false;\n return;\n }\n\n // now processing\n setStatus(ItemStatus.PROCESSING);\n\n // reset abort callback\n abortProcessingRequestComplete = null;\n\n // if no file loaded we'll wait for the load event\n if (!(state.file instanceof Blob)) {\n api.on('load', function() {\n process(processor, onprocess);\n });\n return;\n }\n\n // setup processor\n processor.on('load', function(serverFileReference) {\n // need this id to be able to revert the upload\n state.transferId = null;\n state.serverFileReference = serverFileReference;\n });\n\n // register transfer id\n processor.on('transfer', function(transferId) {\n // need this id to be able to revert the upload\n state.transferId = transferId;\n });\n\n processor.on('load-perceived', function(serverFileReference) {\n // no longer required\n state.activeProcessor = null;\n\n // need this id to be able to rever the upload\n state.transferId = null;\n state.serverFileReference = serverFileReference;\n\n setStatus(ItemStatus.PROCESSING_COMPLETE);\n fire('process-complete', serverFileReference);\n });\n\n processor.on('start', function() {\n fire('process-start');\n });\n\n processor.on('error', function(error) {\n state.activeProcessor = null;\n setStatus(ItemStatus.PROCESSING_ERROR);\n fire('process-error', error);\n });\n\n processor.on('abort', function(serverFileReference) {\n state.activeProcessor = null;\n\n // if file was uploaded but processing was cancelled during perceived processor time store file reference\n state.serverFileReference = serverFileReference;\n\n setStatus(ItemStatus.IDLE);\n fire('process-abort');\n\n // has timeout so doesn't interfere with remove action\n if (abortProcessingRequestComplete) {\n abortProcessingRequestComplete();\n }\n });\n\n processor.on('progress', function(progress) {\n fire('process-progress', progress);\n });\n\n // when successfully transformed\n var success = function success(file) {\n // if was archived in the mean time, don't process\n if (state.archived) return;\n\n // process file!\n processor.process(file, Object.assign({}, metadata));\n };\n\n // something went wrong during transform phase\n var error = console.error;\n\n // start processing the file\n onprocess(state.file, success, error);\n\n // set as active processor\n state.activeProcessor = processor;\n };\n\n var requestProcessing = function requestProcessing() {\n state.processingAborted = false;\n setStatus(ItemStatus.PROCESSING_QUEUED);\n };\n\n var abortProcessing = function abortProcessing() {\n return new Promise(function(resolve) {\n if (!state.activeProcessor) {\n state.processingAborted = true;\n\n setStatus(ItemStatus.IDLE);\n fire('process-abort');\n\n resolve();\n return;\n }\n\n abortProcessingRequestComplete = function abortProcessingRequestComplete() {\n resolve();\n };\n\n state.activeProcessor.abort();\n });\n };\n\n //\n // logic to revert a processed file\n //\n var revert = function revert(revertFileUpload, forceRevert) {\n return new Promise(function(resolve, reject) {\n // a completed upload will have a serverFileReference, a failed chunked upload where\n // getting a serverId succeeded but >=0 chunks have been uploaded will have transferId set\n var serverTransferId =\n state.serverFileReference !== null\n ? state.serverFileReference\n : state.transferId;\n\n // cannot revert without a server id for this process\n if (serverTransferId === null) {\n resolve();\n return;\n }\n\n // revert the upload (fire and forget)\n revertFileUpload(\n serverTransferId,\n function() {\n // reset file server id and transfer id as now it's not available on the server\n state.serverFileReference = null;\n state.transferId = null;\n resolve();\n },\n function(error) {\n // don't set error state when reverting is optional, it will always resolve\n if (!forceRevert) {\n resolve();\n return;\n }\n\n // oh no errors\n setStatus(ItemStatus.PROCESSING_REVERT_ERROR);\n fire('process-revert-error');\n reject(error);\n }\n );\n\n // fire event\n setStatus(ItemStatus.IDLE);\n fire('process-revert');\n });\n };\n\n // exposed methods\n var _setMetadata = function setMetadata(key, value, silent) {\n var keys = key.split('.');\n var root = keys[0];\n var last = keys.pop();\n var data = metadata;\n keys.forEach(function(key) {\n return (data = data[key]);\n });\n\n // compare old value against new value, if they're the same, we're not updating\n if (JSON.stringify(data[last]) === JSON.stringify(value)) return;\n\n // update value\n data[last] = value;\n\n // fire update\n fire('metadata-update', {\n key: root,\n value: metadata[root],\n silent: silent,\n });\n };\n\n var getMetadata = function getMetadata(key) {\n return deepCloneObject(key ? metadata[key] : metadata);\n };\n\n var api = Object.assign(\n {\n id: {\n get: function get() {\n return id;\n },\n },\n origin: {\n get: function get() {\n return origin;\n },\n set: function set(value) {\n return (origin = value);\n },\n },\n serverId: {\n get: function get() {\n return state.serverFileReference;\n },\n },\n transferId: {\n get: function get() {\n return state.transferId;\n },\n },\n status: {\n get: function get() {\n return state.status;\n },\n },\n filename: {\n get: function get() {\n return state.file.name;\n },\n },\n filenameWithoutExtension: {\n get: function get() {\n return getFilenameWithoutExtension(state.file.name);\n },\n },\n fileExtension: { get: getFileExtension },\n fileType: { get: getFileType },\n fileSize: { get: getFileSize },\n file: { get: getFile },\n relativePath: {\n get: function get() {\n return state.file._relativePath;\n },\n },\n\n source: {\n get: function get() {\n return state.source;\n },\n },\n\n getMetadata: getMetadata,\n setMetadata: function setMetadata(key, value, silent) {\n if (isObject(key)) {\n var data = key;\n Object.keys(data).forEach(function(key) {\n _setMetadata(key, data[key], value);\n });\n return key;\n }\n _setMetadata(key, value, silent);\n return value;\n },\n\n extend: function extend(name, handler) {\n return (itemAPI[name] = handler);\n },\n\n abortLoad: abortLoad,\n retryLoad: retryLoad,\n requestProcessing: requestProcessing,\n abortProcessing: abortProcessing,\n\n load: load,\n process: process,\n revert: revert,\n },\n\n on(),\n {\n freeze: function freeze() {\n return (state.frozen = true);\n },\n\n release: function release() {\n return (state.released = true);\n },\n released: {\n get: function get() {\n return state.released;\n },\n },\n\n archive: function archive() {\n return (state.archived = true);\n },\n archived: {\n get: function get() {\n return state.archived;\n },\n },\n }\n );\n\n // create it here instead of returning it instantly so we can extend it later\n var itemAPI = createObject(api);\n\n return itemAPI;\n };\n\n var getItemIndexByQuery = function getItemIndexByQuery(items, query) {\n // just return first index\n if (isEmpty(query)) {\n return 0;\n }\n\n // invalid queries\n if (!isString(query)) {\n return -1;\n }\n\n // return item by id (or -1 if not found)\n return items.findIndex(function(item) {\n return item.id === query;\n });\n };\n\n var getItemById = function getItemById(items, itemId) {\n var index = getItemIndexByQuery(items, itemId);\n if (index < 0) {\n return;\n }\n return items[index] || null;\n };\n\n var fetchBlob = function fetchBlob(url, load, error, progress, abort, headers) {\n var request = sendRequest(null, url, {\n method: 'GET',\n responseType: 'blob',\n });\n\n request.onload = function(xhr) {\n // get headers\n var headers = xhr.getAllResponseHeaders();\n\n // get filename\n var filename = getFileInfoFromHeaders(headers).name || getFilenameFromURL(url);\n\n // create response\n load(\n createResponse('load', xhr.status, getFileFromBlob(xhr.response, filename), headers)\n );\n };\n\n request.onerror = function(xhr) {\n error(createResponse('error', xhr.status, xhr.statusText, xhr.getAllResponseHeaders()));\n };\n\n request.onheaders = function(xhr) {\n headers(createResponse('headers', xhr.status, null, xhr.getAllResponseHeaders()));\n };\n\n request.ontimeout = createTimeoutResponse(error);\n request.onprogress = progress;\n request.onabort = abort;\n\n // should return request\n return request;\n };\n\n var getDomainFromURL = function getDomainFromURL(url) {\n if (url.indexOf('//') === 0) {\n url = location.protocol + url;\n }\n return url\n .toLowerCase()\n .replace('blob:', '')\n .replace(/([a-z])?:\\/\\//, '$1')\n .split('/')[0];\n };\n\n var isExternalURL = function isExternalURL(url) {\n return (\n (url.indexOf(':') > -1 || url.indexOf('//') > -1) &&\n getDomainFromURL(location.href) !== getDomainFromURL(url)\n );\n };\n\n var dynamicLabel = function dynamicLabel(label) {\n return function() {\n return isFunction(label) ? label.apply(void 0, arguments) : label;\n };\n };\n\n var isMockItem = function isMockItem(item) {\n return !isFile(item.file);\n };\n\n var listUpdated = function listUpdated(dispatch, state) {\n clearTimeout(state.listUpdateTimeout);\n state.listUpdateTimeout = setTimeout(function() {\n dispatch('DID_UPDATE_ITEMS', { items: getActiveItems(state.items) });\n }, 0);\n };\n\n var optionalPromise = function optionalPromise(fn) {\n for (\n var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1;\n _key < _len;\n _key++\n ) {\n params[_key - 1] = arguments[_key];\n }\n return new Promise(function(resolve) {\n if (!fn) {\n return resolve(true);\n }\n\n var result = fn.apply(void 0, params);\n\n if (result == null) {\n return resolve(true);\n }\n\n if (typeof result === 'boolean') {\n return resolve(result);\n }\n\n if (typeof result.then === 'function') {\n result.then(resolve);\n }\n });\n };\n\n var sortItems = function sortItems(state, compare) {\n state.items.sort(function(a, b) {\n return compare(createItemAPI(a), createItemAPI(b));\n });\n };\n\n // returns item based on state\n var getItemByQueryFromState = function getItemByQueryFromState(state, itemHandler) {\n return function() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var query = _ref.query,\n _ref$success = _ref.success,\n success = _ref$success === void 0 ? function() {} : _ref$success,\n _ref$failure = _ref.failure,\n failure = _ref$failure === void 0 ? function() {} : _ref$failure,\n options = _objectWithoutProperties(_ref, ['query', 'success', 'failure']);\n var item = getItemByQuery(state.items, query);\n if (!item) {\n failure({\n error: createResponse('error', 0, 'Item not found'),\n file: null,\n });\n\n return;\n }\n itemHandler(item, success, failure, options || {});\n };\n };\n\n var actions = function actions(dispatch, query, state) {\n return {\n /**\n * Aborts all ongoing processes\n */\n ABORT_ALL: function ABORT_ALL() {\n getActiveItems(state.items).forEach(function(item) {\n item.freeze();\n item.abortLoad();\n item.abortProcessing();\n });\n },\n\n /**\n * Sets initial files\n */\n DID_SET_FILES: function DID_SET_FILES(_ref2) {\n var _ref2$value = _ref2.value,\n value = _ref2$value === void 0 ? [] : _ref2$value;\n // map values to file objects\n var files = value.map(function(file) {\n return {\n source: file.source ? file.source : file,\n options: file.options,\n };\n });\n\n // loop over files, if file is in list, leave it be, if not, remove\n // test if items should be moved\n var activeItems = getActiveItems(state.items);\n\n activeItems.forEach(function(item) {\n // if item not is in new value, remove\n if (\n !files.find(function(file) {\n return file.source === item.source || file.source === item.file;\n })\n ) {\n dispatch('REMOVE_ITEM', { query: item, remove: false });\n }\n });\n\n // add new files\n activeItems = getActiveItems(state.items);\n files.forEach(function(file, index) {\n // if file is already in list\n if (\n activeItems.find(function(item) {\n return item.source === file.source || item.file === file.source;\n })\n )\n return;\n\n // not in list, add\n dispatch(\n 'ADD_ITEM',\n Object.assign({}, file, {\n interactionMethod: InteractionMethod.NONE,\n index: index,\n })\n );\n });\n },\n\n DID_UPDATE_ITEM_METADATA: function DID_UPDATE_ITEM_METADATA(_ref3) {\n var id = _ref3.id,\n action = _ref3.action,\n change = _ref3.change;\n // don't do anything\n if (change.silent) return;\n\n // if is called multiple times in close succession we combined all calls together to save resources\n clearTimeout(state.itemUpdateTimeout);\n state.itemUpdateTimeout = setTimeout(function() {\n var item = getItemById(state.items, id);\n\n // only revert and attempt to upload when we're uploading to a server\n if (!query('IS_ASYNC')) {\n // should we update the output data\n applyFilterChain('SHOULD_PREPARE_OUTPUT', false, {\n item: item,\n query: query,\n action: action,\n change: change,\n }).then(function(shouldPrepareOutput) {\n // plugins determined the output data should be prepared (or not), can be adjusted with beforePrepareOutput hook\n var beforePrepareFile = query('GET_BEFORE_PREPARE_FILE');\n if (beforePrepareFile)\n shouldPrepareOutput = beforePrepareFile(item, shouldPrepareOutput);\n\n if (!shouldPrepareOutput) return;\n\n dispatch(\n 'REQUEST_PREPARE_OUTPUT',\n {\n query: id,\n item: item,\n success: function success(file) {\n dispatch('DID_PREPARE_OUTPUT', { id: id, file: file });\n },\n },\n\n true\n );\n });\n\n return;\n }\n\n // if is local item we need to enable upload button so change can be propagated to server\n if (item.origin === FileOrigin.LOCAL) {\n dispatch('DID_LOAD_ITEM', {\n id: item.id,\n error: null,\n serverFileReference: item.source,\n });\n }\n\n // for async scenarios\n var upload = function upload() {\n // we push this forward a bit so the interface is updated correctly\n setTimeout(function() {\n dispatch('REQUEST_ITEM_PROCESSING', { query: id });\n }, 32);\n };\n\n var revert = function revert(doUpload) {\n item.revert(\n createRevertFunction(\n state.options.server.url,\n state.options.server.revert\n ),\n query('GET_FORCE_REVERT')\n )\n .then(doUpload ? upload : function() {})\n .catch(function() {});\n };\n\n var abort = function abort(doUpload) {\n item.abortProcessing().then(doUpload ? upload : function() {});\n };\n\n // if we should re-upload the file immediately\n if (item.status === ItemStatus.PROCESSING_COMPLETE) {\n return revert(state.options.instantUpload);\n }\n\n // if currently uploading, cancel upload\n if (item.status === ItemStatus.PROCESSING) {\n return abort(state.options.instantUpload);\n }\n\n if (state.options.instantUpload) {\n upload();\n }\n }, 0);\n },\n\n MOVE_ITEM: function MOVE_ITEM(_ref4) {\n var query = _ref4.query,\n index = _ref4.index;\n var item = getItemByQuery(state.items, query);\n if (!item) return;\n var currentIndex = state.items.indexOf(item);\n index = limit(index, 0, state.items.length - 1);\n if (currentIndex === index) return;\n state.items.splice(index, 0, state.items.splice(currentIndex, 1)[0]);\n },\n\n SORT: function SORT(_ref5) {\n var compare = _ref5.compare;\n sortItems(state, compare);\n dispatch('DID_SORT_ITEMS', {\n items: query('GET_ACTIVE_ITEMS'),\n });\n },\n\n ADD_ITEMS: function ADD_ITEMS(_ref6) {\n var items = _ref6.items,\n index = _ref6.index,\n interactionMethod = _ref6.interactionMethod,\n _ref6$success = _ref6.success,\n success = _ref6$success === void 0 ? function() {} : _ref6$success,\n _ref6$failure = _ref6.failure,\n failure = _ref6$failure === void 0 ? function() {} : _ref6$failure;\n var currentIndex = index;\n\n if (index === -1 || typeof index === 'undefined') {\n var insertLocation = query('GET_ITEM_INSERT_LOCATION');\n var totalItems = query('GET_TOTAL_ITEMS');\n currentIndex = insertLocation === 'before' ? 0 : totalItems;\n }\n\n var ignoredFiles = query('GET_IGNORED_FILES');\n var isValidFile = function isValidFile(source) {\n return isFile(source)\n ? !ignoredFiles.includes(source.name.toLowerCase())\n : !isEmpty(source);\n };\n var validItems = items.filter(isValidFile);\n\n var promises = validItems.map(function(source) {\n return new Promise(function(resolve, reject) {\n dispatch('ADD_ITEM', {\n interactionMethod: interactionMethod,\n source: source.source || source,\n success: resolve,\n failure: reject,\n index: currentIndex++,\n options: source.options || {},\n });\n });\n });\n\n Promise.all(promises)\n .then(success)\n .catch(failure);\n },\n\n /**\n * @param source\n * @param index\n * @param interactionMethod\n */\n ADD_ITEM: function ADD_ITEM(_ref7) {\n var source = _ref7.source,\n _ref7$index = _ref7.index,\n index = _ref7$index === void 0 ? -1 : _ref7$index,\n interactionMethod = _ref7.interactionMethod,\n _ref7$success = _ref7.success,\n success = _ref7$success === void 0 ? function() {} : _ref7$success,\n _ref7$failure = _ref7.failure,\n failure = _ref7$failure === void 0 ? function() {} : _ref7$failure,\n _ref7$options = _ref7.options,\n options = _ref7$options === void 0 ? {} : _ref7$options;\n // if no source supplied\n if (isEmpty(source)) {\n failure({\n error: createResponse('error', 0, 'No source'),\n file: null,\n });\n\n return;\n }\n\n // filter out invalid file items, used to filter dropped directory contents\n if (\n isFile(source) &&\n state.options.ignoredFiles.includes(source.name.toLowerCase())\n ) {\n // fail silently\n return;\n }\n\n // test if there's still room in the list of files\n if (!hasRoomForItem(state)) {\n // if multiple allowed, we can't replace\n // or if only a single item is allowed but we're not allowed to replace it we exit\n if (\n state.options.allowMultiple ||\n (!state.options.allowMultiple && !state.options.allowReplace)\n ) {\n var error = createResponse('warning', 0, 'Max files');\n\n dispatch('DID_THROW_MAX_FILES', {\n source: source,\n error: error,\n });\n\n failure({ error: error, file: null });\n\n return;\n }\n\n // let's replace the item\n // id of first item we're about to remove\n var _item = getActiveItems(state.items)[0];\n\n // if has been processed remove it from the server as well\n if (\n _item.status === ItemStatus.PROCESSING_COMPLETE ||\n _item.status === ItemStatus.PROCESSING_REVERT_ERROR\n ) {\n var forceRevert = query('GET_FORCE_REVERT');\n _item\n .revert(\n createRevertFunction(\n state.options.server.url,\n state.options.server.revert\n ),\n forceRevert\n )\n .then(function() {\n if (!forceRevert) return;\n\n // try to add now\n dispatch('ADD_ITEM', {\n source: source,\n index: index,\n interactionMethod: interactionMethod,\n success: success,\n failure: failure,\n options: options,\n });\n })\n .catch(function() {}); // no need to handle this catch state for now\n\n if (forceRevert) return;\n }\n\n // remove first item as it will be replaced by this item\n dispatch('REMOVE_ITEM', { query: _item.id });\n }\n\n // where did the file originate\n var origin =\n options.type === 'local'\n ? FileOrigin.LOCAL\n : options.type === 'limbo'\n ? FileOrigin.LIMBO\n : FileOrigin.INPUT;\n\n // create a new blank item\n var item = createItem(\n // where did this file come from\n origin,\n\n // an input file never has a server file reference\n origin === FileOrigin.INPUT ? null : source,\n\n // file mock data, if defined\n options.file\n );\n\n // set initial meta data\n Object.keys(options.metadata || {}).forEach(function(key) {\n item.setMetadata(key, options.metadata[key]);\n });\n\n // created the item, let plugins add methods\n applyFilters('DID_CREATE_ITEM', item, { query: query, dispatch: dispatch });\n\n // where to insert new items\n var itemInsertLocation = query('GET_ITEM_INSERT_LOCATION');\n\n // adjust index if is not allowed to pick location\n if (!state.options.itemInsertLocationFreedom) {\n index = itemInsertLocation === 'before' ? -1 : state.items.length;\n }\n\n // add item to list\n insertItem(state.items, item, index);\n\n // sort items in list\n if (isFunction(itemInsertLocation) && source) {\n sortItems(state, itemInsertLocation);\n }\n\n // get a quick reference to the item id\n var id = item.id;\n\n // observe item events\n item.on('init', function() {\n dispatch('DID_INIT_ITEM', { id: id });\n });\n\n item.on('load-init', function() {\n dispatch('DID_START_ITEM_LOAD', { id: id });\n });\n\n item.on('load-meta', function() {\n dispatch('DID_UPDATE_ITEM_META', { id: id });\n });\n\n item.on('load-progress', function(progress) {\n dispatch('DID_UPDATE_ITEM_LOAD_PROGRESS', { id: id, progress: progress });\n });\n\n item.on('load-request-error', function(error) {\n var mainStatus = dynamicLabel(state.options.labelFileLoadError)(error);\n\n // is client error, no way to recover\n if (error.code >= 400 && error.code < 500) {\n dispatch('DID_THROW_ITEM_INVALID', {\n id: id,\n error: error,\n status: {\n main: mainStatus,\n sub: error.code + ' (' + error.body + ')',\n },\n });\n\n // reject the file so can be dealt with through API\n failure({ error: error, file: createItemAPI(item) });\n return;\n }\n\n // is possible server error, so might be possible to retry\n dispatch('DID_THROW_ITEM_LOAD_ERROR', {\n id: id,\n error: error,\n status: {\n main: mainStatus,\n sub: state.options.labelTapToRetry,\n },\n });\n });\n\n item.on('load-file-error', function(error) {\n dispatch('DID_THROW_ITEM_INVALID', {\n id: id,\n error: error.status,\n status: error.status,\n });\n\n failure({ error: error.status, file: createItemAPI(item) });\n });\n\n item.on('load-abort', function() {\n dispatch('REMOVE_ITEM', { query: id });\n });\n\n item.on('load-skip', function() {\n dispatch('COMPLETE_LOAD_ITEM', {\n query: id,\n item: item,\n data: {\n source: source,\n success: success,\n },\n });\n });\n\n item.on('load', function() {\n var handleAdd = function handleAdd(shouldAdd) {\n // no should not add this file\n if (!shouldAdd) {\n dispatch('REMOVE_ITEM', {\n query: id,\n });\n\n return;\n }\n\n // now interested in metadata updates\n item.on('metadata-update', function(change) {\n dispatch('DID_UPDATE_ITEM_METADATA', { id: id, change: change });\n });\n\n // let plugins decide if the output data should be prepared at this point\n // means we'll do this and wait for idle state\n applyFilterChain('SHOULD_PREPARE_OUTPUT', false, {\n item: item,\n query: query,\n }).then(function(shouldPrepareOutput) {\n // plugins determined the output data should be prepared (or not), can be adjusted with beforePrepareOutput hook\n var beforePrepareFile = query('GET_BEFORE_PREPARE_FILE');\n if (beforePrepareFile)\n shouldPrepareOutput = beforePrepareFile(item, shouldPrepareOutput);\n\n var loadComplete = function loadComplete() {\n dispatch('COMPLETE_LOAD_ITEM', {\n query: id,\n item: item,\n data: {\n source: source,\n success: success,\n },\n });\n\n listUpdated(dispatch, state);\n };\n\n // exit\n if (shouldPrepareOutput) {\n // wait for idle state and then run PREPARE_OUTPUT\n dispatch(\n 'REQUEST_PREPARE_OUTPUT',\n {\n query: id,\n item: item,\n success: function success(file) {\n dispatch('DID_PREPARE_OUTPUT', { id: id, file: file });\n loadComplete();\n },\n },\n\n true\n );\n\n return;\n }\n\n loadComplete();\n });\n };\n\n // item loaded, allow plugins to\n // - read data (quickly)\n // - add metadata\n applyFilterChain('DID_LOAD_ITEM', item, { query: query, dispatch: dispatch })\n .then(function() {\n optionalPromise(query('GET_BEFORE_ADD_FILE'), createItemAPI(item)).then(\n handleAdd\n );\n })\n .catch(function(e) {\n if (!e || !e.error || !e.status) return handleAdd(false);\n dispatch('DID_THROW_ITEM_INVALID', {\n id: id,\n error: e.error,\n status: e.status,\n });\n });\n });\n\n item.on('process-start', function() {\n dispatch('DID_START_ITEM_PROCESSING', { id: id });\n });\n\n item.on('process-progress', function(progress) {\n dispatch('DID_UPDATE_ITEM_PROCESS_PROGRESS', { id: id, progress: progress });\n });\n\n item.on('process-error', function(error) {\n dispatch('DID_THROW_ITEM_PROCESSING_ERROR', {\n id: id,\n error: error,\n status: {\n main: dynamicLabel(state.options.labelFileProcessingError)(error),\n sub: state.options.labelTapToRetry,\n },\n });\n });\n\n item.on('process-revert-error', function(error) {\n dispatch('DID_THROW_ITEM_PROCESSING_REVERT_ERROR', {\n id: id,\n error: error,\n status: {\n main: dynamicLabel(state.options.labelFileProcessingRevertError)(error),\n sub: state.options.labelTapToRetry,\n },\n });\n });\n\n item.on('process-complete', function(serverFileReference) {\n dispatch('DID_COMPLETE_ITEM_PROCESSING', {\n id: id,\n error: null,\n serverFileReference: serverFileReference,\n });\n\n dispatch('DID_DEFINE_VALUE', { id: id, value: serverFileReference });\n });\n\n item.on('process-abort', function() {\n dispatch('DID_ABORT_ITEM_PROCESSING', { id: id });\n });\n\n item.on('process-revert', function() {\n dispatch('DID_REVERT_ITEM_PROCESSING', { id: id });\n dispatch('DID_DEFINE_VALUE', { id: id, value: null });\n });\n\n // let view know the item has been inserted\n dispatch('DID_ADD_ITEM', {\n id: id,\n index: index,\n interactionMethod: interactionMethod,\n });\n\n listUpdated(dispatch, state);\n\n // start loading the source\n var _ref8 = state.options.server || {},\n url = _ref8.url,\n load = _ref8.load,\n restore = _ref8.restore,\n fetch = _ref8.fetch;\n\n item.load(\n source,\n\n // this creates a function that loads the file based on the type of file (string, base64, blob, file) and location of file (local, remote, limbo)\n createFileLoader(\n origin === FileOrigin.INPUT\n ? // input, if is remote, see if should use custom fetch, else use default fetchBlob\n isString(source) && isExternalURL(source)\n ? fetch\n ? createFetchFunction(url, fetch)\n : fetchBlob // remote url\n : fetchBlob // try to fetch url\n : // limbo or local\n origin === FileOrigin.LIMBO\n ? createFetchFunction(url, restore) // limbo\n : createFetchFunction(url, load) // local\n ),\n\n // called when the file is loaded so it can be piped through the filters\n function(file, success, error) {\n // let's process the file\n applyFilterChain('LOAD_FILE', file, { query: query })\n .then(success)\n .catch(error);\n }\n );\n },\n\n REQUEST_PREPARE_OUTPUT: function REQUEST_PREPARE_OUTPUT(_ref9) {\n var item = _ref9.item,\n success = _ref9.success,\n _ref9$failure = _ref9.failure,\n failure = _ref9$failure === void 0 ? function() {} : _ref9$failure;\n // error response if item archived\n var err = {\n error: createResponse('error', 0, 'Item not found'),\n file: null,\n };\n\n // don't handle archived items, an item could have been archived (load aborted) while waiting to be prepared\n if (item.archived) return failure(err);\n\n // allow plugins to alter the file data\n applyFilterChain('PREPARE_OUTPUT', item.file, { query: query, item: item }).then(\n function(result) {\n applyFilterChain('COMPLETE_PREPARE_OUTPUT', result, {\n query: query,\n item: item,\n }).then(function(result) {\n // don't handle archived items, an item could have been archived (load aborted) while being prepared\n if (item.archived) return failure(err);\n\n // we done!\n success(result);\n });\n }\n );\n },\n\n COMPLETE_LOAD_ITEM: function COMPLETE_LOAD_ITEM(_ref10) {\n var item = _ref10.item,\n data = _ref10.data;\n var success = data.success,\n source = data.source;\n\n // sort items in list\n var itemInsertLocation = query('GET_ITEM_INSERT_LOCATION');\n if (isFunction(itemInsertLocation) && source) {\n sortItems(state, itemInsertLocation);\n }\n\n // let interface know the item has loaded\n dispatch('DID_LOAD_ITEM', {\n id: item.id,\n error: null,\n serverFileReference: item.origin === FileOrigin.INPUT ? null : source,\n });\n\n // item has been successfully loaded and added to the\n // list of items so can now be safely returned for use\n success(createItemAPI(item));\n\n // if this is a local server file we need to show a different state\n if (item.origin === FileOrigin.LOCAL) {\n dispatch('DID_LOAD_LOCAL_ITEM', { id: item.id });\n return;\n }\n\n // if is a temp server file we prevent async upload call here (as the file is already on the server)\n if (item.origin === FileOrigin.LIMBO) {\n dispatch('DID_COMPLETE_ITEM_PROCESSING', {\n id: item.id,\n error: null,\n serverFileReference: source,\n });\n\n dispatch('DID_DEFINE_VALUE', {\n id: item.id,\n value: item.serverId || source,\n });\n\n return;\n }\n\n // id we are allowed to upload the file immediately, lets do it\n if (query('IS_ASYNC') && state.options.instantUpload) {\n dispatch('REQUEST_ITEM_PROCESSING', { query: item.id });\n }\n },\n\n RETRY_ITEM_LOAD: getItemByQueryFromState(state, function(item) {\n // try loading the source one more time\n item.retryLoad();\n }),\n\n REQUEST_ITEM_PREPARE: getItemByQueryFromState(state, function(item, _success, failure) {\n dispatch(\n 'REQUEST_PREPARE_OUTPUT',\n {\n query: item.id,\n item: item,\n success: function success(file) {\n dispatch('DID_PREPARE_OUTPUT', { id: item.id, file: file });\n _success({\n file: item,\n output: file,\n });\n },\n failure: failure,\n },\n\n true\n );\n }),\n\n REQUEST_ITEM_PROCESSING: getItemByQueryFromState(state, function(\n item,\n success,\n failure\n ) {\n // cannot be queued (or is already queued)\n var itemCanBeQueuedForProcessing =\n // waiting for something\n item.status === ItemStatus.IDLE ||\n // processing went wrong earlier\n item.status === ItemStatus.PROCESSING_ERROR;\n\n // not ready to be processed\n if (!itemCanBeQueuedForProcessing) {\n var processNow = function processNow() {\n return dispatch('REQUEST_ITEM_PROCESSING', {\n query: item,\n success: success,\n failure: failure,\n });\n };\n\n var process = function process() {\n return document.hidden ? processNow() : setTimeout(processNow, 32);\n };\n\n // if already done processing or tried to revert but didn't work, try again\n if (\n item.status === ItemStatus.PROCESSING_COMPLETE ||\n item.status === ItemStatus.PROCESSING_REVERT_ERROR\n ) {\n item.revert(\n createRevertFunction(\n state.options.server.url,\n state.options.server.revert\n ),\n query('GET_FORCE_REVERT')\n )\n .then(process)\n .catch(function() {}); // don't continue with processing if something went wrong\n } else if (item.status === ItemStatus.PROCESSING) {\n item.abortProcessing().then(process);\n }\n\n return;\n }\n\n // already queued for processing\n if (item.status === ItemStatus.PROCESSING_QUEUED) return;\n\n item.requestProcessing();\n\n dispatch('DID_REQUEST_ITEM_PROCESSING', { id: item.id });\n\n dispatch('PROCESS_ITEM', { query: item, success: success, failure: failure }, true);\n }),\n\n PROCESS_ITEM: getItemByQueryFromState(state, function(item, success, failure) {\n var maxParallelUploads = query('GET_MAX_PARALLEL_UPLOADS');\n var totalCurrentUploads = query('GET_ITEMS_BY_STATUS', ItemStatus.PROCESSING)\n .length;\n\n // queue and wait till queue is freed up\n if (totalCurrentUploads === maxParallelUploads) {\n // queue for later processing\n state.processingQueue.push({\n id: item.id,\n success: success,\n failure: failure,\n });\n\n // stop it!\n return;\n }\n\n // if was not queued or is already processing exit here\n if (item.status === ItemStatus.PROCESSING) return;\n\n var processNext = function processNext() {\n // process queueud items\n var queueEntry = state.processingQueue.shift();\n\n // no items left\n if (!queueEntry) return;\n\n // get item reference\n var id = queueEntry.id,\n success = queueEntry.success,\n failure = queueEntry.failure;\n var itemReference = getItemByQuery(state.items, id);\n\n // if item was archived while in queue, jump to next\n if (!itemReference || itemReference.archived) {\n processNext();\n return;\n }\n\n // process queued item\n dispatch(\n 'PROCESS_ITEM',\n { query: id, success: success, failure: failure },\n true\n );\n };\n\n // we done function\n item.onOnce('process-complete', function() {\n success(createItemAPI(item));\n processNext();\n\n // if origin is local, and we're instant uploading, trigger remove of original\n // as revert will remove file from list\n var server = state.options.server;\n var instantUpload = state.options.instantUpload;\n if (\n instantUpload &&\n item.origin === FileOrigin.LOCAL &&\n isFunction(server.remove)\n ) {\n var noop = function noop() {};\n item.origin = FileOrigin.LIMBO;\n state.options.server.remove(item.source, noop, noop);\n }\n\n // All items processed? No errors?\n var allItemsProcessed =\n query('GET_ITEMS_BY_STATUS', ItemStatus.PROCESSING_COMPLETE).length ===\n state.items.length;\n if (allItemsProcessed) {\n dispatch('DID_COMPLETE_ITEM_PROCESSING_ALL');\n }\n });\n\n // we error function\n item.onOnce('process-error', function(error) {\n failure({ error: error, file: createItemAPI(item) });\n processNext();\n });\n\n // start file processing\n var options = state.options;\n item.process(\n createFileProcessor(\n createProcessorFunction(\n options.server.url,\n options.server.process,\n options.name,\n {\n chunkTransferId: item.transferId,\n chunkServer: options.server.patch,\n chunkUploads: options.chunkUploads,\n chunkForce: options.chunkForce,\n chunkSize: options.chunkSize,\n chunkRetryDelays: options.chunkRetryDelays,\n }\n ),\n\n {\n allowMinimumUploadDuration: query('GET_ALLOW_MINIMUM_UPLOAD_DURATION'),\n }\n ),\n\n // called when the file is about to be processed so it can be piped through the transform filters\n function(file, success, error) {\n // allow plugins to alter the file data\n applyFilterChain('PREPARE_OUTPUT', file, { query: query, item: item })\n .then(function(file) {\n dispatch('DID_PREPARE_OUTPUT', { id: item.id, file: file });\n\n success(file);\n })\n .catch(error);\n }\n );\n }),\n\n RETRY_ITEM_PROCESSING: getItemByQueryFromState(state, function(item) {\n dispatch('REQUEST_ITEM_PROCESSING', { query: item });\n }),\n\n REQUEST_REMOVE_ITEM: getItemByQueryFromState(state, function(item) {\n optionalPromise(query('GET_BEFORE_REMOVE_FILE'), createItemAPI(item)).then(function(\n shouldRemove\n ) {\n if (!shouldRemove) {\n return;\n }\n dispatch('REMOVE_ITEM', { query: item });\n });\n }),\n\n RELEASE_ITEM: getItemByQueryFromState(state, function(item) {\n item.release();\n }),\n\n REMOVE_ITEM: getItemByQueryFromState(state, function(item, success, failure, options) {\n var removeFromView = function removeFromView() {\n // get id reference\n var id = item.id;\n\n // archive the item, this does not remove it from the list\n getItemById(state.items, id).archive();\n\n // tell the view the item has been removed\n dispatch('DID_REMOVE_ITEM', { error: null, id: id, item: item });\n\n // now the list has been modified\n listUpdated(dispatch, state);\n\n // correctly removed\n success(createItemAPI(item));\n };\n\n // if this is a local file and the `server.remove` function has been configured,\n // send source there so dev can remove file from server\n var server = state.options.server;\n if (\n item.origin === FileOrigin.LOCAL &&\n server &&\n isFunction(server.remove) &&\n options.remove !== false\n ) {\n dispatch('DID_START_ITEM_REMOVE', { id: item.id });\n\n server.remove(\n item.source,\n function() {\n return removeFromView();\n },\n function(status) {\n dispatch('DID_THROW_ITEM_REMOVE_ERROR', {\n id: item.id,\n error: createResponse('error', 0, status, null),\n status: {\n main: dynamicLabel(state.options.labelFileRemoveError)(status),\n sub: state.options.labelTapToRetry,\n },\n });\n }\n );\n } else {\n // if is requesting revert and can revert need to call revert handler (not calling request_ because that would also trigger beforeRemoveHook)\n if (\n (options.revert &&\n item.origin !== FileOrigin.LOCAL &&\n item.serverId !== null) ||\n // if chunked uploads are enabled and we're uploading in chunks for this specific file\n // or if the file isn't big enough for chunked uploads but chunkForce is set then call\n // revert before removing from the view...\n (state.options.chunkUploads && item.file.size > state.options.chunkSize) ||\n (state.options.chunkUploads && state.options.chunkForce)\n ) {\n item.revert(\n createRevertFunction(\n state.options.server.url,\n state.options.server.revert\n ),\n query('GET_FORCE_REVERT')\n );\n }\n\n // can now safely remove from view\n removeFromView();\n }\n }),\n\n ABORT_ITEM_LOAD: getItemByQueryFromState(state, function(item) {\n item.abortLoad();\n }),\n\n ABORT_ITEM_PROCESSING: getItemByQueryFromState(state, function(item) {\n // test if is already processed\n if (item.serverId) {\n dispatch('REVERT_ITEM_PROCESSING', { id: item.id });\n return;\n }\n\n // abort\n item.abortProcessing().then(function() {\n var shouldRemove = state.options.instantUpload;\n if (shouldRemove) {\n dispatch('REMOVE_ITEM', { query: item.id });\n }\n });\n }),\n\n REQUEST_REVERT_ITEM_PROCESSING: getItemByQueryFromState(state, function(item) {\n // not instant uploading, revert immediately\n if (!state.options.instantUpload) {\n dispatch('REVERT_ITEM_PROCESSING', { query: item });\n return;\n }\n\n // if we're instant uploading the file will also be removed if we revert,\n // so if a before remove file hook is defined we need to run it now\n var handleRevert = function handleRevert(shouldRevert) {\n if (!shouldRevert) return;\n dispatch('REVERT_ITEM_PROCESSING', { query: item });\n };\n\n var fn = query('GET_BEFORE_REMOVE_FILE');\n if (!fn) {\n return handleRevert(true);\n }\n\n var requestRemoveResult = fn(createItemAPI(item));\n if (requestRemoveResult == null) {\n // undefined or null\n return handleRevert(true);\n }\n\n if (typeof requestRemoveResult === 'boolean') {\n return handleRevert(requestRemoveResult);\n }\n\n if (typeof requestRemoveResult.then === 'function') {\n requestRemoveResult.then(handleRevert);\n }\n }),\n\n REVERT_ITEM_PROCESSING: getItemByQueryFromState(state, function(item) {\n item.revert(\n createRevertFunction(state.options.server.url, state.options.server.revert),\n query('GET_FORCE_REVERT')\n )\n .then(function() {\n var shouldRemove = state.options.instantUpload || isMockItem(item);\n if (shouldRemove) {\n dispatch('REMOVE_ITEM', { query: item.id });\n }\n })\n .catch(function() {});\n }),\n\n SET_OPTIONS: function SET_OPTIONS(_ref11) {\n var options = _ref11.options;\n // get all keys passed\n var optionKeys = Object.keys(options);\n\n // get prioritized keyed to include (remove once not in options object)\n var prioritizedOptionKeys = PrioritizedOptions.filter(function(key) {\n return optionKeys.includes(key);\n });\n\n // order the keys, prioritized first, then rest\n var orderedOptionKeys = [].concat(\n _toConsumableArray(prioritizedOptionKeys),\n _toConsumableArray(\n Object.keys(options).filter(function(key) {\n return !prioritizedOptionKeys.includes(key);\n })\n )\n );\n\n // dispatch set event for each option\n orderedOptionKeys.forEach(function(key) {\n dispatch('SET_' + fromCamels(key, '_').toUpperCase(), {\n value: options[key],\n });\n });\n },\n };\n };\n\n var PrioritizedOptions = ['server'];\n\n var formatFilename = function formatFilename(name) {\n return name;\n };\n\n var createElement$1 = function createElement(tagName) {\n return document.createElement(tagName);\n };\n\n var text = function text(node, value) {\n var textNode = node.childNodes[0];\n if (!textNode) {\n textNode = document.createTextNode(value);\n node.appendChild(textNode);\n } else if (value !== textNode.nodeValue) {\n textNode.nodeValue = value;\n }\n };\n\n var polarToCartesian = function polarToCartesian(centerX, centerY, radius, angleInDegrees) {\n var angleInRadians = (((angleInDegrees % 360) - 90) * Math.PI) / 180.0;\n return {\n x: centerX + radius * Math.cos(angleInRadians),\n y: centerY + radius * Math.sin(angleInRadians),\n };\n };\n\n var describeArc = function describeArc(x, y, radius, startAngle, endAngle, arcSweep) {\n var start = polarToCartesian(x, y, radius, endAngle);\n var end = polarToCartesian(x, y, radius, startAngle);\n return ['M', start.x, start.y, 'A', radius, radius, 0, arcSweep, 0, end.x, end.y].join(' ');\n };\n\n var percentageArc = function percentageArc(x, y, radius, from, to) {\n var arcSweep = 1;\n if (to > from && to - from <= 0.5) {\n arcSweep = 0;\n }\n if (from > to && from - to >= 0.5) {\n arcSweep = 0;\n }\n return describeArc(\n x,\n y,\n radius,\n Math.min(0.9999, from) * 360,\n Math.min(0.9999, to) * 360,\n arcSweep\n );\n };\n\n var create = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n // start at 0\n props.spin = false;\n props.progress = 0;\n props.opacity = 0;\n\n // svg\n var svg = createElement('svg');\n root.ref.path = createElement('path', {\n 'stroke-width': 2,\n 'stroke-linecap': 'round',\n });\n\n svg.appendChild(root.ref.path);\n\n root.ref.svg = svg;\n\n root.appendChild(svg);\n };\n\n var write = function write(_ref2) {\n var root = _ref2.root,\n props = _ref2.props;\n if (props.opacity === 0) {\n return;\n }\n\n if (props.align) {\n root.element.dataset.align = props.align;\n }\n\n // get width of stroke\n var ringStrokeWidth = parseInt(attr(root.ref.path, 'stroke-width'), 10);\n\n // calculate size of ring\n var size = root.rect.element.width * 0.5;\n\n // ring state\n var ringFrom = 0;\n var ringTo = 0;\n\n // now in busy mode\n if (props.spin) {\n ringFrom = 0;\n ringTo = 0.5;\n } else {\n ringFrom = 0;\n ringTo = props.progress;\n }\n\n // get arc path\n var coordinates = percentageArc(size, size, size - ringStrokeWidth, ringFrom, ringTo);\n\n // update progress bar\n attr(root.ref.path, 'd', coordinates);\n\n // hide while contains 0 value\n attr(root.ref.path, 'stroke-opacity', props.spin || props.progress > 0 ? 1 : 0);\n };\n\n var progressIndicator = createView({\n tag: 'div',\n name: 'progress-indicator',\n ignoreRectUpdate: true,\n ignoreRect: true,\n create: create,\n write: write,\n mixins: {\n apis: ['progress', 'spin', 'align'],\n styles: ['opacity'],\n animations: {\n opacity: { type: 'tween', duration: 500 },\n progress: {\n type: 'spring',\n stiffness: 0.95,\n damping: 0.65,\n mass: 10,\n },\n },\n },\n });\n\n var create$1 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n root.element.innerHTML = (props.icon || '') + ('' + props.label + '');\n\n props.isDisabled = false;\n };\n\n var write$1 = function write(_ref2) {\n var root = _ref2.root,\n props = _ref2.props;\n var isDisabled = props.isDisabled;\n var shouldDisable = root.query('GET_DISABLED') || props.opacity === 0;\n\n if (shouldDisable && !isDisabled) {\n props.isDisabled = true;\n attr(root.element, 'disabled', 'disabled');\n } else if (!shouldDisable && isDisabled) {\n props.isDisabled = false;\n root.element.removeAttribute('disabled');\n }\n };\n\n var fileActionButton = createView({\n tag: 'button',\n attributes: {\n type: 'button',\n },\n\n ignoreRect: true,\n ignoreRectUpdate: true,\n name: 'file-action-button',\n mixins: {\n apis: ['label'],\n styles: ['translateX', 'translateY', 'scaleX', 'scaleY', 'opacity'],\n animations: {\n scaleX: 'spring',\n scaleY: 'spring',\n translateX: 'spring',\n translateY: 'spring',\n opacity: { type: 'tween', duration: 250 },\n },\n\n listeners: true,\n },\n\n create: create$1,\n write: write$1,\n });\n\n var toNaturalFileSize = function toNaturalFileSize(bytes) {\n var decimalSeparator =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '.';\n var base = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _options$labelBytes = options.labelBytes,\n labelBytes = _options$labelBytes === void 0 ? 'bytes' : _options$labelBytes,\n _options$labelKilobyt = options.labelKilobytes,\n labelKilobytes = _options$labelKilobyt === void 0 ? 'KB' : _options$labelKilobyt,\n _options$labelMegabyt = options.labelMegabytes,\n labelMegabytes = _options$labelMegabyt === void 0 ? 'MB' : _options$labelMegabyt,\n _options$labelGigabyt = options.labelGigabytes,\n labelGigabytes = _options$labelGigabyt === void 0 ? 'GB' : _options$labelGigabyt;\n\n // no negative byte sizes\n bytes = Math.round(Math.abs(bytes));\n\n var KB = base;\n var MB = base * base;\n var GB = base * base * base;\n\n // just bytes\n if (bytes < KB) {\n return bytes + ' ' + labelBytes;\n }\n\n // kilobytes\n if (bytes < MB) {\n return Math.floor(bytes / KB) + ' ' + labelKilobytes;\n }\n\n // megabytes\n if (bytes < GB) {\n return removeDecimalsWhenZero(bytes / MB, 1, decimalSeparator) + ' ' + labelMegabytes;\n }\n\n // gigabytes\n return removeDecimalsWhenZero(bytes / GB, 2, decimalSeparator) + ' ' + labelGigabytes;\n };\n\n var removeDecimalsWhenZero = function removeDecimalsWhenZero(value, decimalCount, separator) {\n return value\n .toFixed(decimalCount)\n .split('.')\n .filter(function(part) {\n return part !== '0';\n })\n .join(separator);\n };\n\n var create$2 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n // filename\n var fileName = createElement$1('span');\n fileName.className = 'filepond--file-info-main';\n // hide for screenreaders\n // the file is contained in a fieldset with legend that contains the filename\n // no need to read it twice\n attr(fileName, 'aria-hidden', 'true');\n root.appendChild(fileName);\n root.ref.fileName = fileName;\n\n // filesize\n var fileSize = createElement$1('span');\n fileSize.className = 'filepond--file-info-sub';\n root.appendChild(fileSize);\n root.ref.fileSize = fileSize;\n\n // set initial values\n text(fileSize, root.query('GET_LABEL_FILE_WAITING_FOR_SIZE'));\n text(fileName, formatFilename(root.query('GET_ITEM_NAME', props.id)));\n };\n\n var updateFile = function updateFile(_ref2) {\n var root = _ref2.root,\n props = _ref2.props;\n text(\n root.ref.fileSize,\n toNaturalFileSize(\n root.query('GET_ITEM_SIZE', props.id),\n '.',\n root.query('GET_FILE_SIZE_BASE'),\n root.query('GET_FILE_SIZE_LABELS', root.query)\n )\n );\n\n text(root.ref.fileName, formatFilename(root.query('GET_ITEM_NAME', props.id)));\n };\n\n var updateFileSizeOnError = function updateFileSizeOnError(_ref3) {\n var root = _ref3.root,\n props = _ref3.props;\n // if size is available don't fallback to unknown size message\n if (isInt(root.query('GET_ITEM_SIZE', props.id))) {\n updateFile({ root: root, props: props });\n return;\n }\n\n text(root.ref.fileSize, root.query('GET_LABEL_FILE_SIZE_NOT_AVAILABLE'));\n };\n\n var fileInfo = createView({\n name: 'file-info',\n ignoreRect: true,\n ignoreRectUpdate: true,\n write: createRoute({\n DID_LOAD_ITEM: updateFile,\n DID_UPDATE_ITEM_META: updateFile,\n DID_THROW_ITEM_LOAD_ERROR: updateFileSizeOnError,\n DID_THROW_ITEM_INVALID: updateFileSizeOnError,\n }),\n\n didCreateView: function didCreateView(root) {\n applyFilters('CREATE_VIEW', Object.assign({}, root, { view: root }));\n },\n create: create$2,\n mixins: {\n styles: ['translateX', 'translateY'],\n animations: {\n translateX: 'spring',\n translateY: 'spring',\n },\n },\n });\n\n var toPercentage = function toPercentage(value) {\n return Math.round(value * 100);\n };\n\n var create$3 = function create(_ref) {\n var root = _ref.root;\n\n // main status\n var main = createElement$1('span');\n main.className = 'filepond--file-status-main';\n root.appendChild(main);\n root.ref.main = main;\n\n // sub status\n var sub = createElement$1('span');\n sub.className = 'filepond--file-status-sub';\n root.appendChild(sub);\n root.ref.sub = sub;\n\n didSetItemLoadProgress({ root: root, action: { progress: null } });\n };\n\n var didSetItemLoadProgress = function didSetItemLoadProgress(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n var title =\n action.progress === null\n ? root.query('GET_LABEL_FILE_LOADING')\n : root.query('GET_LABEL_FILE_LOADING') + ' ' + toPercentage(action.progress) + '%';\n\n text(root.ref.main, title);\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_CANCEL'));\n };\n\n var didSetItemProcessProgress = function didSetItemProcessProgress(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n var title =\n action.progress === null\n ? root.query('GET_LABEL_FILE_PROCESSING')\n : root.query('GET_LABEL_FILE_PROCESSING') +\n ' ' +\n toPercentage(action.progress) +\n '%';\n\n text(root.ref.main, title);\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_CANCEL'));\n };\n\n var didRequestItemProcessing = function didRequestItemProcessing(_ref4) {\n var root = _ref4.root;\n text(root.ref.main, root.query('GET_LABEL_FILE_PROCESSING'));\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_CANCEL'));\n };\n\n var didAbortItemProcessing = function didAbortItemProcessing(_ref5) {\n var root = _ref5.root;\n text(root.ref.main, root.query('GET_LABEL_FILE_PROCESSING_ABORTED'));\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_RETRY'));\n };\n\n var didCompleteItemProcessing = function didCompleteItemProcessing(_ref6) {\n var root = _ref6.root;\n text(root.ref.main, root.query('GET_LABEL_FILE_PROCESSING_COMPLETE'));\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_UNDO'));\n };\n\n var clear = function clear(_ref7) {\n var root = _ref7.root;\n text(root.ref.main, '');\n text(root.ref.sub, '');\n };\n\n var error = function error(_ref8) {\n var root = _ref8.root,\n action = _ref8.action;\n text(root.ref.main, action.status.main);\n text(root.ref.sub, action.status.sub);\n };\n\n var fileStatus = createView({\n name: 'file-status',\n ignoreRect: true,\n ignoreRectUpdate: true,\n write: createRoute({\n DID_LOAD_ITEM: clear,\n DID_REVERT_ITEM_PROCESSING: clear,\n DID_REQUEST_ITEM_PROCESSING: didRequestItemProcessing,\n DID_ABORT_ITEM_PROCESSING: didAbortItemProcessing,\n DID_COMPLETE_ITEM_PROCESSING: didCompleteItemProcessing,\n DID_UPDATE_ITEM_PROCESS_PROGRESS: didSetItemProcessProgress,\n DID_UPDATE_ITEM_LOAD_PROGRESS: didSetItemLoadProgress,\n DID_THROW_ITEM_LOAD_ERROR: error,\n DID_THROW_ITEM_INVALID: error,\n DID_THROW_ITEM_PROCESSING_ERROR: error,\n DID_THROW_ITEM_PROCESSING_REVERT_ERROR: error,\n DID_THROW_ITEM_REMOVE_ERROR: error,\n }),\n\n didCreateView: function didCreateView(root) {\n applyFilters('CREATE_VIEW', Object.assign({}, root, { view: root }));\n },\n create: create$3,\n mixins: {\n styles: ['translateX', 'translateY', 'opacity'],\n animations: {\n opacity: { type: 'tween', duration: 250 },\n translateX: 'spring',\n translateY: 'spring',\n },\n },\n });\n\n /**\n * Button definitions for the file view\n */\n\n var Buttons = {\n AbortItemLoad: {\n label: 'GET_LABEL_BUTTON_ABORT_ITEM_LOAD',\n action: 'ABORT_ITEM_LOAD',\n className: 'filepond--action-abort-item-load',\n align: 'LOAD_INDICATOR_POSITION', // right\n },\n RetryItemLoad: {\n label: 'GET_LABEL_BUTTON_RETRY_ITEM_LOAD',\n action: 'RETRY_ITEM_LOAD',\n icon: 'GET_ICON_RETRY',\n className: 'filepond--action-retry-item-load',\n align: 'BUTTON_PROCESS_ITEM_POSITION', // right\n },\n RemoveItem: {\n label: 'GET_LABEL_BUTTON_REMOVE_ITEM',\n action: 'REQUEST_REMOVE_ITEM',\n icon: 'GET_ICON_REMOVE',\n className: 'filepond--action-remove-item',\n align: 'BUTTON_REMOVE_ITEM_POSITION', // left\n },\n ProcessItem: {\n label: 'GET_LABEL_BUTTON_PROCESS_ITEM',\n action: 'REQUEST_ITEM_PROCESSING',\n icon: 'GET_ICON_PROCESS',\n className: 'filepond--action-process-item',\n align: 'BUTTON_PROCESS_ITEM_POSITION', // right\n },\n AbortItemProcessing: {\n label: 'GET_LABEL_BUTTON_ABORT_ITEM_PROCESSING',\n action: 'ABORT_ITEM_PROCESSING',\n className: 'filepond--action-abort-item-processing',\n align: 'BUTTON_PROCESS_ITEM_POSITION', // right\n },\n RetryItemProcessing: {\n label: 'GET_LABEL_BUTTON_RETRY_ITEM_PROCESSING',\n action: 'RETRY_ITEM_PROCESSING',\n icon: 'GET_ICON_RETRY',\n className: 'filepond--action-retry-item-processing',\n align: 'BUTTON_PROCESS_ITEM_POSITION', // right\n },\n RevertItemProcessing: {\n label: 'GET_LABEL_BUTTON_UNDO_ITEM_PROCESSING',\n action: 'REQUEST_REVERT_ITEM_PROCESSING',\n icon: 'GET_ICON_UNDO',\n className: 'filepond--action-revert-item-processing',\n align: 'BUTTON_PROCESS_ITEM_POSITION', // right\n },\n };\n\n // make a list of buttons, we can then remove buttons from this list if they're disabled\n var ButtonKeys = [];\n forin(Buttons, function(key) {\n ButtonKeys.push(key);\n });\n\n var calculateFileInfoOffset = function calculateFileInfoOffset(root) {\n if (getRemoveIndicatorAligment(root) === 'right') return 0;\n var buttonRect = root.ref.buttonRemoveItem.rect.element;\n return buttonRect.hidden ? null : buttonRect.width + buttonRect.left;\n };\n\n var calculateButtonWidth = function calculateButtonWidth(root) {\n var buttonRect = root.ref.buttonAbortItemLoad.rect.element;\n return buttonRect.width;\n };\n\n // Force on full pixels so text stays crips\n var calculateFileVerticalCenterOffset = function calculateFileVerticalCenterOffset(root) {\n return Math.floor(root.ref.buttonRemoveItem.rect.element.height / 4);\n };\n var calculateFileHorizontalCenterOffset = function calculateFileHorizontalCenterOffset(root) {\n return Math.floor(root.ref.buttonRemoveItem.rect.element.left / 2);\n };\n\n var getLoadIndicatorAlignment = function getLoadIndicatorAlignment(root) {\n return root.query('GET_STYLE_LOAD_INDICATOR_POSITION');\n };\n var getProcessIndicatorAlignment = function getProcessIndicatorAlignment(root) {\n return root.query('GET_STYLE_PROGRESS_INDICATOR_POSITION');\n };\n var getRemoveIndicatorAligment = function getRemoveIndicatorAligment(root) {\n return root.query('GET_STYLE_BUTTON_REMOVE_ITEM_POSITION');\n };\n\n var DefaultStyle = {\n buttonAbortItemLoad: { opacity: 0 },\n buttonRetryItemLoad: { opacity: 0 },\n buttonRemoveItem: { opacity: 0 },\n buttonProcessItem: { opacity: 0 },\n buttonAbortItemProcessing: { opacity: 0 },\n buttonRetryItemProcessing: { opacity: 0 },\n buttonRevertItemProcessing: { opacity: 0 },\n loadProgressIndicator: { opacity: 0, align: getLoadIndicatorAlignment },\n processProgressIndicator: { opacity: 0, align: getProcessIndicatorAlignment },\n processingCompleteIndicator: { opacity: 0, scaleX: 0.75, scaleY: 0.75 },\n info: { translateX: 0, translateY: 0, opacity: 0 },\n status: { translateX: 0, translateY: 0, opacity: 0 },\n };\n\n var IdleStyle = {\n buttonRemoveItem: { opacity: 1 },\n buttonProcessItem: { opacity: 1 },\n info: { translateX: calculateFileInfoOffset },\n status: { translateX: calculateFileInfoOffset },\n };\n\n var ProcessingStyle = {\n buttonAbortItemProcessing: { opacity: 1 },\n processProgressIndicator: { opacity: 1 },\n status: { opacity: 1 },\n };\n\n var StyleMap = {\n DID_THROW_ITEM_INVALID: {\n buttonRemoveItem: { opacity: 1 },\n info: { translateX: calculateFileInfoOffset },\n status: { translateX: calculateFileInfoOffset, opacity: 1 },\n },\n\n DID_START_ITEM_LOAD: {\n buttonAbortItemLoad: { opacity: 1 },\n loadProgressIndicator: { opacity: 1 },\n status: { opacity: 1 },\n },\n\n DID_THROW_ITEM_LOAD_ERROR: {\n buttonRetryItemLoad: { opacity: 1 },\n buttonRemoveItem: { opacity: 1 },\n info: { translateX: calculateFileInfoOffset },\n status: { opacity: 1 },\n },\n\n DID_START_ITEM_REMOVE: {\n processProgressIndicator: { opacity: 1, align: getRemoveIndicatorAligment },\n info: { translateX: calculateFileInfoOffset },\n status: { opacity: 0 },\n },\n\n DID_THROW_ITEM_REMOVE_ERROR: {\n processProgressIndicator: { opacity: 0, align: getRemoveIndicatorAligment },\n buttonRemoveItem: { opacity: 1 },\n info: { translateX: calculateFileInfoOffset },\n status: { opacity: 1, translateX: calculateFileInfoOffset },\n },\n\n DID_LOAD_ITEM: IdleStyle,\n DID_LOAD_LOCAL_ITEM: {\n buttonRemoveItem: { opacity: 1 },\n info: { translateX: calculateFileInfoOffset },\n status: { translateX: calculateFileInfoOffset },\n },\n\n DID_START_ITEM_PROCESSING: ProcessingStyle,\n DID_REQUEST_ITEM_PROCESSING: ProcessingStyle,\n DID_UPDATE_ITEM_PROCESS_PROGRESS: ProcessingStyle,\n DID_COMPLETE_ITEM_PROCESSING: {\n buttonRevertItemProcessing: { opacity: 1 },\n info: { opacity: 1 },\n status: { opacity: 1 },\n },\n\n DID_THROW_ITEM_PROCESSING_ERROR: {\n buttonRemoveItem: { opacity: 1 },\n buttonRetryItemProcessing: { opacity: 1 },\n status: { opacity: 1 },\n info: { translateX: calculateFileInfoOffset },\n },\n\n DID_THROW_ITEM_PROCESSING_REVERT_ERROR: {\n buttonRevertItemProcessing: { opacity: 1 },\n status: { opacity: 1 },\n info: { opacity: 1 },\n },\n\n DID_ABORT_ITEM_PROCESSING: {\n buttonRemoveItem: { opacity: 1 },\n buttonProcessItem: { opacity: 1 },\n info: { translateX: calculateFileInfoOffset },\n status: { opacity: 1 },\n },\n\n DID_REVERT_ITEM_PROCESSING: IdleStyle,\n };\n\n // complete indicator view\n var processingCompleteIndicatorView = createView({\n create: function create(_ref) {\n var root = _ref.root;\n root.element.innerHTML = root.query('GET_ICON_DONE');\n },\n name: 'processing-complete-indicator',\n ignoreRect: true,\n mixins: {\n styles: ['scaleX', 'scaleY', 'opacity'],\n animations: {\n scaleX: 'spring',\n scaleY: 'spring',\n opacity: { type: 'tween', duration: 250 },\n },\n },\n });\n\n /**\n * Creates the file view\n */\n var create$4 = function create(_ref2) {\n var root = _ref2.root,\n props = _ref2.props;\n // copy Buttons object\n var LocalButtons = Object.keys(Buttons).reduce(function(prev, curr) {\n prev[curr] = Object.assign({}, Buttons[curr]);\n return prev;\n }, {});\n var id = props.id;\n\n // allow reverting upload\n var allowRevert = root.query('GET_ALLOW_REVERT');\n\n // allow remove file\n var allowRemove = root.query('GET_ALLOW_REMOVE');\n\n // allow processing upload\n var allowProcess = root.query('GET_ALLOW_PROCESS');\n\n // is instant uploading, need this to determine the icon of the undo button\n var instantUpload = root.query('GET_INSTANT_UPLOAD');\n\n // is async set up\n var isAsync = root.query('IS_ASYNC');\n\n // should align remove item buttons\n var alignRemoveItemButton = root.query('GET_STYLE_BUTTON_REMOVE_ITEM_ALIGN');\n\n // enabled buttons array\n var buttonFilter;\n if (isAsync) {\n if (allowProcess && !allowRevert) {\n // only remove revert button\n buttonFilter = function buttonFilter(key) {\n return !/RevertItemProcessing/.test(key);\n };\n } else if (!allowProcess && allowRevert) {\n // only remove process button\n buttonFilter = function buttonFilter(key) {\n return !/ProcessItem|RetryItemProcessing|AbortItemProcessing/.test(key);\n };\n } else if (!allowProcess && !allowRevert) {\n // remove all process buttons\n buttonFilter = function buttonFilter(key) {\n return !/Process/.test(key);\n };\n }\n } else {\n // no process controls available\n buttonFilter = function buttonFilter(key) {\n return !/Process/.test(key);\n };\n }\n\n var enabledButtons = buttonFilter ? ButtonKeys.filter(buttonFilter) : ButtonKeys.concat();\n\n // update icon and label for revert button when instant uploading\n if (instantUpload && allowRevert) {\n LocalButtons['RevertItemProcessing'].label = 'GET_LABEL_BUTTON_REMOVE_ITEM';\n LocalButtons['RevertItemProcessing'].icon = 'GET_ICON_REMOVE';\n }\n\n // remove last button (revert) if not allowed\n if (isAsync && !allowRevert) {\n var map = StyleMap['DID_COMPLETE_ITEM_PROCESSING'];\n map.info.translateX = calculateFileHorizontalCenterOffset;\n map.info.translateY = calculateFileVerticalCenterOffset;\n map.status.translateY = calculateFileVerticalCenterOffset;\n map.processingCompleteIndicator = { opacity: 1, scaleX: 1, scaleY: 1 };\n }\n\n // should align center\n if (isAsync && !allowProcess) {\n [\n 'DID_START_ITEM_PROCESSING',\n 'DID_REQUEST_ITEM_PROCESSING',\n 'DID_UPDATE_ITEM_PROCESS_PROGRESS',\n 'DID_THROW_ITEM_PROCESSING_ERROR',\n ].forEach(function(key) {\n StyleMap[key].status.translateY = calculateFileVerticalCenterOffset;\n });\n StyleMap['DID_THROW_ITEM_PROCESSING_ERROR'].status.translateX = calculateButtonWidth;\n }\n\n // move remove button to right\n if (alignRemoveItemButton && allowRevert) {\n LocalButtons['RevertItemProcessing'].align = 'BUTTON_REMOVE_ITEM_POSITION';\n var _map = StyleMap['DID_COMPLETE_ITEM_PROCESSING'];\n _map.info.translateX = calculateFileInfoOffset;\n _map.status.translateY = calculateFileVerticalCenterOffset;\n _map.processingCompleteIndicator = { opacity: 1, scaleX: 1, scaleY: 1 };\n }\n\n // show/hide RemoveItem button\n if (!allowRemove) {\n LocalButtons['RemoveItem'].disabled = true;\n }\n\n // create the button views\n forin(LocalButtons, function(key, definition) {\n // create button\n var buttonView = root.createChildView(fileActionButton, {\n label: root.query(definition.label),\n icon: root.query(definition.icon),\n opacity: 0,\n });\n\n // should be appended?\n if (enabledButtons.includes(key)) {\n root.appendChildView(buttonView);\n }\n\n // toggle\n if (definition.disabled) {\n buttonView.element.setAttribute('disabled', 'disabled');\n buttonView.element.setAttribute('hidden', 'hidden');\n }\n\n // add position attribute\n buttonView.element.dataset.align = root.query('GET_STYLE_' + definition.align);\n\n // add class\n buttonView.element.classList.add(definition.className);\n\n // handle interactions\n buttonView.on('click', function(e) {\n e.stopPropagation();\n if (definition.disabled) return;\n root.dispatch(definition.action, { query: id });\n });\n\n // set reference\n root.ref['button' + key] = buttonView;\n });\n\n // checkmark\n root.ref.processingCompleteIndicator = root.appendChildView(\n root.createChildView(processingCompleteIndicatorView)\n );\n\n root.ref.processingCompleteIndicator.element.dataset.align = root.query(\n 'GET_STYLE_BUTTON_PROCESS_ITEM_POSITION'\n );\n\n // create file info view\n root.ref.info = root.appendChildView(root.createChildView(fileInfo, { id: id }));\n\n // create file status view\n root.ref.status = root.appendChildView(root.createChildView(fileStatus, { id: id }));\n\n // add progress indicators\n var loadIndicatorView = root.appendChildView(\n root.createChildView(progressIndicator, {\n opacity: 0,\n align: root.query('GET_STYLE_LOAD_INDICATOR_POSITION'),\n })\n );\n\n loadIndicatorView.element.classList.add('filepond--load-indicator');\n root.ref.loadProgressIndicator = loadIndicatorView;\n\n var progressIndicatorView = root.appendChildView(\n root.createChildView(progressIndicator, {\n opacity: 0,\n align: root.query('GET_STYLE_PROGRESS_INDICATOR_POSITION'),\n })\n );\n\n progressIndicatorView.element.classList.add('filepond--process-indicator');\n root.ref.processProgressIndicator = progressIndicatorView;\n\n // current active styles\n root.ref.activeStyles = [];\n };\n\n var write$2 = function write(_ref3) {\n var root = _ref3.root,\n actions = _ref3.actions,\n props = _ref3.props;\n // route actions\n route({ root: root, actions: actions, props: props });\n\n // select last state change action\n var action = actions\n .concat()\n .filter(function(action) {\n return /^DID_/.test(action.type);\n })\n .reverse()\n .find(function(action) {\n return StyleMap[action.type];\n });\n\n // a new action happened, let's get the matching styles\n if (action) {\n // define new active styles\n root.ref.activeStyles = [];\n\n var stylesToApply = StyleMap[action.type];\n forin(DefaultStyle, function(name, defaultStyles) {\n // get reference to control\n var control = root.ref[name];\n\n // loop over all styles for this control\n forin(defaultStyles, function(key, defaultValue) {\n var value =\n stylesToApply[name] && typeof stylesToApply[name][key] !== 'undefined'\n ? stylesToApply[name][key]\n : defaultValue;\n root.ref.activeStyles.push({ control: control, key: key, value: value });\n });\n });\n }\n\n // apply active styles to element\n root.ref.activeStyles.forEach(function(_ref4) {\n var control = _ref4.control,\n key = _ref4.key,\n value = _ref4.value;\n control[key] = typeof value === 'function' ? value(root) : value;\n });\n };\n\n var route = createRoute({\n DID_SET_LABEL_BUTTON_ABORT_ITEM_PROCESSING: function DID_SET_LABEL_BUTTON_ABORT_ITEM_PROCESSING(\n _ref5\n ) {\n var root = _ref5.root,\n action = _ref5.action;\n root.ref.buttonAbortItemProcessing.label = action.value;\n },\n DID_SET_LABEL_BUTTON_ABORT_ITEM_LOAD: function DID_SET_LABEL_BUTTON_ABORT_ITEM_LOAD(_ref6) {\n var root = _ref6.root,\n action = _ref6.action;\n root.ref.buttonAbortItemLoad.label = action.value;\n },\n DID_SET_LABEL_BUTTON_ABORT_ITEM_REMOVAL: function DID_SET_LABEL_BUTTON_ABORT_ITEM_REMOVAL(\n _ref7\n ) {\n var root = _ref7.root,\n action = _ref7.action;\n root.ref.buttonAbortItemRemoval.label = action.value;\n },\n DID_REQUEST_ITEM_PROCESSING: function DID_REQUEST_ITEM_PROCESSING(_ref8) {\n var root = _ref8.root;\n root.ref.processProgressIndicator.spin = true;\n root.ref.processProgressIndicator.progress = 0;\n },\n DID_START_ITEM_LOAD: function DID_START_ITEM_LOAD(_ref9) {\n var root = _ref9.root;\n root.ref.loadProgressIndicator.spin = true;\n root.ref.loadProgressIndicator.progress = 0;\n },\n DID_START_ITEM_REMOVE: function DID_START_ITEM_REMOVE(_ref10) {\n var root = _ref10.root;\n root.ref.processProgressIndicator.spin = true;\n root.ref.processProgressIndicator.progress = 0;\n },\n DID_UPDATE_ITEM_LOAD_PROGRESS: function DID_UPDATE_ITEM_LOAD_PROGRESS(_ref11) {\n var root = _ref11.root,\n action = _ref11.action;\n root.ref.loadProgressIndicator.spin = false;\n root.ref.loadProgressIndicator.progress = action.progress;\n },\n DID_UPDATE_ITEM_PROCESS_PROGRESS: function DID_UPDATE_ITEM_PROCESS_PROGRESS(_ref12) {\n var root = _ref12.root,\n action = _ref12.action;\n root.ref.processProgressIndicator.spin = false;\n root.ref.processProgressIndicator.progress = action.progress;\n },\n });\n\n var file = createView({\n create: create$4,\n write: write$2,\n didCreateView: function didCreateView(root) {\n applyFilters('CREATE_VIEW', Object.assign({}, root, { view: root }));\n },\n name: 'file',\n });\n\n /**\n * Creates the file view\n */\n var create$5 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n\n // filename\n root.ref.fileName = createElement$1('legend');\n root.appendChild(root.ref.fileName);\n\n // file appended\n root.ref.file = root.appendChildView(root.createChildView(file, { id: props.id }));\n\n // data has moved to data.js\n root.ref.data = false;\n };\n\n /**\n * Data storage\n */\n var didLoadItem = function didLoadItem(_ref2) {\n var root = _ref2.root,\n props = _ref2.props;\n // updates the legend of the fieldset so screenreaders can better group buttons\n text(root.ref.fileName, formatFilename(root.query('GET_ITEM_NAME', props.id)));\n };\n\n var fileWrapper = createView({\n create: create$5,\n ignoreRect: true,\n write: createRoute({\n DID_LOAD_ITEM: didLoadItem,\n }),\n\n didCreateView: function didCreateView(root) {\n applyFilters('CREATE_VIEW', Object.assign({}, root, { view: root }));\n },\n tag: 'fieldset',\n name: 'file-wrapper',\n });\n\n var PANEL_SPRING_PROPS = { type: 'spring', damping: 0.6, mass: 7 };\n\n var create$6 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n [\n {\n name: 'top',\n },\n\n {\n name: 'center',\n props: {\n translateY: null,\n scaleY: null,\n },\n\n mixins: {\n animations: {\n scaleY: PANEL_SPRING_PROPS,\n },\n\n styles: ['translateY', 'scaleY'],\n },\n },\n\n {\n name: 'bottom',\n props: {\n translateY: null,\n },\n\n mixins: {\n animations: {\n translateY: PANEL_SPRING_PROPS,\n },\n\n styles: ['translateY'],\n },\n },\n ].forEach(function(section) {\n createSection(root, section, props.name);\n });\n\n root.element.classList.add('filepond--' + props.name);\n\n root.ref.scalable = null;\n };\n\n var createSection = function createSection(root, section, className) {\n var viewConstructor = createView({\n name: 'panel-' + section.name + ' filepond--' + className,\n mixins: section.mixins,\n ignoreRectUpdate: true,\n });\n\n var view = root.createChildView(viewConstructor, section.props);\n\n root.ref[section.name] = root.appendChildView(view);\n };\n\n var write$3 = function write(_ref2) {\n var root = _ref2.root,\n props = _ref2.props;\n\n // update scalable state\n if (root.ref.scalable === null || props.scalable !== root.ref.scalable) {\n root.ref.scalable = isBoolean(props.scalable) ? props.scalable : true;\n root.element.dataset.scalable = root.ref.scalable;\n }\n\n // no height, can't set\n if (!props.height) return;\n\n // get child rects\n var topRect = root.ref.top.rect.element;\n var bottomRect = root.ref.bottom.rect.element;\n\n // make sure height never is smaller than bottom and top seciton heights combined (will probably never happen, but who knows)\n var height = Math.max(topRect.height + bottomRect.height, props.height);\n\n // offset center part\n root.ref.center.translateY = topRect.height;\n\n // scale center part\n // use math ceil to prevent transparent lines because of rounding errors\n root.ref.center.scaleY = (height - topRect.height - bottomRect.height) / 100;\n\n // offset bottom part\n root.ref.bottom.translateY = height - bottomRect.height;\n };\n\n var panel = createView({\n name: 'panel',\n read: function read(_ref3) {\n var root = _ref3.root,\n props = _ref3.props;\n return (props.heightCurrent = root.ref.bottom.translateY);\n },\n write: write$3,\n create: create$6,\n ignoreRect: true,\n mixins: {\n apis: ['height', 'heightCurrent', 'scalable'],\n },\n });\n\n var createDragHelper = function createDragHelper(items) {\n var itemIds = items.map(function(item) {\n return item.id;\n });\n var prevIndex = undefined;\n return {\n setIndex: function setIndex(index) {\n prevIndex = index;\n },\n getIndex: function getIndex() {\n return prevIndex;\n },\n getItemIndex: function getItemIndex(item) {\n return itemIds.indexOf(item.id);\n },\n };\n };\n\n var ITEM_TRANSLATE_SPRING = {\n type: 'spring',\n stiffness: 0.75,\n damping: 0.45,\n mass: 10,\n };\n\n var ITEM_SCALE_SPRING = 'spring';\n\n var StateMap = {\n DID_START_ITEM_LOAD: 'busy',\n DID_UPDATE_ITEM_LOAD_PROGRESS: 'loading',\n DID_THROW_ITEM_INVALID: 'load-invalid',\n DID_THROW_ITEM_LOAD_ERROR: 'load-error',\n DID_LOAD_ITEM: 'idle',\n DID_THROW_ITEM_REMOVE_ERROR: 'remove-error',\n DID_START_ITEM_REMOVE: 'busy',\n DID_START_ITEM_PROCESSING: 'busy processing',\n DID_REQUEST_ITEM_PROCESSING: 'busy processing',\n DID_UPDATE_ITEM_PROCESS_PROGRESS: 'processing',\n DID_COMPLETE_ITEM_PROCESSING: 'processing-complete',\n DID_THROW_ITEM_PROCESSING_ERROR: 'processing-error',\n DID_THROW_ITEM_PROCESSING_REVERT_ERROR: 'processing-revert-error',\n DID_ABORT_ITEM_PROCESSING: 'cancelled',\n DID_REVERT_ITEM_PROCESSING: 'idle',\n };\n\n /**\n * Creates the file view\n */\n var create$7 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n\n // select\n root.ref.handleClick = function(e) {\n return root.dispatch('DID_ACTIVATE_ITEM', { id: props.id });\n };\n\n // set id\n root.element.id = 'filepond--item-' + props.id;\n root.element.addEventListener('click', root.ref.handleClick);\n\n // file view\n root.ref.container = root.appendChildView(\n root.createChildView(fileWrapper, { id: props.id })\n );\n\n // file panel\n root.ref.panel = root.appendChildView(root.createChildView(panel, { name: 'item-panel' }));\n\n // default start height\n root.ref.panel.height = null;\n\n // by default not marked for removal\n props.markedForRemoval = false;\n\n // if not allowed to reorder file items, exit here\n if (!root.query('GET_ALLOW_REORDER')) return;\n\n // set to idle so shows grab cursor\n root.element.dataset.dragState = 'idle';\n\n var grab = function grab(e) {\n if (!e.isPrimary) return;\n\n var removedActivateListener = false;\n\n var origin = {\n x: e.pageX,\n y: e.pageY,\n };\n\n props.dragOrigin = {\n x: root.translateX,\n y: root.translateY,\n };\n\n props.dragCenter = {\n x: e.offsetX,\n y: e.offsetY,\n };\n\n var dragState = createDragHelper(root.query('GET_ACTIVE_ITEMS'));\n\n root.dispatch('DID_GRAB_ITEM', { id: props.id, dragState: dragState });\n\n var drag = function drag(e) {\n if (!e.isPrimary) return;\n\n e.stopPropagation();\n e.preventDefault();\n\n props.dragOffset = {\n x: e.pageX - origin.x,\n y: e.pageY - origin.y,\n };\n\n // if dragged stop listening to clicks, will re-add when done dragging\n var dist =\n props.dragOffset.x * props.dragOffset.x +\n props.dragOffset.y * props.dragOffset.y;\n if (dist > 16 && !removedActivateListener) {\n removedActivateListener = true;\n root.element.removeEventListener('click', root.ref.handleClick);\n }\n\n root.dispatch('DID_DRAG_ITEM', { id: props.id, dragState: dragState });\n };\n\n var drop = function drop(e) {\n if (!e.isPrimary) return;\n\n document.removeEventListener('pointermove', drag);\n document.removeEventListener('pointerup', drop);\n\n props.dragOffset = {\n x: e.pageX - origin.x,\n y: e.pageY - origin.y,\n };\n\n root.dispatch('DID_DROP_ITEM', { id: props.id, dragState: dragState });\n\n // start listening to clicks again\n if (removedActivateListener) {\n setTimeout(function() {\n return root.element.addEventListener('click', root.ref.handleClick);\n }, 0);\n }\n };\n\n document.addEventListener('pointermove', drag);\n document.addEventListener('pointerup', drop);\n };\n\n root.element.addEventListener('pointerdown', grab);\n };\n\n var route$1 = createRoute({\n DID_UPDATE_PANEL_HEIGHT: function DID_UPDATE_PANEL_HEIGHT(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n root.height = action.height;\n },\n });\n\n var write$4 = createRoute(\n {\n DID_GRAB_ITEM: function DID_GRAB_ITEM(_ref3) {\n var root = _ref3.root,\n props = _ref3.props;\n props.dragOrigin = {\n x: root.translateX,\n y: root.translateY,\n };\n },\n DID_DRAG_ITEM: function DID_DRAG_ITEM(_ref4) {\n var root = _ref4.root;\n root.element.dataset.dragState = 'drag';\n },\n DID_DROP_ITEM: function DID_DROP_ITEM(_ref5) {\n var root = _ref5.root,\n props = _ref5.props;\n props.dragOffset = null;\n props.dragOrigin = null;\n root.element.dataset.dragState = 'drop';\n },\n },\n function(_ref6) {\n var root = _ref6.root,\n actions = _ref6.actions,\n props = _ref6.props,\n shouldOptimize = _ref6.shouldOptimize;\n\n if (root.element.dataset.dragState === 'drop') {\n if (root.scaleX <= 1) {\n root.element.dataset.dragState = 'idle';\n }\n }\n\n // select last state change action\n var action = actions\n .concat()\n .filter(function(action) {\n return /^DID_/.test(action.type);\n })\n .reverse()\n .find(function(action) {\n return StateMap[action.type];\n });\n\n // no need to set same state twice\n if (action && action.type !== props.currentState) {\n // set current state\n props.currentState = action.type;\n\n // set state\n root.element.dataset.filepondItemState = StateMap[props.currentState] || '';\n }\n\n // route actions\n var aspectRatio =\n root.query('GET_ITEM_PANEL_ASPECT_RATIO') || root.query('GET_PANEL_ASPECT_RATIO');\n if (!aspectRatio) {\n route$1({ root: root, actions: actions, props: props });\n if (!root.height && root.ref.container.rect.element.height > 0) {\n root.height = root.ref.container.rect.element.height;\n }\n } else if (!shouldOptimize) {\n root.height = root.rect.element.width * aspectRatio;\n }\n\n // sync panel height with item height\n if (shouldOptimize) {\n root.ref.panel.height = null;\n }\n\n root.ref.panel.height = root.height;\n }\n );\n\n var item = createView({\n create: create$7,\n write: write$4,\n destroy: function destroy(_ref7) {\n var root = _ref7.root,\n props = _ref7.props;\n root.element.removeEventListener('click', root.ref.handleClick);\n root.dispatch('RELEASE_ITEM', { query: props.id });\n },\n tag: 'li',\n name: 'item',\n mixins: {\n apis: [\n 'id',\n 'interactionMethod',\n 'markedForRemoval',\n 'spawnDate',\n 'dragCenter',\n 'dragOrigin',\n 'dragOffset',\n ],\n styles: ['translateX', 'translateY', 'scaleX', 'scaleY', 'opacity', 'height'],\n\n animations: {\n scaleX: ITEM_SCALE_SPRING,\n scaleY: ITEM_SCALE_SPRING,\n translateX: ITEM_TRANSLATE_SPRING,\n translateY: ITEM_TRANSLATE_SPRING,\n opacity: { type: 'tween', duration: 150 },\n },\n },\n });\n\n var getItemsPerRow = function(horizontalSpace, itemWidth) {\n // add one pixel leeway, when using percentages for item width total items can be 1.99 per row\n\n return Math.max(1, Math.floor((horizontalSpace + 1) / itemWidth));\n };\n\n var getItemIndexByPosition = function getItemIndexByPosition(view, children, positionInView) {\n if (!positionInView) return;\n\n var horizontalSpace = view.rect.element.width;\n // const children = view.childViews;\n var l = children.length;\n var last = null;\n\n // -1, don't move items to accomodate (either add to top or bottom)\n if (l === 0 || positionInView.top < children[0].rect.element.top) return -1;\n\n // let's get the item width\n var item = children[0];\n var itemRect = item.rect.element;\n var itemHorizontalMargin = itemRect.marginLeft + itemRect.marginRight;\n var itemWidth = itemRect.width + itemHorizontalMargin;\n var itemsPerRow = getItemsPerRow(horizontalSpace, itemWidth);\n\n // stack\n if (itemsPerRow === 1) {\n for (var index = 0; index < l; index++) {\n var child = children[index];\n var childMid = child.rect.outer.top + child.rect.element.height * 0.5;\n if (positionInView.top < childMid) {\n return index;\n }\n }\n return l;\n }\n\n // grid\n var itemVerticalMargin = itemRect.marginTop + itemRect.marginBottom;\n var itemHeight = itemRect.height + itemVerticalMargin;\n for (var _index = 0; _index < l; _index++) {\n var indexX = _index % itemsPerRow;\n var indexY = Math.floor(_index / itemsPerRow);\n\n var offsetX = indexX * itemWidth;\n var offsetY = indexY * itemHeight;\n\n var itemTop = offsetY - itemRect.marginTop;\n var itemRight = offsetX + itemWidth;\n var itemBottom = offsetY + itemHeight + itemRect.marginBottom;\n\n if (positionInView.top < itemBottom && positionInView.top > itemTop) {\n if (positionInView.left < itemRight) {\n return _index;\n } else if (_index !== l - 1) {\n last = _index;\n } else {\n last = null;\n }\n }\n }\n\n if (last !== null) {\n return last;\n }\n\n return l;\n };\n\n var dropAreaDimensions = {\n height: 0,\n width: 0,\n get getHeight() {\n return this.height;\n },\n set setHeight(val) {\n if (this.height === 0 || val === 0) this.height = val;\n },\n get getWidth() {\n return this.width;\n },\n set setWidth(val) {\n if (this.width === 0 || val === 0) this.width = val;\n },\n setDimensions: function setDimensions(height, width) {\n if (this.height === 0 || height === 0) this.height = height;\n if (this.width === 0 || width === 0) this.width = width;\n },\n };\n\n var create$8 = function create(_ref) {\n var root = _ref.root;\n // need to set role to list as otherwise it won't be read as a list by VoiceOver\n attr(root.element, 'role', 'list');\n\n root.ref.lastItemSpanwDate = Date.now();\n };\n\n /**\n * Inserts a new item\n * @param root\n * @param action\n */\n var addItemView = function addItemView(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n var id = action.id,\n index = action.index,\n interactionMethod = action.interactionMethod;\n\n root.ref.addIndex = index;\n\n var now = Date.now();\n var spawnDate = now;\n var opacity = 1;\n\n if (interactionMethod !== InteractionMethod.NONE) {\n opacity = 0;\n var cooldown = root.query('GET_ITEM_INSERT_INTERVAL');\n var dist = now - root.ref.lastItemSpanwDate;\n spawnDate = dist < cooldown ? now + (cooldown - dist) : now;\n }\n\n root.ref.lastItemSpanwDate = spawnDate;\n\n root.appendChildView(\n root.createChildView(\n // view type\n item,\n\n // props\n {\n spawnDate: spawnDate,\n id: id,\n opacity: opacity,\n interactionMethod: interactionMethod,\n }\n ),\n\n index\n );\n };\n\n var moveItem = function moveItem(item, x, y) {\n var vx = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var vy = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n // set to null to remove animation while dragging\n if (item.dragOffset) {\n item.translateX = null;\n item.translateY = null;\n item.translateX = item.dragOrigin.x + item.dragOffset.x;\n item.translateY = item.dragOrigin.y + item.dragOffset.y;\n item.scaleX = 1.025;\n item.scaleY = 1.025;\n } else {\n item.translateX = x;\n item.translateY = y;\n\n if (Date.now() > item.spawnDate) {\n // reveal element\n if (item.opacity === 0) {\n introItemView(item, x, y, vx, vy);\n }\n\n // make sure is default scale every frame\n item.scaleX = 1;\n item.scaleY = 1;\n item.opacity = 1;\n }\n }\n };\n\n var introItemView = function introItemView(item, x, y, vx, vy) {\n if (item.interactionMethod === InteractionMethod.NONE) {\n item.translateX = null;\n item.translateX = x;\n item.translateY = null;\n item.translateY = y;\n } else if (item.interactionMethod === InteractionMethod.DROP) {\n item.translateX = null;\n item.translateX = x - vx * 20;\n\n item.translateY = null;\n item.translateY = y - vy * 10;\n\n item.scaleX = 0.8;\n item.scaleY = 0.8;\n } else if (item.interactionMethod === InteractionMethod.BROWSE) {\n item.translateY = null;\n item.translateY = y - 30;\n } else if (item.interactionMethod === InteractionMethod.API) {\n item.translateX = null;\n item.translateX = x - 30;\n item.translateY = null;\n }\n };\n\n /**\n * Removes an existing item\n * @param root\n * @param action\n */\n var removeItemView = function removeItemView(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n var id = action.id;\n\n // get the view matching the given id\n var view = root.childViews.find(function(child) {\n return child.id === id;\n });\n\n // if no view found, exit\n if (!view) {\n return;\n }\n\n // animate view out of view\n view.scaleX = 0.9;\n view.scaleY = 0.9;\n view.opacity = 0;\n\n // mark for removal\n view.markedForRemoval = true;\n };\n\n var getItemHeight = function getItemHeight(child) {\n return (\n child.rect.element.height +\n child.rect.element.marginBottom * 0.5 +\n child.rect.element.marginTop * 0.5\n );\n };\n var getItemWidth = function getItemWidth(child) {\n return (\n child.rect.element.width +\n child.rect.element.marginLeft * 0.5 +\n child.rect.element.marginRight * 0.5\n );\n };\n\n var dragItem = function dragItem(_ref4) {\n var root = _ref4.root,\n action = _ref4.action;\n var id = action.id,\n dragState = action.dragState;\n\n // reference to item\n var item = root.query('GET_ITEM', { id: id });\n\n // get the view matching the given id\n var view = root.childViews.find(function(child) {\n return child.id === id;\n });\n\n var numItems = root.childViews.length;\n var oldIndex = dragState.getItemIndex(item);\n\n // if no view found, exit\n if (!view) return;\n\n var dragPosition = {\n x: view.dragOrigin.x + view.dragOffset.x + view.dragCenter.x,\n y: view.dragOrigin.y + view.dragOffset.y + view.dragCenter.y,\n };\n\n // get drag area dimensions\n var dragHeight = getItemHeight(view);\n var dragWidth = getItemWidth(view);\n\n // get rows and columns (There will always be at least one row and one column if a file is present)\n var cols = Math.floor(root.rect.outer.width / dragWidth);\n if (cols > numItems) cols = numItems;\n\n // rows are used to find when we have left the preview area bounding box\n var rows = Math.floor(numItems / cols + 1);\n\n dropAreaDimensions.setHeight = dragHeight * rows;\n dropAreaDimensions.setWidth = dragWidth * cols;\n\n // get new index of dragged item\n var location = {\n y: Math.floor(dragPosition.y / dragHeight),\n x: Math.floor(dragPosition.x / dragWidth),\n getGridIndex: function getGridIndex() {\n if (\n dragPosition.y > dropAreaDimensions.getHeight ||\n dragPosition.y < 0 ||\n dragPosition.x > dropAreaDimensions.getWidth ||\n dragPosition.x < 0\n )\n return oldIndex;\n return this.y * cols + this.x;\n },\n getColIndex: function getColIndex() {\n var items = root.query('GET_ACTIVE_ITEMS');\n var visibleChildren = root.childViews.filter(function(child) {\n return child.rect.element.height;\n });\n var children = items.map(function(item) {\n return visibleChildren.find(function(childView) {\n return childView.id === item.id;\n });\n });\n\n var currentIndex = children.findIndex(function(child) {\n return child === view;\n });\n var dragHeight = getItemHeight(view);\n var l = children.length;\n var idx = l;\n var childHeight = 0;\n var childBottom = 0;\n var childTop = 0;\n for (var i = 0; i < l; i++) {\n childHeight = getItemHeight(children[i]);\n childTop = childBottom;\n childBottom = childTop + childHeight;\n if (dragPosition.y < childBottom) {\n if (currentIndex > i) {\n if (dragPosition.y < childTop + dragHeight) {\n idx = i;\n break;\n }\n continue;\n }\n idx = i;\n break;\n }\n }\n return idx;\n },\n };\n\n // get new index\n var index = cols > 1 ? location.getGridIndex() : location.getColIndex();\n root.dispatch('MOVE_ITEM', { query: view, index: index });\n\n // if the index of the item changed, dispatch reorder action\n var currentIndex = dragState.getIndex();\n\n if (currentIndex === undefined || currentIndex !== index) {\n dragState.setIndex(index);\n\n if (currentIndex === undefined) return;\n\n root.dispatch('DID_REORDER_ITEMS', {\n items: root.query('GET_ACTIVE_ITEMS'),\n origin: oldIndex,\n target: index,\n });\n }\n };\n\n /**\n * Setup action routes\n */\n var route$2 = createRoute({\n DID_ADD_ITEM: addItemView,\n DID_REMOVE_ITEM: removeItemView,\n DID_DRAG_ITEM: dragItem,\n });\n\n /**\n * Write to view\n * @param root\n * @param actions\n * @param props\n */\n var write$5 = function write(_ref5) {\n var root = _ref5.root,\n props = _ref5.props,\n actions = _ref5.actions,\n shouldOptimize = _ref5.shouldOptimize;\n // route actions\n route$2({ root: root, props: props, actions: actions });\n var dragCoordinates = props.dragCoordinates;\n\n // available space on horizontal axis\n var horizontalSpace = root.rect.element.width;\n\n // only draw children that have dimensions\n var visibleChildren = root.childViews.filter(function(child) {\n return child.rect.element.height;\n });\n\n // sort based on current active items\n var children = root\n .query('GET_ACTIVE_ITEMS')\n .map(function(item) {\n return visibleChildren.find(function(child) {\n return child.id === item.id;\n });\n })\n .filter(function(item) {\n return item;\n });\n\n // get index\n var dragIndex = dragCoordinates\n ? getItemIndexByPosition(root, children, dragCoordinates)\n : null;\n\n // add index is used to reserve the dropped/added item index till the actual item is rendered\n var addIndex = root.ref.addIndex || null;\n\n // add index no longer needed till possibly next draw\n root.ref.addIndex = null;\n\n var dragIndexOffset = 0;\n var removeIndexOffset = 0;\n var addIndexOffset = 0;\n\n if (children.length === 0) return;\n\n var childRect = children[0].rect.element;\n var itemVerticalMargin = childRect.marginTop + childRect.marginBottom;\n var itemHorizontalMargin = childRect.marginLeft + childRect.marginRight;\n var itemWidth = childRect.width + itemHorizontalMargin;\n var itemHeight = childRect.height + itemVerticalMargin;\n var itemsPerRow = getItemsPerRow(horizontalSpace, itemWidth);\n\n // stack\n if (itemsPerRow === 1) {\n var offsetY = 0;\n var dragOffset = 0;\n\n children.forEach(function(child, index) {\n if (dragIndex) {\n var dist = index - dragIndex;\n if (dist === -2) {\n dragOffset = -itemVerticalMargin * 0.25;\n } else if (dist === -1) {\n dragOffset = -itemVerticalMargin * 0.75;\n } else if (dist === 0) {\n dragOffset = itemVerticalMargin * 0.75;\n } else if (dist === 1) {\n dragOffset = itemVerticalMargin * 0.25;\n } else {\n dragOffset = 0;\n }\n }\n\n if (shouldOptimize) {\n child.translateX = null;\n child.translateY = null;\n }\n\n if (!child.markedForRemoval) {\n moveItem(child, 0, offsetY + dragOffset);\n }\n\n var itemHeight = child.rect.element.height + itemVerticalMargin;\n\n var visualHeight = itemHeight * (child.markedForRemoval ? child.opacity : 1);\n\n offsetY += visualHeight;\n });\n }\n // grid\n else {\n var prevX = 0;\n var prevY = 0;\n\n children.forEach(function(child, index) {\n if (index === dragIndex) {\n dragIndexOffset = 1;\n }\n\n if (index === addIndex) {\n addIndexOffset += 1;\n }\n\n if (child.markedForRemoval && child.opacity < 0.5) {\n removeIndexOffset -= 1;\n }\n\n var visualIndex = index + addIndexOffset + dragIndexOffset + removeIndexOffset;\n\n var indexX = visualIndex % itemsPerRow;\n var indexY = Math.floor(visualIndex / itemsPerRow);\n\n var offsetX = indexX * itemWidth;\n var offsetY = indexY * itemHeight;\n\n var vectorX = Math.sign(offsetX - prevX);\n var vectorY = Math.sign(offsetY - prevY);\n\n prevX = offsetX;\n prevY = offsetY;\n\n if (child.markedForRemoval) return;\n\n if (shouldOptimize) {\n child.translateX = null;\n child.translateY = null;\n }\n\n moveItem(child, offsetX, offsetY, vectorX, vectorY);\n });\n }\n };\n\n /**\n * Filters actions that are meant specifically for a certain child of the list\n * @param child\n * @param actions\n */\n var filterSetItemActions = function filterSetItemActions(child, actions) {\n return actions.filter(function(action) {\n // if action has an id, filter out actions that don't have this child id\n if (action.data && action.data.id) {\n return child.id === action.data.id;\n }\n\n // allow all other actions\n return true;\n });\n };\n\n var list = createView({\n create: create$8,\n write: write$5,\n tag: 'ul',\n name: 'list',\n didWriteView: function didWriteView(_ref6) {\n var root = _ref6.root;\n root.childViews\n .filter(function(view) {\n return view.markedForRemoval && view.opacity === 0 && view.resting;\n })\n .forEach(function(view) {\n view._destroy();\n root.removeChildView(view);\n });\n },\n filterFrameActionsForChild: filterSetItemActions,\n mixins: {\n apis: ['dragCoordinates'],\n },\n });\n\n var create$9 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n root.ref.list = root.appendChildView(root.createChildView(list));\n props.dragCoordinates = null;\n props.overflowing = false;\n };\n\n var storeDragCoordinates = function storeDragCoordinates(_ref2) {\n var root = _ref2.root,\n props = _ref2.props,\n action = _ref2.action;\n if (!root.query('GET_ITEM_INSERT_LOCATION_FREEDOM')) return;\n props.dragCoordinates = {\n left: action.position.scopeLeft - root.ref.list.rect.element.left,\n top:\n action.position.scopeTop -\n (root.rect.outer.top + root.rect.element.marginTop + root.rect.element.scrollTop),\n };\n };\n\n var clearDragCoordinates = function clearDragCoordinates(_ref3) {\n var props = _ref3.props;\n props.dragCoordinates = null;\n };\n\n var route$3 = createRoute({\n DID_DRAG: storeDragCoordinates,\n DID_END_DRAG: clearDragCoordinates,\n });\n\n var write$6 = function write(_ref4) {\n var root = _ref4.root,\n props = _ref4.props,\n actions = _ref4.actions;\n\n // route actions\n route$3({ root: root, props: props, actions: actions });\n\n // current drag position\n root.ref.list.dragCoordinates = props.dragCoordinates;\n\n // if currently overflowing but no longer received overflow\n if (props.overflowing && !props.overflow) {\n props.overflowing = false;\n\n // reset overflow state\n root.element.dataset.state = '';\n root.height = null;\n }\n\n // if is not overflowing currently but does receive overflow value\n if (props.overflow) {\n var newHeight = Math.round(props.overflow);\n if (newHeight !== root.height) {\n props.overflowing = true;\n root.element.dataset.state = 'overflow';\n root.height = newHeight;\n }\n }\n };\n\n var listScroller = createView({\n create: create$9,\n write: write$6,\n name: 'list-scroller',\n mixins: {\n apis: ['overflow', 'dragCoordinates'],\n styles: ['height', 'translateY'],\n animations: {\n translateY: 'spring',\n },\n },\n });\n\n var attrToggle = function attrToggle(element, name, state) {\n var enabledValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n if (state) {\n attr(element, name, enabledValue);\n } else {\n element.removeAttribute(name);\n }\n };\n\n var resetFileInput = function resetFileInput(input) {\n // no value, no need to reset\n if (!input || input.value === '') {\n return;\n }\n\n try {\n // for modern browsers\n input.value = '';\n } catch (err) {}\n\n // for IE10\n if (input.value) {\n // quickly append input to temp form and reset form\n var form = createElement$1('form');\n var parentNode = input.parentNode;\n var ref = input.nextSibling;\n form.appendChild(input);\n form.reset();\n\n // re-inject input where it originally was\n if (ref) {\n parentNode.insertBefore(input, ref);\n } else {\n parentNode.appendChild(input);\n }\n }\n };\n\n var create$a = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n\n // set id so can be referenced from outside labels\n root.element.id = 'filepond--browser-' + props.id;\n\n // set name of element (is removed when a value is set)\n attr(root.element, 'name', root.query('GET_NAME'));\n\n // we have to link this element to the status element\n attr(root.element, 'aria-controls', 'filepond--assistant-' + props.id);\n\n // set label, we use labelled by as otherwise the screenreader does not read the \"browse\" text in the label (as it has tabindex: 0)\n attr(root.element, 'aria-labelledby', 'filepond--drop-label-' + props.id);\n\n // set configurable props\n setAcceptedFileTypes({\n root: root,\n action: { value: root.query('GET_ACCEPTED_FILE_TYPES') },\n });\n toggleAllowMultiple({ root: root, action: { value: root.query('GET_ALLOW_MULTIPLE') } });\n toggleDirectoryFilter({\n root: root,\n action: { value: root.query('GET_ALLOW_DIRECTORIES_ONLY') },\n });\n toggleDisabled({ root: root });\n toggleRequired({ root: root, action: { value: root.query('GET_REQUIRED') } });\n setCaptureMethod({ root: root, action: { value: root.query('GET_CAPTURE_METHOD') } });\n\n // handle changes to the input field\n root.ref.handleChange = function(e) {\n if (!root.element.value) {\n return;\n }\n\n // extract files and move value of webkitRelativePath path to _relativePath\n var files = Array.from(root.element.files).map(function(file) {\n file._relativePath = file.webkitRelativePath;\n return file;\n });\n\n // we add a little delay so the OS file select window can move out of the way before we add our file\n setTimeout(function() {\n // load files\n props.onload(files);\n\n // reset input, it's just for exposing a method to drop files, should not retain any state\n resetFileInput(root.element);\n }, 250);\n };\n\n root.element.addEventListener('change', root.ref.handleChange);\n };\n\n var setAcceptedFileTypes = function setAcceptedFileTypes(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n if (!root.query('GET_ALLOW_SYNC_ACCEPT_ATTRIBUTE')) return;\n attrToggle(\n root.element,\n 'accept',\n !!action.value,\n action.value ? action.value.join(',') : ''\n );\n };\n\n var toggleAllowMultiple = function toggleAllowMultiple(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n attrToggle(root.element, 'multiple', action.value);\n };\n\n var toggleDirectoryFilter = function toggleDirectoryFilter(_ref4) {\n var root = _ref4.root,\n action = _ref4.action;\n attrToggle(root.element, 'webkitdirectory', action.value);\n };\n\n var toggleDisabled = function toggleDisabled(_ref5) {\n var root = _ref5.root;\n var isDisabled = root.query('GET_DISABLED');\n var doesAllowBrowse = root.query('GET_ALLOW_BROWSE');\n var disableField = isDisabled || !doesAllowBrowse;\n attrToggle(root.element, 'disabled', disableField);\n };\n\n var toggleRequired = function toggleRequired(_ref6) {\n var root = _ref6.root,\n action = _ref6.action;\n // want to remove required, always possible\n if (!action.value) {\n attrToggle(root.element, 'required', false);\n }\n // if want to make required, only possible when zero items\n else if (root.query('GET_TOTAL_ITEMS') === 0) {\n attrToggle(root.element, 'required', true);\n }\n };\n\n var setCaptureMethod = function setCaptureMethod(_ref7) {\n var root = _ref7.root,\n action = _ref7.action;\n attrToggle(\n root.element,\n 'capture',\n !!action.value,\n action.value === true ? '' : action.value\n );\n };\n\n var updateRequiredStatus = function updateRequiredStatus(_ref8) {\n var root = _ref8.root;\n var element = root.element;\n // always remove the required attribute when more than zero items\n if (root.query('GET_TOTAL_ITEMS') > 0) {\n attrToggle(element, 'required', false);\n attrToggle(element, 'name', false);\n } else {\n // add name attribute\n attrToggle(element, 'name', true, root.query('GET_NAME'));\n\n // remove any validation messages\n var shouldCheckValidity = root.query('GET_CHECK_VALIDITY');\n if (shouldCheckValidity) {\n element.setCustomValidity('');\n }\n\n // we only add required if the field has been deemed required\n if (root.query('GET_REQUIRED')) {\n attrToggle(element, 'required', true);\n }\n }\n };\n\n var updateFieldValidityStatus = function updateFieldValidityStatus(_ref9) {\n var root = _ref9.root;\n var shouldCheckValidity = root.query('GET_CHECK_VALIDITY');\n if (!shouldCheckValidity) return;\n root.element.setCustomValidity(root.query('GET_LABEL_INVALID_FIELD'));\n };\n\n var browser = createView({\n tag: 'input',\n name: 'browser',\n ignoreRect: true,\n ignoreRectUpdate: true,\n attributes: {\n type: 'file',\n },\n\n create: create$a,\n destroy: function destroy(_ref10) {\n var root = _ref10.root;\n root.element.removeEventListener('change', root.ref.handleChange);\n },\n write: createRoute({\n DID_LOAD_ITEM: updateRequiredStatus,\n DID_REMOVE_ITEM: updateRequiredStatus,\n DID_THROW_ITEM_INVALID: updateFieldValidityStatus,\n\n DID_SET_DISABLED: toggleDisabled,\n DID_SET_ALLOW_BROWSE: toggleDisabled,\n DID_SET_ALLOW_DIRECTORIES_ONLY: toggleDirectoryFilter,\n DID_SET_ALLOW_MULTIPLE: toggleAllowMultiple,\n DID_SET_ACCEPTED_FILE_TYPES: setAcceptedFileTypes,\n DID_SET_CAPTURE_METHOD: setCaptureMethod,\n DID_SET_REQUIRED: toggleRequired,\n }),\n });\n\n var Key = {\n ENTER: 13,\n SPACE: 32,\n };\n\n var create$b = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n\n // create the label and link it to the file browser\n var label = createElement$1('label');\n attr(label, 'for', 'filepond--browser-' + props.id);\n\n // use for labeling file input (aria-labelledby on file input)\n attr(label, 'id', 'filepond--drop-label-' + props.id);\n\n // hide the label for screenreaders, the input element will read the contents of the label when it's focussed. If we don't set aria-hidden the screenreader will also navigate the contents of the label separately from the input.\n attr(label, 'aria-hidden', 'true');\n\n // handle keys\n root.ref.handleKeyDown = function(e) {\n var isActivationKey = e.keyCode === Key.ENTER || e.keyCode === Key.SPACE;\n if (!isActivationKey) return;\n // stops from triggering the element a second time\n e.preventDefault();\n\n // click link (will then in turn activate file input)\n root.ref.label.click();\n };\n\n root.ref.handleClick = function(e) {\n var isLabelClick = e.target === label || label.contains(e.target);\n\n // don't want to click twice\n if (isLabelClick) return;\n\n // click link (will then in turn activate file input)\n root.ref.label.click();\n };\n\n // attach events\n label.addEventListener('keydown', root.ref.handleKeyDown);\n root.element.addEventListener('click', root.ref.handleClick);\n\n // update\n updateLabelValue(label, props.caption);\n\n // add!\n root.appendChild(label);\n root.ref.label = label;\n };\n\n var updateLabelValue = function updateLabelValue(label, value) {\n label.innerHTML = value;\n var clickable = label.querySelector('.filepond--label-action');\n if (clickable) {\n attr(clickable, 'tabindex', '0');\n }\n return value;\n };\n\n var dropLabel = createView({\n name: 'drop-label',\n ignoreRect: true,\n create: create$b,\n destroy: function destroy(_ref2) {\n var root = _ref2.root;\n root.ref.label.addEventListener('keydown', root.ref.handleKeyDown);\n root.element.removeEventListener('click', root.ref.handleClick);\n },\n write: createRoute({\n DID_SET_LABEL_IDLE: function DID_SET_LABEL_IDLE(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n updateLabelValue(root.ref.label, action.value);\n },\n }),\n\n mixins: {\n styles: ['opacity', 'translateX', 'translateY'],\n animations: {\n opacity: { type: 'tween', duration: 150 },\n translateX: 'spring',\n translateY: 'spring',\n },\n },\n });\n\n var blob = createView({\n name: 'drip-blob',\n ignoreRect: true,\n mixins: {\n styles: ['translateX', 'translateY', 'scaleX', 'scaleY', 'opacity'],\n animations: {\n scaleX: 'spring',\n scaleY: 'spring',\n translateX: 'spring',\n translateY: 'spring',\n opacity: { type: 'tween', duration: 250 },\n },\n },\n });\n\n var addBlob = function addBlob(_ref) {\n var root = _ref.root;\n var centerX = root.rect.element.width * 0.5;\n var centerY = root.rect.element.height * 0.5;\n\n root.ref.blob = root.appendChildView(\n root.createChildView(blob, {\n opacity: 0,\n scaleX: 2.5,\n scaleY: 2.5,\n translateX: centerX,\n translateY: centerY,\n })\n );\n };\n\n var moveBlob = function moveBlob(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n if (!root.ref.blob) {\n addBlob({ root: root });\n return;\n }\n\n root.ref.blob.translateX = action.position.scopeLeft;\n root.ref.blob.translateY = action.position.scopeTop;\n root.ref.blob.scaleX = 1;\n root.ref.blob.scaleY = 1;\n root.ref.blob.opacity = 1;\n };\n\n var hideBlob = function hideBlob(_ref3) {\n var root = _ref3.root;\n if (!root.ref.blob) {\n return;\n }\n root.ref.blob.opacity = 0;\n };\n\n var explodeBlob = function explodeBlob(_ref4) {\n var root = _ref4.root;\n if (!root.ref.blob) {\n return;\n }\n root.ref.blob.scaleX = 2.5;\n root.ref.blob.scaleY = 2.5;\n root.ref.blob.opacity = 0;\n };\n\n var write$7 = function write(_ref5) {\n var root = _ref5.root,\n props = _ref5.props,\n actions = _ref5.actions;\n route$4({ root: root, props: props, actions: actions });\n var blob = root.ref.blob;\n\n if (actions.length === 0 && blob && blob.opacity === 0) {\n root.removeChildView(blob);\n root.ref.blob = null;\n }\n };\n\n var route$4 = createRoute({\n DID_DRAG: moveBlob,\n DID_DROP: explodeBlob,\n DID_END_DRAG: hideBlob,\n });\n\n var drip = createView({\n ignoreRect: true,\n ignoreRectUpdate: true,\n name: 'drip',\n write: write$7,\n });\n\n var setInputFiles = function setInputFiles(element, files) {\n try {\n // Create a DataTransfer instance and add a newly created file\n var dataTransfer = new DataTransfer();\n files.forEach(function(file) {\n if (file instanceof File) {\n dataTransfer.items.add(file);\n } else {\n dataTransfer.items.add(\n new File([file], file.name, {\n type: file.type,\n })\n );\n }\n });\n\n // Assign the DataTransfer files list to the file input\n element.files = dataTransfer.files;\n } catch (err) {\n return false;\n }\n return true;\n };\n\n var create$c = function create(_ref) {\n var root = _ref.root;\n return (root.ref.fields = {});\n };\n\n var getField = function getField(root, id) {\n return root.ref.fields[id];\n };\n\n var syncFieldPositionsWithItems = function syncFieldPositionsWithItems(root) {\n root.query('GET_ACTIVE_ITEMS').forEach(function(item) {\n if (!root.ref.fields[item.id]) return;\n root.element.appendChild(root.ref.fields[item.id]);\n });\n };\n\n var didReorderItems = function didReorderItems(_ref2) {\n var root = _ref2.root;\n return syncFieldPositionsWithItems(root);\n };\n\n var didAddItem = function didAddItem(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n var fileItem = root.query('GET_ITEM', action.id);\n var isLocalFile = fileItem.origin === FileOrigin.LOCAL;\n var shouldUseFileInput = !isLocalFile && root.query('SHOULD_UPDATE_FILE_INPUT');\n var dataContainer = createElement$1('input');\n dataContainer.type = shouldUseFileInput ? 'file' : 'hidden';\n dataContainer.name = root.query('GET_NAME');\n dataContainer.disabled = root.query('GET_DISABLED');\n root.ref.fields[action.id] = dataContainer;\n syncFieldPositionsWithItems(root);\n };\n\n var didLoadItem$1 = function didLoadItem(_ref4) {\n var root = _ref4.root,\n action = _ref4.action;\n var field = getField(root, action.id);\n if (!field) return;\n\n // store server ref in hidden input\n if (action.serverFileReference !== null) field.value = action.serverFileReference;\n\n // store file item in file input\n if (!root.query('SHOULD_UPDATE_FILE_INPUT')) return;\n\n var fileItem = root.query('GET_ITEM', action.id);\n setInputFiles(field, [fileItem.file]);\n };\n\n var didPrepareOutput = function didPrepareOutput(_ref5) {\n var root = _ref5.root,\n action = _ref5.action;\n // this timeout pushes the handler after 'load'\n if (!root.query('SHOULD_UPDATE_FILE_INPUT')) return;\n setTimeout(function() {\n var field = getField(root, action.id);\n if (!field) return;\n setInputFiles(field, [action.file]);\n }, 0);\n };\n\n var didSetDisabled = function didSetDisabled(_ref6) {\n var root = _ref6.root;\n root.element.disabled = root.query('GET_DISABLED');\n };\n\n var didRemoveItem = function didRemoveItem(_ref7) {\n var root = _ref7.root,\n action = _ref7.action;\n var field = getField(root, action.id);\n if (!field) return;\n if (field.parentNode) field.parentNode.removeChild(field);\n delete root.ref.fields[action.id];\n };\n\n // only runs for server files (so doesn't deal with file input)\n var didDefineValue = function didDefineValue(_ref8) {\n var root = _ref8.root,\n action = _ref8.action;\n var field = getField(root, action.id);\n if (!field) return;\n if (action.value === null) {\n // clear field value\n field.removeAttribute('value');\n } else {\n // set field value\n field.value = action.value;\n }\n syncFieldPositionsWithItems(root);\n };\n\n var write$8 = createRoute({\n DID_SET_DISABLED: didSetDisabled,\n DID_ADD_ITEM: didAddItem,\n DID_LOAD_ITEM: didLoadItem$1,\n DID_REMOVE_ITEM: didRemoveItem,\n DID_DEFINE_VALUE: didDefineValue,\n DID_PREPARE_OUTPUT: didPrepareOutput,\n DID_REORDER_ITEMS: didReorderItems,\n DID_SORT_ITEMS: didReorderItems,\n });\n\n var data = createView({\n tag: 'fieldset',\n name: 'data',\n create: create$c,\n write: write$8,\n ignoreRect: true,\n });\n\n var getRootNode = function getRootNode(element) {\n return 'getRootNode' in element ? element.getRootNode() : document;\n };\n\n var images = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg', 'tiff'];\n var text$1 = ['css', 'csv', 'html', 'txt'];\n var map = {\n zip: 'zip|compressed',\n epub: 'application/epub+zip',\n };\n\n var guesstimateMimeType = function guesstimateMimeType() {\n var extension = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n extension = extension.toLowerCase();\n if (images.includes(extension)) {\n return (\n 'image/' +\n (extension === 'jpg' ? 'jpeg' : extension === 'svg' ? 'svg+xml' : extension)\n );\n }\n if (text$1.includes(extension)) {\n return 'text/' + extension;\n }\n\n return map[extension] || '';\n };\n\n var requestDataTransferItems = function requestDataTransferItems(dataTransfer) {\n return new Promise(function(resolve, reject) {\n // try to get links from transfer, if found we'll exit immediately (unless a file is in the dataTransfer as well, this is because Firefox could represent the file as a URL and a file object at the same time)\n var links = getLinks(dataTransfer);\n if (links.length && !hasFiles(dataTransfer)) {\n return resolve(links);\n }\n // try to get files from the transfer\n getFiles(dataTransfer).then(resolve);\n });\n };\n\n /**\n * Test if datatransfer has files\n */\n var hasFiles = function hasFiles(dataTransfer) {\n if (dataTransfer.files) return dataTransfer.files.length > 0;\n return false;\n };\n\n /**\n * Extracts files from a DataTransfer object\n */\n var getFiles = function getFiles(dataTransfer) {\n return new Promise(function(resolve, reject) {\n // get the transfer items as promises\n var promisedFiles = (dataTransfer.items ? Array.from(dataTransfer.items) : [])\n // only keep file system items (files and directories)\n .filter(function(item) {\n return isFileSystemItem(item);\n })\n\n // map each item to promise\n .map(function(item) {\n return getFilesFromItem(item);\n });\n\n // if is empty, see if we can extract some info from the files property as a fallback\n if (!promisedFiles.length) {\n // TODO: test for directories (should not be allowed)\n // Use FileReader, problem is that the files property gets lost in the process\n resolve(dataTransfer.files ? Array.from(dataTransfer.files) : []);\n return;\n }\n\n // done!\n Promise.all(promisedFiles)\n .then(function(returnedFileGroups) {\n // flatten groups\n var files = [];\n returnedFileGroups.forEach(function(group) {\n files.push.apply(files, group);\n });\n\n // done (filter out empty files)!\n resolve(\n files\n .filter(function(file) {\n return file;\n })\n .map(function(file) {\n if (!file._relativePath)\n file._relativePath = file.webkitRelativePath;\n return file;\n })\n );\n })\n .catch(console.error);\n });\n };\n\n var isFileSystemItem = function isFileSystemItem(item) {\n if (isEntry(item)) {\n var entry = getAsEntry(item);\n if (entry) {\n return entry.isFile || entry.isDirectory;\n }\n }\n return item.kind === 'file';\n };\n\n var getFilesFromItem = function getFilesFromItem(item) {\n return new Promise(function(resolve, reject) {\n if (isDirectoryEntry(item)) {\n getFilesInDirectory(getAsEntry(item))\n .then(resolve)\n .catch(reject);\n return;\n }\n\n resolve([item.getAsFile()]);\n });\n };\n\n var getFilesInDirectory = function getFilesInDirectory(entry) {\n return new Promise(function(resolve, reject) {\n var files = [];\n\n // the total entries to read\n var dirCounter = 0;\n var fileCounter = 0;\n\n var resolveIfDone = function resolveIfDone() {\n if (fileCounter === 0 && dirCounter === 0) {\n resolve(files);\n }\n };\n\n // the recursive function\n var readEntries = function readEntries(dirEntry) {\n dirCounter++;\n\n var directoryReader = dirEntry.createReader();\n\n // directories are returned in batches, we need to process all batches before we're done\n var readBatch = function readBatch() {\n directoryReader.readEntries(function(entries) {\n if (entries.length === 0) {\n dirCounter--;\n resolveIfDone();\n return;\n }\n\n entries.forEach(function(entry) {\n // recursively read more directories\n if (entry.isDirectory) {\n readEntries(entry);\n } else {\n // read as file\n fileCounter++;\n\n entry.file(function(file) {\n var correctedFile = correctMissingFileType(file);\n if (entry.fullPath)\n correctedFile._relativePath = entry.fullPath;\n files.push(correctedFile);\n fileCounter--;\n resolveIfDone();\n });\n }\n });\n\n // try to get next batch of files\n readBatch();\n }, reject);\n };\n\n // read first batch of files\n readBatch();\n };\n\n // go!\n readEntries(entry);\n });\n };\n\n var correctMissingFileType = function correctMissingFileType(file) {\n if (file.type.length) return file;\n var date = file.lastModifiedDate;\n var name = file.name;\n var type = guesstimateMimeType(getExtensionFromFilename(file.name));\n if (!type.length) return file;\n file = file.slice(0, file.size, type);\n file.name = name;\n file.lastModifiedDate = date;\n return file;\n };\n\n var isDirectoryEntry = function isDirectoryEntry(item) {\n return isEntry(item) && (getAsEntry(item) || {}).isDirectory;\n };\n\n var isEntry = function isEntry(item) {\n return 'webkitGetAsEntry' in item;\n };\n\n var getAsEntry = function getAsEntry(item) {\n return item.webkitGetAsEntry();\n };\n\n /**\n * Extracts links from a DataTransfer object\n */\n var getLinks = function getLinks(dataTransfer) {\n var links = [];\n try {\n // look in meta data property\n links = getLinksFromTransferMetaData(dataTransfer);\n if (links.length) {\n return links;\n }\n links = getLinksFromTransferURLData(dataTransfer);\n } catch (e) {\n // nope nope nope (probably IE trouble)\n }\n return links;\n };\n\n var getLinksFromTransferURLData = function getLinksFromTransferURLData(dataTransfer) {\n var data = dataTransfer.getData('url');\n if (typeof data === 'string' && data.length) {\n return [data];\n }\n return [];\n };\n\n var getLinksFromTransferMetaData = function getLinksFromTransferMetaData(dataTransfer) {\n var data = dataTransfer.getData('text/html');\n if (typeof data === 'string' && data.length) {\n var matches = data.match(/src\\s*=\\s*\"(.+?)\"/);\n if (matches) {\n return [matches[1]];\n }\n }\n return [];\n };\n\n var dragNDropObservers = [];\n\n var eventPosition = function eventPosition(e) {\n return {\n pageLeft: e.pageX,\n pageTop: e.pageY,\n scopeLeft: e.offsetX || e.layerX,\n scopeTop: e.offsetY || e.layerY,\n };\n };\n\n var createDragNDropClient = function createDragNDropClient(\n element,\n scopeToObserve,\n filterElement\n ) {\n var observer = getDragNDropObserver(scopeToObserve);\n\n var client = {\n element: element,\n filterElement: filterElement,\n state: null,\n ondrop: function ondrop() {},\n onenter: function onenter() {},\n ondrag: function ondrag() {},\n onexit: function onexit() {},\n onload: function onload() {},\n allowdrop: function allowdrop() {},\n };\n\n client.destroy = observer.addListener(client);\n\n return client;\n };\n\n var getDragNDropObserver = function getDragNDropObserver(element) {\n // see if already exists, if so, return\n var observer = dragNDropObservers.find(function(item) {\n return item.element === element;\n });\n if (observer) {\n return observer;\n }\n\n // create new observer, does not yet exist for this element\n var newObserver = createDragNDropObserver(element);\n dragNDropObservers.push(newObserver);\n return newObserver;\n };\n\n var createDragNDropObserver = function createDragNDropObserver(element) {\n var clients = [];\n\n var routes = {\n dragenter: dragenter,\n dragover: dragover,\n dragleave: dragleave,\n drop: drop,\n };\n\n var handlers = {};\n\n forin(routes, function(event, createHandler) {\n handlers[event] = createHandler(element, clients);\n element.addEventListener(event, handlers[event], false);\n });\n\n var observer = {\n element: element,\n addListener: function addListener(client) {\n // add as client\n clients.push(client);\n\n // return removeListener function\n return function() {\n // remove client\n clients.splice(clients.indexOf(client), 1);\n\n // if no more clients, clean up observer\n if (clients.length === 0) {\n dragNDropObservers.splice(dragNDropObservers.indexOf(observer), 1);\n\n forin(routes, function(event) {\n element.removeEventListener(event, handlers[event], false);\n });\n }\n };\n },\n };\n\n return observer;\n };\n\n var elementFromPoint = function elementFromPoint(root, point) {\n if (!('elementFromPoint' in root)) {\n root = document;\n }\n return root.elementFromPoint(point.x, point.y);\n };\n\n var isEventTarget = function isEventTarget(e, target) {\n // get root\n var root = getRootNode(target);\n\n // get element at position\n // if root is not actual shadow DOM and does not have elementFromPoint method, use the one on document\n var elementAtPosition = elementFromPoint(root, {\n x: e.pageX - window.pageXOffset,\n y: e.pageY - window.pageYOffset,\n });\n\n // test if target is the element or if one of its children is\n return elementAtPosition === target || target.contains(elementAtPosition);\n };\n\n var initialTarget = null;\n\n var setDropEffect = function setDropEffect(dataTransfer, effect) {\n // is in try catch as IE11 will throw error if not\n try {\n dataTransfer.dropEffect = effect;\n } catch (e) {}\n };\n\n var dragenter = function dragenter(root, clients) {\n return function(e) {\n e.preventDefault();\n\n initialTarget = e.target;\n\n clients.forEach(function(client) {\n var element = client.element,\n onenter = client.onenter;\n\n if (isEventTarget(e, element)) {\n client.state = 'enter';\n\n // fire enter event\n onenter(eventPosition(e));\n }\n });\n };\n };\n\n var dragover = function dragover(root, clients) {\n return function(e) {\n e.preventDefault();\n\n var dataTransfer = e.dataTransfer;\n\n requestDataTransferItems(dataTransfer).then(function(items) {\n var overDropTarget = false;\n\n clients.some(function(client) {\n var filterElement = client.filterElement,\n element = client.element,\n onenter = client.onenter,\n onexit = client.onexit,\n ondrag = client.ondrag,\n allowdrop = client.allowdrop;\n\n // by default we can drop\n setDropEffect(dataTransfer, 'copy');\n\n // allow transfer of these items\n var allowsTransfer = allowdrop(items);\n\n // only used when can be dropped on page\n if (!allowsTransfer) {\n setDropEffect(dataTransfer, 'none');\n return;\n }\n\n // targetting this client\n if (isEventTarget(e, element)) {\n overDropTarget = true;\n\n // had no previous state, means we are entering this client\n if (client.state === null) {\n client.state = 'enter';\n onenter(eventPosition(e));\n return;\n }\n\n // now over element (no matter if it allows the drop or not)\n client.state = 'over';\n\n // needs to allow transfer\n if (filterElement && !allowsTransfer) {\n setDropEffect(dataTransfer, 'none');\n return;\n }\n\n // dragging\n ondrag(eventPosition(e));\n } else {\n // should be over an element to drop\n if (filterElement && !overDropTarget) {\n setDropEffect(dataTransfer, 'none');\n }\n\n // might have just left this client?\n if (client.state) {\n client.state = null;\n onexit(eventPosition(e));\n }\n }\n });\n });\n };\n };\n\n var drop = function drop(root, clients) {\n return function(e) {\n e.preventDefault();\n\n var dataTransfer = e.dataTransfer;\n\n requestDataTransferItems(dataTransfer).then(function(items) {\n clients.forEach(function(client) {\n var filterElement = client.filterElement,\n element = client.element,\n ondrop = client.ondrop,\n onexit = client.onexit,\n allowdrop = client.allowdrop;\n\n client.state = null;\n\n // if we're filtering on element we need to be over the element to drop\n if (filterElement && !isEventTarget(e, element)) return;\n\n // no transfer for this client\n if (!allowdrop(items)) return onexit(eventPosition(e));\n\n // we can drop these items on this client\n ondrop(eventPosition(e), items);\n });\n });\n };\n };\n\n var dragleave = function dragleave(root, clients) {\n return function(e) {\n if (initialTarget !== e.target) {\n return;\n }\n\n clients.forEach(function(client) {\n var onexit = client.onexit;\n\n client.state = null;\n\n onexit(eventPosition(e));\n });\n };\n };\n\n var createHopper = function createHopper(scope, validateItems, options) {\n // is now hopper scope\n scope.classList.add('filepond--hopper');\n\n // shortcuts\n var catchesDropsOnPage = options.catchesDropsOnPage,\n requiresDropOnElement = options.requiresDropOnElement,\n _options$filterItems = options.filterItems,\n filterItems =\n _options$filterItems === void 0\n ? function(items) {\n return items;\n }\n : _options$filterItems;\n\n // create a dnd client\n var client = createDragNDropClient(\n scope,\n catchesDropsOnPage ? document.documentElement : scope,\n requiresDropOnElement\n );\n\n // current client state\n var lastState = '';\n var currentState = '';\n\n // determines if a file may be dropped\n client.allowdrop = function(items) {\n // TODO: if we can, throw error to indicate the items cannot by dropped\n\n return validateItems(filterItems(items));\n };\n\n client.ondrop = function(position, items) {\n var filteredItems = filterItems(items);\n\n if (!validateItems(filteredItems)) {\n api.ondragend(position);\n return;\n }\n\n currentState = 'drag-drop';\n\n api.onload(filteredItems, position);\n };\n\n client.ondrag = function(position) {\n api.ondrag(position);\n };\n\n client.onenter = function(position) {\n currentState = 'drag-over';\n\n api.ondragstart(position);\n };\n\n client.onexit = function(position) {\n currentState = 'drag-exit';\n\n api.ondragend(position);\n };\n\n var api = {\n updateHopperState: function updateHopperState() {\n if (lastState !== currentState) {\n scope.dataset.hopperState = currentState;\n lastState = currentState;\n }\n },\n onload: function onload() {},\n ondragstart: function ondragstart() {},\n ondrag: function ondrag() {},\n ondragend: function ondragend() {},\n destroy: function destroy() {\n // destroy client\n client.destroy();\n },\n };\n\n return api;\n };\n\n var listening = false;\n var listeners$1 = [];\n\n var handlePaste = function handlePaste(e) {\n // if is pasting in input or textarea and the target is outside of a filepond scope, ignore\n var activeEl = document.activeElement;\n if (activeEl && /textarea|input/i.test(activeEl.nodeName)) {\n // test textarea or input is contained in filepond root\n var inScope = false;\n var element = activeEl;\n while (element !== document.body) {\n if (element.classList.contains('filepond--root')) {\n inScope = true;\n break;\n }\n element = element.parentNode;\n }\n\n if (!inScope) return;\n }\n\n requestDataTransferItems(e.clipboardData).then(function(files) {\n // no files received\n if (!files.length) {\n return;\n }\n\n // notify listeners of received files\n listeners$1.forEach(function(listener) {\n return listener(files);\n });\n });\n };\n\n var listen = function listen(cb) {\n // can't add twice\n if (listeners$1.includes(cb)) {\n return;\n }\n\n // add initial listener\n listeners$1.push(cb);\n\n // setup paste listener for entire page\n if (listening) {\n return;\n }\n\n listening = true;\n document.addEventListener('paste', handlePaste);\n };\n\n var unlisten = function unlisten(listener) {\n arrayRemove(listeners$1, listeners$1.indexOf(listener));\n\n // clean up\n if (listeners$1.length === 0) {\n document.removeEventListener('paste', handlePaste);\n listening = false;\n }\n };\n\n var createPaster = function createPaster() {\n var cb = function cb(files) {\n api.onload(files);\n };\n\n var api = {\n destroy: function destroy() {\n unlisten(cb);\n },\n onload: function onload() {},\n };\n\n listen(cb);\n\n return api;\n };\n\n /**\n * Creates the file view\n */\n var create$d = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n root.element.id = 'filepond--assistant-' + props.id;\n attr(root.element, 'role', 'status');\n attr(root.element, 'aria-live', 'polite');\n attr(root.element, 'aria-relevant', 'additions');\n };\n\n var addFilesNotificationTimeout = null;\n var notificationClearTimeout = null;\n\n var filenames = [];\n\n var assist = function assist(root, message) {\n root.element.textContent = message;\n };\n\n var clear$1 = function clear(root) {\n root.element.textContent = '';\n };\n\n var listModified = function listModified(root, filename, label) {\n var total = root.query('GET_TOTAL_ITEMS');\n assist(\n root,\n label +\n ' ' +\n filename +\n ', ' +\n total +\n ' ' +\n (total === 1\n ? root.query('GET_LABEL_FILE_COUNT_SINGULAR')\n : root.query('GET_LABEL_FILE_COUNT_PLURAL'))\n );\n\n // clear group after set amount of time so the status is not read twice\n clearTimeout(notificationClearTimeout);\n notificationClearTimeout = setTimeout(function() {\n clear$1(root);\n }, 1500);\n };\n\n var isUsingFilePond = function isUsingFilePond(root) {\n return root.element.parentNode.contains(document.activeElement);\n };\n\n var itemAdded = function itemAdded(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n if (!isUsingFilePond(root)) {\n return;\n }\n\n root.element.textContent = '';\n var item = root.query('GET_ITEM', action.id);\n filenames.push(item.filename);\n\n clearTimeout(addFilesNotificationTimeout);\n addFilesNotificationTimeout = setTimeout(function() {\n listModified(root, filenames.join(', '), root.query('GET_LABEL_FILE_ADDED'));\n\n filenames.length = 0;\n }, 750);\n };\n\n var itemRemoved = function itemRemoved(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n if (!isUsingFilePond(root)) {\n return;\n }\n\n var item = action.item;\n listModified(root, item.filename, root.query('GET_LABEL_FILE_REMOVED'));\n };\n\n var itemProcessed = function itemProcessed(_ref4) {\n var root = _ref4.root,\n action = _ref4.action;\n // will also notify the user when FilePond is not being used, as the user might be occupied with other activities while uploading a file\n\n var item = root.query('GET_ITEM', action.id);\n var filename = item.filename;\n var label = root.query('GET_LABEL_FILE_PROCESSING_COMPLETE');\n\n assist(root, filename + ' ' + label);\n };\n\n var itemProcessedUndo = function itemProcessedUndo(_ref5) {\n var root = _ref5.root,\n action = _ref5.action;\n var item = root.query('GET_ITEM', action.id);\n var filename = item.filename;\n var label = root.query('GET_LABEL_FILE_PROCESSING_ABORTED');\n\n assist(root, filename + ' ' + label);\n };\n\n var itemError = function itemError(_ref6) {\n var root = _ref6.root,\n action = _ref6.action;\n var item = root.query('GET_ITEM', action.id);\n var filename = item.filename;\n\n // will also notify the user when FilePond is not being used, as the user might be occupied with other activities while uploading a file\n\n assist(root, action.status.main + ' ' + filename + ' ' + action.status.sub);\n };\n\n var assistant = createView({\n create: create$d,\n ignoreRect: true,\n ignoreRectUpdate: true,\n write: createRoute({\n DID_LOAD_ITEM: itemAdded,\n DID_REMOVE_ITEM: itemRemoved,\n DID_COMPLETE_ITEM_PROCESSING: itemProcessed,\n\n DID_ABORT_ITEM_PROCESSING: itemProcessedUndo,\n DID_REVERT_ITEM_PROCESSING: itemProcessedUndo,\n\n DID_THROW_ITEM_REMOVE_ERROR: itemError,\n DID_THROW_ITEM_LOAD_ERROR: itemError,\n DID_THROW_ITEM_INVALID: itemError,\n DID_THROW_ITEM_PROCESSING_ERROR: itemError,\n }),\n\n tag: 'span',\n name: 'assistant',\n });\n\n var toCamels = function toCamels(string) {\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '-';\n return string.replace(new RegExp(separator + '.', 'g'), function(sub) {\n return sub.charAt(1).toUpperCase();\n });\n };\n\n var debounce = function debounce(func) {\n var interval = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 16;\n var immidiateOnly =\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var last = Date.now();\n var timeout = null;\n\n return function() {\n for (\n var _len = arguments.length, args = new Array(_len), _key = 0;\n _key < _len;\n _key++\n ) {\n args[_key] = arguments[_key];\n }\n clearTimeout(timeout);\n\n var dist = Date.now() - last;\n\n var fn = function fn() {\n last = Date.now();\n func.apply(void 0, args);\n };\n\n if (dist < interval) {\n // we need to delay by the difference between interval and dist\n // for example: if distance is 10 ms and interval is 16 ms,\n // we need to wait an additional 6ms before calling the function)\n if (!immidiateOnly) {\n timeout = setTimeout(fn, interval - dist);\n }\n } else {\n // go!\n fn();\n }\n };\n };\n\n var MAX_FILES_LIMIT = 1000000;\n\n var prevent = function prevent(e) {\n return e.preventDefault();\n };\n\n var create$e = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n // Add id\n var id = root.query('GET_ID');\n if (id) {\n root.element.id = id;\n }\n\n // Add className\n var className = root.query('GET_CLASS_NAME');\n if (className) {\n className\n .split(' ')\n .filter(function(name) {\n return name.length;\n })\n .forEach(function(name) {\n root.element.classList.add(name);\n });\n }\n\n // Field label\n root.ref.label = root.appendChildView(\n root.createChildView(\n dropLabel,\n Object.assign({}, props, {\n translateY: null,\n caption: root.query('GET_LABEL_IDLE'),\n })\n )\n );\n\n // List of items\n root.ref.list = root.appendChildView(\n root.createChildView(listScroller, { translateY: null })\n );\n\n // Background panel\n root.ref.panel = root.appendChildView(root.createChildView(panel, { name: 'panel-root' }));\n\n // Assistant notifies assistive tech when content changes\n root.ref.assistant = root.appendChildView(\n root.createChildView(assistant, Object.assign({}, props))\n );\n\n // Data\n root.ref.data = root.appendChildView(root.createChildView(data, Object.assign({}, props)));\n\n // Measure (tests if fixed height was set)\n // DOCTYPE needs to be set for this to work\n root.ref.measure = createElement$1('div');\n root.ref.measure.style.height = '100%';\n root.element.appendChild(root.ref.measure);\n\n // information on the root height or fixed height status\n root.ref.bounds = null;\n\n // apply initial style properties\n root.query('GET_STYLES')\n .filter(function(style) {\n return !isEmpty(style.value);\n })\n .map(function(_ref2) {\n var name = _ref2.name,\n value = _ref2.value;\n root.element.dataset[name] = value;\n });\n\n // determine if width changed\n root.ref.widthPrevious = null;\n root.ref.widthUpdated = debounce(function() {\n root.ref.updateHistory = [];\n root.dispatch('DID_RESIZE_ROOT');\n }, 250);\n\n // history of updates\n root.ref.previousAspectRatio = null;\n root.ref.updateHistory = [];\n\n // prevent scrolling and zooming on iOS (only if supports pointer events, for then we can enable reorder)\n var canHover = window.matchMedia('(pointer: fine) and (hover: hover)').matches;\n var hasPointerEvents = 'PointerEvent' in window;\n if (root.query('GET_ALLOW_REORDER') && hasPointerEvents && !canHover) {\n root.element.addEventListener('touchmove', prevent, { passive: false });\n root.element.addEventListener('gesturestart', prevent);\n }\n\n // add credits\n var credits = root.query('GET_CREDITS');\n var hasCredits = credits.length === 2;\n if (hasCredits) {\n var frag = document.createElement('a');\n frag.className = 'filepond--credits';\n frag.setAttribute('aria-hidden', 'true');\n frag.href = credits[0];\n frag.tabindex = -1;\n frag.target = '_blank';\n frag.rel = 'noopener noreferrer';\n frag.textContent = credits[1];\n root.element.appendChild(frag);\n root.ref.credits = frag;\n }\n };\n\n var write$9 = function write(_ref3) {\n var root = _ref3.root,\n props = _ref3.props,\n actions = _ref3.actions;\n // route actions\n route$5({ root: root, props: props, actions: actions });\n\n // apply style properties\n actions\n .filter(function(action) {\n return /^DID_SET_STYLE_/.test(action.type);\n })\n .filter(function(action) {\n return !isEmpty(action.data.value);\n })\n .map(function(_ref4) {\n var type = _ref4.type,\n data = _ref4.data;\n var name = toCamels(type.substr(8).toLowerCase(), '_');\n root.element.dataset[name] = data.value;\n root.invalidateLayout();\n });\n\n if (root.rect.element.hidden) return;\n\n if (root.rect.element.width !== root.ref.widthPrevious) {\n root.ref.widthPrevious = root.rect.element.width;\n root.ref.widthUpdated();\n }\n\n // get box bounds, we do this only once\n var bounds = root.ref.bounds;\n if (!bounds) {\n bounds = root.ref.bounds = calculateRootBoundingBoxHeight(root);\n\n // destroy measure element\n root.element.removeChild(root.ref.measure);\n root.ref.measure = null;\n }\n\n // get quick references to various high level parts of the upload tool\n var _root$ref = root.ref,\n hopper = _root$ref.hopper,\n label = _root$ref.label,\n list = _root$ref.list,\n panel = _root$ref.panel;\n\n // sets correct state to hopper scope\n if (hopper) {\n hopper.updateHopperState();\n }\n\n // bool to indicate if we're full or not\n var aspectRatio = root.query('GET_PANEL_ASPECT_RATIO');\n var isMultiItem = root.query('GET_ALLOW_MULTIPLE');\n var totalItems = root.query('GET_TOTAL_ITEMS');\n var maxItems = isMultiItem ? root.query('GET_MAX_FILES') || MAX_FILES_LIMIT : 1;\n var atMaxCapacity = totalItems === maxItems;\n\n // action used to add item\n var addAction = actions.find(function(action) {\n return action.type === 'DID_ADD_ITEM';\n });\n\n // if reached max capacity and we've just reached it\n if (atMaxCapacity && addAction) {\n // get interaction type\n var interactionMethod = addAction.data.interactionMethod;\n\n // hide label\n label.opacity = 0;\n\n if (isMultiItem) {\n label.translateY = -40;\n } else {\n if (interactionMethod === InteractionMethod.API) {\n label.translateX = 40;\n } else if (interactionMethod === InteractionMethod.BROWSE) {\n label.translateY = 40;\n } else {\n label.translateY = 30;\n }\n }\n } else if (!atMaxCapacity) {\n label.opacity = 1;\n label.translateX = 0;\n label.translateY = 0;\n }\n\n var listItemMargin = calculateListItemMargin(root);\n\n var listHeight = calculateListHeight(root);\n\n var labelHeight = label.rect.element.height;\n var currentLabelHeight = !isMultiItem || atMaxCapacity ? 0 : labelHeight;\n\n var listMarginTop = atMaxCapacity ? list.rect.element.marginTop : 0;\n var listMarginBottom = totalItems === 0 ? 0 : list.rect.element.marginBottom;\n\n var visualHeight =\n currentLabelHeight + listMarginTop + listHeight.visual + listMarginBottom;\n var boundsHeight =\n currentLabelHeight + listMarginTop + listHeight.bounds + listMarginBottom;\n\n // link list to label bottom position\n list.translateY =\n Math.max(0, currentLabelHeight - list.rect.element.marginTop) - listItemMargin.top;\n\n if (aspectRatio) {\n // fixed aspect ratio\n\n // calculate height based on width\n var width = root.rect.element.width;\n var height = width * aspectRatio;\n\n // clear history if aspect ratio has changed\n if (aspectRatio !== root.ref.previousAspectRatio) {\n root.ref.previousAspectRatio = aspectRatio;\n root.ref.updateHistory = [];\n }\n\n // remember this width\n var history = root.ref.updateHistory;\n history.push(width);\n\n var MAX_BOUNCES = 2;\n if (history.length > MAX_BOUNCES * 2) {\n var l = history.length;\n var bottom = l - 10;\n var bounces = 0;\n for (var i = l; i >= bottom; i--) {\n if (history[i] === history[i - 2]) {\n bounces++;\n }\n\n if (bounces >= MAX_BOUNCES) {\n // dont adjust height\n return;\n }\n }\n }\n\n // fix height of panel so it adheres to aspect ratio\n panel.scalable = false;\n panel.height = height;\n\n // available height for list\n var listAvailableHeight =\n // the height of the panel minus the label height\n height -\n currentLabelHeight -\n // the room we leave open between the end of the list and the panel bottom\n (listMarginBottom - listItemMargin.bottom) -\n // if we're full we need to leave some room between the top of the panel and the list\n (atMaxCapacity ? listMarginTop : 0);\n\n if (listHeight.visual > listAvailableHeight) {\n list.overflow = listAvailableHeight;\n } else {\n list.overflow = null;\n }\n\n // set container bounds (so pushes siblings downwards)\n root.height = height;\n } else if (bounds.fixedHeight) {\n // fixed height\n\n // fix height of panel\n panel.scalable = false;\n\n // available height for list\n var _listAvailableHeight =\n // the height of the panel minus the label height\n bounds.fixedHeight -\n currentLabelHeight -\n // the room we leave open between the end of the list and the panel bottom\n (listMarginBottom - listItemMargin.bottom) -\n // if we're full we need to leave some room between the top of the panel and the list\n (atMaxCapacity ? listMarginTop : 0);\n\n // set list height\n if (listHeight.visual > _listAvailableHeight) {\n list.overflow = _listAvailableHeight;\n } else {\n list.overflow = null;\n }\n\n // no need to set container bounds as these are handles by CSS fixed height\n } else if (bounds.cappedHeight) {\n // max-height\n\n // not a fixed height panel\n var isCappedHeight = visualHeight >= bounds.cappedHeight;\n var panelHeight = Math.min(bounds.cappedHeight, visualHeight);\n panel.scalable = true;\n panel.height = isCappedHeight\n ? panelHeight\n : panelHeight - listItemMargin.top - listItemMargin.bottom;\n\n // available height for list\n var _listAvailableHeight2 =\n // the height of the panel minus the label height\n panelHeight -\n currentLabelHeight -\n // the room we leave open between the end of the list and the panel bottom\n (listMarginBottom - listItemMargin.bottom) -\n // if we're full we need to leave some room between the top of the panel and the list\n (atMaxCapacity ? listMarginTop : 0);\n\n // set list height (if is overflowing)\n if (visualHeight > bounds.cappedHeight && listHeight.visual > _listAvailableHeight2) {\n list.overflow = _listAvailableHeight2;\n } else {\n list.overflow = null;\n }\n\n // set container bounds (so pushes siblings downwards)\n root.height = Math.min(\n bounds.cappedHeight,\n boundsHeight - listItemMargin.top - listItemMargin.bottom\n );\n } else {\n // flexible height\n\n // not a fixed height panel\n var itemMargin = totalItems > 0 ? listItemMargin.top + listItemMargin.bottom : 0;\n panel.scalable = true;\n panel.height = Math.max(labelHeight, visualHeight - itemMargin);\n\n // set container bounds (so pushes siblings downwards)\n root.height = Math.max(labelHeight, boundsHeight - itemMargin);\n }\n\n // move credits to bottom\n if (root.ref.credits && panel.heightCurrent)\n root.ref.credits.style.transform = 'translateY(' + panel.heightCurrent + 'px)';\n };\n\n var calculateListItemMargin = function calculateListItemMargin(root) {\n var item = root.ref.list.childViews[0].childViews[0];\n return item\n ? {\n top: item.rect.element.marginTop,\n bottom: item.rect.element.marginBottom,\n }\n : {\n top: 0,\n bottom: 0,\n };\n };\n\n var calculateListHeight = function calculateListHeight(root) {\n var visual = 0;\n var bounds = 0;\n\n // get file list reference\n var scrollList = root.ref.list;\n var itemList = scrollList.childViews[0];\n var visibleChildren = itemList.childViews.filter(function(child) {\n return child.rect.element.height;\n });\n var children = root\n .query('GET_ACTIVE_ITEMS')\n .map(function(item) {\n return visibleChildren.find(function(child) {\n return child.id === item.id;\n });\n })\n .filter(function(item) {\n return item;\n });\n\n // no children, done!\n if (children.length === 0) return { visual: visual, bounds: bounds };\n\n var horizontalSpace = itemList.rect.element.width;\n var dragIndex = getItemIndexByPosition(itemList, children, scrollList.dragCoordinates);\n\n var childRect = children[0].rect.element;\n\n var itemVerticalMargin = childRect.marginTop + childRect.marginBottom;\n var itemHorizontalMargin = childRect.marginLeft + childRect.marginRight;\n\n var itemWidth = childRect.width + itemHorizontalMargin;\n var itemHeight = childRect.height + itemVerticalMargin;\n\n var newItem = typeof dragIndex !== 'undefined' && dragIndex >= 0 ? 1 : 0;\n var removedItem = children.find(function(child) {\n return child.markedForRemoval && child.opacity < 0.45;\n })\n ? -1\n : 0;\n var verticalItemCount = children.length + newItem + removedItem;\n var itemsPerRow = getItemsPerRow(horizontalSpace, itemWidth);\n\n // stack\n if (itemsPerRow === 1) {\n children.forEach(function(item) {\n var height = item.rect.element.height + itemVerticalMargin;\n bounds += height;\n visual += height * item.opacity;\n });\n }\n // grid\n else {\n bounds = Math.ceil(verticalItemCount / itemsPerRow) * itemHeight;\n visual = bounds;\n }\n\n return { visual: visual, bounds: bounds };\n };\n\n var calculateRootBoundingBoxHeight = function calculateRootBoundingBoxHeight(root) {\n var height = root.ref.measureHeight || null;\n var cappedHeight = parseInt(root.style.maxHeight, 10) || null;\n var fixedHeight = height === 0 ? null : height;\n\n return {\n cappedHeight: cappedHeight,\n fixedHeight: fixedHeight,\n };\n };\n\n var exceedsMaxFiles = function exceedsMaxFiles(root, items) {\n var allowReplace = root.query('GET_ALLOW_REPLACE');\n var allowMultiple = root.query('GET_ALLOW_MULTIPLE');\n var totalItems = root.query('GET_TOTAL_ITEMS');\n var maxItems = root.query('GET_MAX_FILES');\n\n // total amount of items being dragged\n var totalBrowseItems = items.length;\n\n // if does not allow multiple items and dragging more than one item\n if (!allowMultiple && totalBrowseItems > 1) {\n return true;\n }\n\n // limit max items to one if not allowed to drop multiple items\n maxItems = allowMultiple ? maxItems : allowReplace ? maxItems : 1;\n\n // no more room?\n var hasMaxItems = isInt(maxItems);\n if (hasMaxItems && totalItems + totalBrowseItems > maxItems) {\n root.dispatch('DID_THROW_MAX_FILES', {\n source: items,\n error: createResponse('warning', 0, 'Max files'),\n });\n\n return true;\n }\n\n return false;\n };\n\n var getDragIndex = function getDragIndex(list, children, position) {\n var itemList = list.childViews[0];\n return getItemIndexByPosition(itemList, children, {\n left: position.scopeLeft - itemList.rect.element.left,\n top:\n position.scopeTop -\n (list.rect.outer.top + list.rect.element.marginTop + list.rect.element.scrollTop),\n });\n };\n\n /**\n * Enable or disable file drop functionality\n */\n var toggleDrop = function toggleDrop(root) {\n var isAllowed = root.query('GET_ALLOW_DROP');\n var isDisabled = root.query('GET_DISABLED');\n var enabled = isAllowed && !isDisabled;\n if (enabled && !root.ref.hopper) {\n var hopper = createHopper(\n root.element,\n function(items) {\n // allow quick validation of dropped items\n var beforeDropFile =\n root.query('GET_BEFORE_DROP_FILE') ||\n function() {\n return true;\n };\n\n // all items should be validated by all filters as valid\n var dropValidation = root.query('GET_DROP_VALIDATION');\n return dropValidation\n ? items.every(function(item) {\n return (\n applyFilters('ALLOW_HOPPER_ITEM', item, {\n query: root.query,\n }).every(function(result) {\n return result === true;\n }) && beforeDropFile(item)\n );\n })\n : true;\n },\n {\n filterItems: function filterItems(items) {\n var ignoredFiles = root.query('GET_IGNORED_FILES');\n return items.filter(function(item) {\n if (isFile(item)) {\n return !ignoredFiles.includes(item.name.toLowerCase());\n }\n return true;\n });\n },\n catchesDropsOnPage: root.query('GET_DROP_ON_PAGE'),\n requiresDropOnElement: root.query('GET_DROP_ON_ELEMENT'),\n }\n );\n\n hopper.onload = function(items, position) {\n // get item children elements and sort based on list sort\n var list = root.ref.list.childViews[0];\n var visibleChildren = list.childViews.filter(function(child) {\n return child.rect.element.height;\n });\n var children = root\n .query('GET_ACTIVE_ITEMS')\n .map(function(item) {\n return visibleChildren.find(function(child) {\n return child.id === item.id;\n });\n })\n .filter(function(item) {\n return item;\n });\n\n applyFilterChain('ADD_ITEMS', items, { dispatch: root.dispatch }).then(function(\n queue\n ) {\n // these files don't fit so stop here\n if (exceedsMaxFiles(root, queue)) return false;\n\n // go\n root.dispatch('ADD_ITEMS', {\n items: queue,\n index: getDragIndex(root.ref.list, children, position),\n interactionMethod: InteractionMethod.DROP,\n });\n });\n\n root.dispatch('DID_DROP', { position: position });\n\n root.dispatch('DID_END_DRAG', { position: position });\n };\n\n hopper.ondragstart = function(position) {\n root.dispatch('DID_START_DRAG', { position: position });\n };\n\n hopper.ondrag = debounce(function(position) {\n root.dispatch('DID_DRAG', { position: position });\n });\n\n hopper.ondragend = function(position) {\n root.dispatch('DID_END_DRAG', { position: position });\n };\n\n root.ref.hopper = hopper;\n\n root.ref.drip = root.appendChildView(root.createChildView(drip));\n } else if (!enabled && root.ref.hopper) {\n root.ref.hopper.destroy();\n root.ref.hopper = null;\n root.removeChildView(root.ref.drip);\n }\n };\n\n /**\n * Enable or disable browse functionality\n */\n var toggleBrowse = function toggleBrowse(root, props) {\n var isAllowed = root.query('GET_ALLOW_BROWSE');\n var isDisabled = root.query('GET_DISABLED');\n var enabled = isAllowed && !isDisabled;\n if (enabled && !root.ref.browser) {\n root.ref.browser = root.appendChildView(\n root.createChildView(\n browser,\n Object.assign({}, props, {\n onload: function onload(items) {\n applyFilterChain('ADD_ITEMS', items, {\n dispatch: root.dispatch,\n }).then(function(queue) {\n // these files don't fit so stop here\n if (exceedsMaxFiles(root, queue)) return false;\n\n // add items!\n root.dispatch('ADD_ITEMS', {\n items: queue,\n index: -1,\n interactionMethod: InteractionMethod.BROWSE,\n });\n });\n },\n })\n ),\n\n 0\n );\n } else if (!enabled && root.ref.browser) {\n root.removeChildView(root.ref.browser);\n root.ref.browser = null;\n }\n };\n\n /**\n * Enable or disable paste functionality\n */\n var togglePaste = function togglePaste(root) {\n var isAllowed = root.query('GET_ALLOW_PASTE');\n var isDisabled = root.query('GET_DISABLED');\n var enabled = isAllowed && !isDisabled;\n if (enabled && !root.ref.paster) {\n root.ref.paster = createPaster();\n root.ref.paster.onload = function(items) {\n applyFilterChain('ADD_ITEMS', items, { dispatch: root.dispatch }).then(function(\n queue\n ) {\n // these files don't fit so stop here\n if (exceedsMaxFiles(root, queue)) return false;\n\n // add items!\n root.dispatch('ADD_ITEMS', {\n items: queue,\n index: -1,\n interactionMethod: InteractionMethod.PASTE,\n });\n });\n };\n } else if (!enabled && root.ref.paster) {\n root.ref.paster.destroy();\n root.ref.paster = null;\n }\n };\n\n /**\n * Route actions\n */\n var route$5 = createRoute({\n DID_SET_ALLOW_BROWSE: function DID_SET_ALLOW_BROWSE(_ref5) {\n var root = _ref5.root,\n props = _ref5.props;\n toggleBrowse(root, props);\n },\n DID_SET_ALLOW_DROP: function DID_SET_ALLOW_DROP(_ref6) {\n var root = _ref6.root;\n toggleDrop(root);\n },\n DID_SET_ALLOW_PASTE: function DID_SET_ALLOW_PASTE(_ref7) {\n var root = _ref7.root;\n togglePaste(root);\n },\n DID_SET_DISABLED: function DID_SET_DISABLED(_ref8) {\n var root = _ref8.root,\n props = _ref8.props;\n toggleDrop(root);\n togglePaste(root);\n toggleBrowse(root, props);\n var isDisabled = root.query('GET_DISABLED');\n if (isDisabled) {\n root.element.dataset.disabled = 'disabled';\n } else {\n // delete root.element.dataset.disabled; <= this does not work on iOS 10\n root.element.removeAttribute('data-disabled');\n }\n },\n });\n\n var root = createView({\n name: 'root',\n read: function read(_ref9) {\n var root = _ref9.root;\n if (root.ref.measure) {\n root.ref.measureHeight = root.ref.measure.offsetHeight;\n }\n },\n create: create$e,\n write: write$9,\n destroy: function destroy(_ref10) {\n var root = _ref10.root;\n if (root.ref.paster) {\n root.ref.paster.destroy();\n }\n if (root.ref.hopper) {\n root.ref.hopper.destroy();\n }\n root.element.removeEventListener('touchmove', prevent);\n root.element.removeEventListener('gesturestart', prevent);\n },\n mixins: {\n styles: ['height'],\n },\n });\n\n // creates the app\n var createApp = function createApp() {\n var initialOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // let element\n var originalElement = null;\n\n // get default options\n var defaultOptions = getOptions();\n\n // create the data store, this will contain all our app info\n var store = createStore(\n // initial state (should be serializable)\n createInitialState(defaultOptions),\n\n // queries\n [queries, createOptionQueries(defaultOptions)],\n\n // action handlers\n [actions, createOptionActions(defaultOptions)]\n );\n\n // set initial options\n store.dispatch('SET_OPTIONS', { options: initialOptions });\n\n // kick thread if visibility changes\n var visibilityHandler = function visibilityHandler() {\n if (document.hidden) return;\n store.dispatch('KICK');\n };\n document.addEventListener('visibilitychange', visibilityHandler);\n\n // re-render on window resize start and finish\n var resizeDoneTimer = null;\n var isResizing = false;\n var isResizingHorizontally = false;\n var initialWindowWidth = null;\n var currentWindowWidth = null;\n var resizeHandler = function resizeHandler() {\n if (!isResizing) {\n isResizing = true;\n }\n clearTimeout(resizeDoneTimer);\n resizeDoneTimer = setTimeout(function() {\n isResizing = false;\n initialWindowWidth = null;\n currentWindowWidth = null;\n if (isResizingHorizontally) {\n isResizingHorizontally = false;\n store.dispatch('DID_STOP_RESIZE');\n }\n }, 500);\n };\n window.addEventListener('resize', resizeHandler);\n\n // render initial view\n var view = root(store, { id: getUniqueId() });\n\n //\n // PRIVATE API -------------------------------------------------------------------------------------\n //\n var isResting = false;\n var isHidden = false;\n\n var readWriteApi = {\n // necessary for update loop\n\n /**\n * Reads from dom (never call manually)\n * @private\n */\n _read: function _read() {\n // test if we're resizing horizontally\n // TODO: see if we can optimize this by measuring root rect\n if (isResizing) {\n currentWindowWidth = window.innerWidth;\n if (!initialWindowWidth) {\n initialWindowWidth = currentWindowWidth;\n }\n\n if (!isResizingHorizontally && currentWindowWidth !== initialWindowWidth) {\n store.dispatch('DID_START_RESIZE');\n isResizingHorizontally = true;\n }\n }\n\n if (isHidden && isResting) {\n // test if is no longer hidden\n isResting = view.element.offsetParent === null;\n }\n\n // if resting, no need to read as numbers will still all be correct\n if (isResting) return;\n\n // read view data\n view._read();\n\n // if is hidden we need to know so we exit rest mode when revealed\n isHidden = view.rect.element.hidden;\n },\n\n /**\n * Writes to dom (never call manually)\n * @private\n */\n _write: function _write(ts) {\n // get all actions from store\n var actions = store\n .processActionQueue()\n\n // filter out set actions (these will automatically trigger DID_SET)\n .filter(function(action) {\n return !/^SET_/.test(action.type);\n });\n\n // if was idling and no actions stop here\n if (isResting && !actions.length) return;\n\n // some actions might trigger events\n routeActionsToEvents(actions);\n\n // update the view\n isResting = view._write(ts, actions, isResizingHorizontally);\n\n // will clean up all archived items\n removeReleasedItems(store.query('GET_ITEMS'));\n\n // now idling\n if (isResting) {\n store.processDispatchQueue();\n }\n },\n };\n\n //\n // EXPOSE EVENTS -------------------------------------------------------------------------------------\n //\n var createEvent = function createEvent(name) {\n return function(data) {\n // create default event\n var event = {\n type: name,\n };\n\n // no data to add\n if (!data) {\n return event;\n }\n\n // copy relevant props\n if (data.hasOwnProperty('error')) {\n event.error = data.error ? Object.assign({}, data.error) : null;\n }\n\n if (data.status) {\n event.status = Object.assign({}, data.status);\n }\n\n if (data.file) {\n event.output = data.file;\n }\n\n // only source is available, else add item if possible\n if (data.source) {\n event.file = data.source;\n } else if (data.item || data.id) {\n var item = data.item ? data.item : store.query('GET_ITEM', data.id);\n event.file = item ? createItemAPI(item) : null;\n }\n\n // map all items in a possible items array\n if (data.items) {\n event.items = data.items.map(createItemAPI);\n }\n\n // if this is a progress event add the progress amount\n if (/progress/.test(name)) {\n event.progress = data.progress;\n }\n\n // copy relevant props\n if (data.hasOwnProperty('origin') && data.hasOwnProperty('target')) {\n event.origin = data.origin;\n event.target = data.target;\n }\n\n return event;\n };\n };\n\n var eventRoutes = {\n DID_DESTROY: createEvent('destroy'),\n\n DID_INIT: createEvent('init'),\n\n DID_THROW_MAX_FILES: createEvent('warning'),\n\n DID_INIT_ITEM: createEvent('initfile'),\n DID_START_ITEM_LOAD: createEvent('addfilestart'),\n DID_UPDATE_ITEM_LOAD_PROGRESS: createEvent('addfileprogress'),\n DID_LOAD_ITEM: createEvent('addfile'),\n\n DID_THROW_ITEM_INVALID: [createEvent('error'), createEvent('addfile')],\n\n DID_THROW_ITEM_LOAD_ERROR: [createEvent('error'), createEvent('addfile')],\n\n DID_THROW_ITEM_REMOVE_ERROR: [createEvent('error'), createEvent('removefile')],\n\n DID_PREPARE_OUTPUT: createEvent('preparefile'),\n\n DID_START_ITEM_PROCESSING: createEvent('processfilestart'),\n DID_UPDATE_ITEM_PROCESS_PROGRESS: createEvent('processfileprogress'),\n DID_ABORT_ITEM_PROCESSING: createEvent('processfileabort'),\n DID_COMPLETE_ITEM_PROCESSING: createEvent('processfile'),\n DID_COMPLETE_ITEM_PROCESSING_ALL: createEvent('processfiles'),\n DID_REVERT_ITEM_PROCESSING: createEvent('processfilerevert'),\n\n DID_THROW_ITEM_PROCESSING_ERROR: [createEvent('error'), createEvent('processfile')],\n\n DID_REMOVE_ITEM: createEvent('removefile'),\n\n DID_UPDATE_ITEMS: createEvent('updatefiles'),\n\n DID_ACTIVATE_ITEM: createEvent('activatefile'),\n\n DID_REORDER_ITEMS: createEvent('reorderfiles'),\n };\n\n var exposeEvent = function exposeEvent(event) {\n // create event object to be dispatched\n var detail = Object.assign({ pond: exports }, event);\n delete detail.type;\n view.element.dispatchEvent(\n new CustomEvent('FilePond:' + event.type, {\n // event info\n detail: detail,\n\n // event behaviour\n bubbles: true,\n cancelable: true,\n composed: true, // triggers listeners outside of shadow root\n })\n );\n\n // event object to params used for `on()` event handlers and callbacks `oninit()`\n var params = [];\n\n // if is possible error event, make it the first param\n if (event.hasOwnProperty('error')) {\n params.push(event.error);\n }\n\n // file is always section\n if (event.hasOwnProperty('file')) {\n params.push(event.file);\n }\n\n // append other props\n var filtered = ['type', 'error', 'file'];\n Object.keys(event)\n .filter(function(key) {\n return !filtered.includes(key);\n })\n .forEach(function(key) {\n return params.push(event[key]);\n });\n\n // on(type, () => { })\n exports.fire.apply(exports, [event.type].concat(params));\n\n // oninit = () => {}\n var handler = store.query('GET_ON' + event.type.toUpperCase());\n if (handler) {\n handler.apply(void 0, params);\n }\n };\n\n var routeActionsToEvents = function routeActionsToEvents(actions) {\n if (!actions.length) return;\n actions\n .filter(function(action) {\n return eventRoutes[action.type];\n })\n .forEach(function(action) {\n var routes = eventRoutes[action.type];\n (Array.isArray(routes) ? routes : [routes]).forEach(function(route) {\n // this isn't fantastic, but because of the stacking of settimeouts plugins can handle the did_load before the did_init\n if (action.type === 'DID_INIT_ITEM') {\n exposeEvent(route(action.data));\n } else {\n setTimeout(function() {\n exposeEvent(route(action.data));\n }, 0);\n }\n });\n });\n };\n\n //\n // PUBLIC API -------------------------------------------------------------------------------------\n //\n var setOptions = function setOptions(options) {\n return store.dispatch('SET_OPTIONS', { options: options });\n };\n\n var getFile = function getFile(query) {\n return store.query('GET_ACTIVE_ITEM', query);\n };\n\n var prepareFile = function prepareFile(query) {\n return new Promise(function(resolve, reject) {\n store.dispatch('REQUEST_ITEM_PREPARE', {\n query: query,\n success: function success(item) {\n resolve(item);\n },\n failure: function failure(error) {\n reject(error);\n },\n });\n });\n };\n\n var addFile = function addFile(source) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new Promise(function(resolve, reject) {\n addFiles([{ source: source, options: options }], { index: options.index })\n .then(function(items) {\n return resolve(items && items[0]);\n })\n .catch(reject);\n });\n };\n\n var isFilePondFile = function isFilePondFile(obj) {\n return obj.file && obj.id;\n };\n\n var removeFile = function removeFile(query, options) {\n // if only passed options\n if (typeof query === 'object' && !isFilePondFile(query) && !options) {\n options = query;\n query = undefined;\n }\n\n // request item removal\n store.dispatch('REMOVE_ITEM', Object.assign({}, options, { query: query }));\n\n // see if item has been removed\n return store.query('GET_ACTIVE_ITEM', query) === null;\n };\n\n var addFiles = function addFiles() {\n for (\n var _len = arguments.length, args = new Array(_len), _key = 0;\n _key < _len;\n _key++\n ) {\n args[_key] = arguments[_key];\n }\n return new Promise(function(resolve, reject) {\n var sources = [];\n var options = {};\n\n // user passed a sources array\n if (isArray(args[0])) {\n sources.push.apply(sources, args[0]);\n Object.assign(options, args[1] || {});\n } else {\n // user passed sources as arguments, last one might be options object\n var lastArgument = args[args.length - 1];\n if (typeof lastArgument === 'object' && !(lastArgument instanceof Blob)) {\n Object.assign(options, args.pop());\n }\n\n // add rest to sources\n sources.push.apply(sources, args);\n }\n\n store.dispatch('ADD_ITEMS', {\n items: sources,\n index: options.index,\n interactionMethod: InteractionMethod.API,\n success: resolve,\n failure: reject,\n });\n });\n };\n\n var getFiles = function getFiles() {\n return store.query('GET_ACTIVE_ITEMS');\n };\n\n var processFile = function processFile(query) {\n return new Promise(function(resolve, reject) {\n store.dispatch('REQUEST_ITEM_PROCESSING', {\n query: query,\n success: function success(item) {\n resolve(item);\n },\n failure: function failure(error) {\n reject(error);\n },\n });\n });\n };\n\n var prepareFiles = function prepareFiles() {\n for (\n var _len2 = arguments.length, args = new Array(_len2), _key2 = 0;\n _key2 < _len2;\n _key2++\n ) {\n args[_key2] = arguments[_key2];\n }\n var queries = Array.isArray(args[0]) ? args[0] : args;\n var items = queries.length ? queries : getFiles();\n return Promise.all(items.map(prepareFile));\n };\n\n var processFiles = function processFiles() {\n for (\n var _len3 = arguments.length, args = new Array(_len3), _key3 = 0;\n _key3 < _len3;\n _key3++\n ) {\n args[_key3] = arguments[_key3];\n }\n var queries = Array.isArray(args[0]) ? args[0] : args;\n if (!queries.length) {\n var files = getFiles().filter(function(item) {\n return (\n !(item.status === ItemStatus.IDLE && item.origin === FileOrigin.LOCAL) &&\n item.status !== ItemStatus.PROCESSING &&\n item.status !== ItemStatus.PROCESSING_COMPLETE &&\n item.status !== ItemStatus.PROCESSING_REVERT_ERROR\n );\n });\n\n return Promise.all(files.map(processFile));\n }\n return Promise.all(queries.map(processFile));\n };\n\n var removeFiles = function removeFiles() {\n for (\n var _len4 = arguments.length, args = new Array(_len4), _key4 = 0;\n _key4 < _len4;\n _key4++\n ) {\n args[_key4] = arguments[_key4];\n }\n\n var queries = Array.isArray(args[0]) ? args[0] : args;\n\n var options;\n if (typeof queries[queries.length - 1] === 'object') {\n options = queries.pop();\n } else if (Array.isArray(args[0])) {\n options = args[1];\n }\n\n var files = getFiles();\n\n if (!queries.length)\n return Promise.all(\n files.map(function(file) {\n return removeFile(file, options);\n })\n );\n\n // when removing by index the indexes shift after each file removal so we need to convert indexes to ids\n var mappedQueries = queries\n .map(function(query) {\n return isNumber(query) ? (files[query] ? files[query].id : null) : query;\n })\n .filter(function(query) {\n return query;\n });\n\n return mappedQueries.map(function(q) {\n return removeFile(q, options);\n });\n };\n\n var exports = Object.assign(\n {},\n\n on(),\n {},\n\n readWriteApi,\n {},\n\n createOptionAPI(store, defaultOptions),\n {\n /**\n * Override options defined in options object\n * @param options\n */\n setOptions: setOptions,\n\n /**\n * Load the given file\n * @param source - the source of the file (either a File, base64 data uri or url)\n * @param options - object, { index: 0 }\n */\n addFile: addFile,\n\n /**\n * Load the given files\n * @param sources - the sources of the files to load\n * @param options - object, { index: 0 }\n */\n addFiles: addFiles,\n\n /**\n * Returns the file objects matching the given query\n * @param query { string, number, null }\n */\n getFile: getFile,\n\n /**\n * Upload file with given name\n * @param query { string, number, null }\n */\n processFile: processFile,\n\n /**\n * Request prepare output for file with given name\n * @param query { string, number, null }\n */\n prepareFile: prepareFile,\n\n /**\n * Removes a file by its name\n * @param query { string, number, null }\n */\n removeFile: removeFile,\n\n /**\n * Moves a file to a new location in the files list\n */\n moveFile: function moveFile(query, index) {\n return store.dispatch('MOVE_ITEM', { query: query, index: index });\n },\n\n /**\n * Returns all files (wrapped in public api)\n */\n getFiles: getFiles,\n\n /**\n * Starts uploading all files\n */\n processFiles: processFiles,\n\n /**\n * Clears all files from the files list\n */\n removeFiles: removeFiles,\n\n /**\n * Starts preparing output of all files\n */\n prepareFiles: prepareFiles,\n\n /**\n * Sort list of files\n */\n sort: function sort(compare) {\n return store.dispatch('SORT', { compare: compare });\n },\n\n /**\n * Browse the file system for a file\n */\n browse: function browse() {\n // needs to be trigger directly as user action needs to be traceable (is not traceable in requestAnimationFrame)\n var input = view.element.querySelector('input[type=file]');\n if (input) {\n input.click();\n }\n },\n\n /**\n * Destroys the app\n */\n destroy: function destroy() {\n // request destruction\n exports.fire('destroy', view.element);\n\n // stop active processes (file uploads, fetches, stuff like that)\n // loop over items and depending on states call abort for ongoing processes\n store.dispatch('ABORT_ALL');\n\n // destroy view\n view._destroy();\n\n // stop listening to resize\n window.removeEventListener('resize', resizeHandler);\n\n // stop listening to the visiblitychange event\n document.removeEventListener('visibilitychange', visibilityHandler);\n\n // dispatch destroy\n store.dispatch('DID_DESTROY');\n },\n\n /**\n * Inserts the plugin before the target element\n */\n insertBefore: function insertBefore$1(element) {\n return insertBefore(view.element, element);\n },\n\n /**\n * Inserts the plugin after the target element\n */\n insertAfter: function insertAfter$1(element) {\n return insertAfter(view.element, element);\n },\n\n /**\n * Appends the plugin to the target element\n */\n appendTo: function appendTo(element) {\n return element.appendChild(view.element);\n },\n\n /**\n * Replaces an element with the app\n */\n replaceElement: function replaceElement(element) {\n // insert the app before the element\n insertBefore(view.element, element);\n\n // remove the original element\n element.parentNode.removeChild(element);\n\n // remember original element\n originalElement = element;\n },\n\n /**\n * Restores the original element\n */\n restoreElement: function restoreElement() {\n if (!originalElement) {\n return; // no element to restore\n }\n\n // restore original element\n insertAfter(originalElement, view.element);\n\n // remove our element\n view.element.parentNode.removeChild(view.element);\n\n // remove reference\n originalElement = null;\n },\n\n /**\n * Returns true if the app root is attached to given element\n * @param element\n */\n isAttachedTo: function isAttachedTo(element) {\n return view.element === element || originalElement === element;\n },\n\n /**\n * Returns the root element\n */\n element: {\n get: function get() {\n return view.element;\n },\n },\n\n /**\n * Returns the current pond status\n */\n status: {\n get: function get() {\n return store.query('GET_STATUS');\n },\n },\n }\n );\n\n // Done!\n store.dispatch('DID_INIT');\n\n // create actual api object\n return createObject(exports);\n };\n\n var createAppObject = function createAppObject() {\n var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // default options\n var defaultOptions = {};\n forin(getOptions(), function(key, value) {\n defaultOptions[key] = value[0];\n });\n\n // set app options\n var app = createApp(\n Object.assign(\n {},\n\n defaultOptions,\n {},\n\n customOptions\n )\n );\n\n // return the plugin instance\n return app;\n };\n\n var lowerCaseFirstLetter = function lowerCaseFirstLetter(string) {\n return string.charAt(0).toLowerCase() + string.slice(1);\n };\n\n var attributeNameToPropertyName = function attributeNameToPropertyName(attributeName) {\n return toCamels(attributeName.replace(/^data-/, ''));\n };\n\n var mapObject = function mapObject(object, propertyMap) {\n // remove unwanted\n forin(propertyMap, function(selector, mapping) {\n forin(object, function(property, value) {\n // create regexp shortcut\n var selectorRegExp = new RegExp(selector);\n\n // tests if\n var matches = selectorRegExp.test(property);\n\n // no match, skip\n if (!matches) {\n return;\n }\n\n // if there's a mapping, the original property is always removed\n delete object[property];\n\n // should only remove, we done!\n if (mapping === false) {\n return;\n }\n\n // move value to new property\n if (isString(mapping)) {\n object[mapping] = value;\n return;\n }\n\n // move to group\n var group = mapping.group;\n if (isObject(mapping) && !object[group]) {\n object[group] = {};\n }\n\n object[group][lowerCaseFirstLetter(property.replace(selectorRegExp, ''))] = value;\n });\n\n // do submapping\n if (mapping.mapping) {\n mapObject(object[mapping.group], mapping.mapping);\n }\n });\n };\n\n var getAttributesAsObject = function getAttributesAsObject(node) {\n var attributeMapping =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // turn attributes into object\n var attributes = [];\n forin(node.attributes, function(index) {\n attributes.push(node.attributes[index]);\n });\n\n var output = attributes\n .filter(function(attribute) {\n return attribute.name;\n })\n .reduce(function(obj, attribute) {\n var value = attr(node, attribute.name);\n\n obj[attributeNameToPropertyName(attribute.name)] =\n value === attribute.name ? true : value;\n return obj;\n }, {});\n\n // do mapping of object properties\n mapObject(output, attributeMapping);\n\n return output;\n };\n\n var createAppAtElement = function createAppAtElement(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // how attributes of the input element are mapped to the options for the plugin\n var attributeMapping = {\n // translate to other name\n '^class$': 'className',\n '^multiple$': 'allowMultiple',\n '^capture$': 'captureMethod',\n '^webkitdirectory$': 'allowDirectoriesOnly',\n\n // group under single property\n '^server': {\n group: 'server',\n mapping: {\n '^process': {\n group: 'process',\n },\n\n '^revert': {\n group: 'revert',\n },\n\n '^fetch': {\n group: 'fetch',\n },\n\n '^restore': {\n group: 'restore',\n },\n\n '^load': {\n group: 'load',\n },\n },\n },\n\n // don't include in object\n '^type$': false,\n '^files$': false,\n };\n\n // add additional option translators\n applyFilters('SET_ATTRIBUTE_TO_OPTION_MAP', attributeMapping);\n\n // create final options object by setting options object and then overriding options supplied on element\n var mergedOptions = Object.assign({}, options);\n\n var attributeOptions = getAttributesAsObject(\n element.nodeName === 'FIELDSET' ? element.querySelector('input[type=file]') : element,\n attributeMapping\n );\n\n // merge with options object\n Object.keys(attributeOptions).forEach(function(key) {\n if (isObject(attributeOptions[key])) {\n if (!isObject(mergedOptions[key])) {\n mergedOptions[key] = {};\n }\n Object.assign(mergedOptions[key], attributeOptions[key]);\n } else {\n mergedOptions[key] = attributeOptions[key];\n }\n });\n\n // if parent is a fieldset, get files from parent by selecting all input fields that are not file upload fields\n // these will then be automatically set to the initial files\n mergedOptions.files = (options.files || []).concat(\n Array.from(element.querySelectorAll('input:not([type=file])')).map(function(input) {\n return {\n source: input.value,\n options: {\n type: input.dataset.type,\n },\n };\n })\n );\n\n // build plugin\n var app = createAppObject(mergedOptions);\n\n // add already selected files\n if (element.files) {\n Array.from(element.files).forEach(function(file) {\n app.addFile(file);\n });\n }\n\n // replace the target element\n app.replaceElement(element);\n\n // expose\n return app;\n };\n\n // if an element is passed, we create the instance at that element, if not, we just create an up object\n var createApp$1 = function createApp() {\n return isNode(arguments.length <= 0 ? undefined : arguments[0])\n ? createAppAtElement.apply(void 0, arguments)\n : createAppObject.apply(void 0, arguments);\n };\n\n var PRIVATE_METHODS = ['fire', '_read', '_write'];\n\n var createAppAPI = function createAppAPI(app) {\n var api = {};\n\n copyObjectPropertiesToObject(app, api, PRIVATE_METHODS);\n\n return api;\n };\n\n /**\n * Replaces placeholders in given string with replacements\n * @param string - \"Foo {bar}\"\"\n * @param replacements - { \"bar\": 10 }\n */\n var replaceInString = function replaceInString(string, replacements) {\n return string.replace(/(?:{([a-zA-Z]+)})/g, function(match, group) {\n return replacements[group];\n });\n };\n\n var createWorker = function createWorker(fn) {\n var workerBlob = new Blob(['(', fn.toString(), ')()'], {\n type: 'application/javascript',\n });\n\n var workerURL = URL.createObjectURL(workerBlob);\n var worker = new Worker(workerURL);\n\n return {\n transfer: function transfer(message, cb) {},\n post: function post(message, cb, transferList) {\n var id = getUniqueId();\n\n worker.onmessage = function(e) {\n if (e.data.id === id) {\n cb(e.data.message);\n }\n };\n\n worker.postMessage(\n {\n id: id,\n message: message,\n },\n\n transferList\n );\n },\n terminate: function terminate() {\n worker.terminate();\n URL.revokeObjectURL(workerURL);\n },\n };\n };\n\n var loadImage = function loadImage(url) {\n return new Promise(function(resolve, reject) {\n var img = new Image();\n img.onload = function() {\n resolve(img);\n };\n img.onerror = function(e) {\n reject(e);\n };\n img.src = url;\n });\n };\n\n var renameFile = function renameFile(file, name) {\n var renamedFile = file.slice(0, file.size, file.type);\n renamedFile.lastModifiedDate = file.lastModifiedDate;\n renamedFile.name = name;\n return renamedFile;\n };\n\n var copyFile = function copyFile(file) {\n return renameFile(file, file.name);\n };\n\n // already registered plugins (can't register twice)\n var registeredPlugins = [];\n\n // pass utils to plugin\n var createAppPlugin = function createAppPlugin(plugin) {\n // already registered\n if (registeredPlugins.includes(plugin)) {\n return;\n }\n\n // remember this plugin\n registeredPlugins.push(plugin);\n\n // setup!\n var pluginOutline = plugin({\n addFilter: addFilter,\n utils: {\n Type: Type,\n forin: forin,\n isString: isString,\n isFile: isFile,\n toNaturalFileSize: toNaturalFileSize,\n replaceInString: replaceInString,\n getExtensionFromFilename: getExtensionFromFilename,\n getFilenameWithoutExtension: getFilenameWithoutExtension,\n guesstimateMimeType: guesstimateMimeType,\n getFileFromBlob: getFileFromBlob,\n getFilenameFromURL: getFilenameFromURL,\n createRoute: createRoute,\n createWorker: createWorker,\n createView: createView,\n createItemAPI: createItemAPI,\n loadImage: loadImage,\n copyFile: copyFile,\n renameFile: renameFile,\n createBlob: createBlob,\n applyFilterChain: applyFilterChain,\n text: text,\n getNumericAspectRatioFromString: getNumericAspectRatioFromString,\n },\n\n views: {\n fileActionButton: fileActionButton,\n },\n });\n\n // add plugin options to default options\n extendDefaultOptions(pluginOutline.options);\n };\n\n // feature detection used by supported() method\n var isOperaMini = function isOperaMini() {\n return Object.prototype.toString.call(window.operamini) === '[object OperaMini]';\n };\n var hasPromises = function hasPromises() {\n return 'Promise' in window;\n };\n var hasBlobSlice = function hasBlobSlice() {\n return 'slice' in Blob.prototype;\n };\n var hasCreateObjectURL = function hasCreateObjectURL() {\n return 'URL' in window && 'createObjectURL' in window.URL;\n };\n var hasVisibility = function hasVisibility() {\n return 'visibilityState' in document;\n };\n var hasTiming = function hasTiming() {\n return 'performance' in window;\n }; // iOS 8.x\n var hasCSSSupports = function hasCSSSupports() {\n return 'supports' in (window.CSS || {});\n }; // use to detect Safari 9+\n var isIE11 = function isIE11() {\n return /MSIE|Trident/.test(window.navigator.userAgent);\n };\n\n var supported = (function() {\n // Runs immediately and then remembers result for subsequent calls\n var isSupported =\n // Has to be a browser\n isBrowser() &&\n // Can't run on Opera Mini due to lack of everything\n !isOperaMini() &&\n // Require these APIs to feature detect a modern browser\n hasVisibility() &&\n hasPromises() &&\n hasBlobSlice() &&\n hasCreateObjectURL() &&\n hasTiming() &&\n // doesn't need CSSSupports but is a good way to detect Safari 9+ (we do want to support IE11 though)\n (hasCSSSupports() || isIE11());\n\n return function() {\n return isSupported;\n };\n })();\n\n /**\n * Plugin internal state (over all instances)\n */\n var state = {\n // active app instances, used to redraw the apps and to find the later\n apps: [],\n };\n\n // plugin name\n var name = 'filepond';\n\n /**\n * Public Plugin methods\n */\n var fn = function fn() {};\n exports.Status = {};\n exports.FileStatus = {};\n exports.FileOrigin = {};\n exports.OptionTypes = {};\n exports.create = fn;\n exports.destroy = fn;\n exports.parse = fn;\n exports.find = fn;\n exports.registerPlugin = fn;\n exports.getOptions = fn;\n exports.setOptions = fn;\n\n // if not supported, no API\n if (supported()) {\n // start painter and fire load event\n createPainter(\n function() {\n state.apps.forEach(function(app) {\n return app._read();\n });\n },\n function(ts) {\n state.apps.forEach(function(app) {\n return app._write(ts);\n });\n }\n );\n\n // fire loaded event so we know when FilePond is available\n var dispatch = function dispatch() {\n // let others know we have area ready\n document.dispatchEvent(\n new CustomEvent('FilePond:loaded', {\n detail: {\n supported: supported,\n create: exports.create,\n destroy: exports.destroy,\n parse: exports.parse,\n find: exports.find,\n registerPlugin: exports.registerPlugin,\n setOptions: exports.setOptions,\n },\n })\n );\n\n // clean up event\n document.removeEventListener('DOMContentLoaded', dispatch);\n };\n\n if (document.readyState !== 'loading') {\n // move to back of execution queue, FilePond should have been exported by then\n setTimeout(function() {\n return dispatch();\n }, 0);\n } else {\n document.addEventListener('DOMContentLoaded', dispatch);\n }\n\n // updates the OptionTypes object based on the current options\n var updateOptionTypes = function updateOptionTypes() {\n return forin(getOptions(), function(key, value) {\n exports.OptionTypes[key] = value[1];\n });\n };\n\n exports.Status = Object.assign({}, Status);\n exports.FileOrigin = Object.assign({}, FileOrigin);\n exports.FileStatus = Object.assign({}, ItemStatus);\n\n exports.OptionTypes = {};\n updateOptionTypes();\n\n // create method, creates apps and adds them to the app array\n exports.create = function create() {\n var app = createApp$1.apply(void 0, arguments);\n app.on('destroy', exports.destroy);\n state.apps.push(app);\n return createAppAPI(app);\n };\n\n // destroys apps and removes them from the app array\n exports.destroy = function destroy(hook) {\n // returns true if the app was destroyed successfully\n var indexToRemove = state.apps.findIndex(function(app) {\n return app.isAttachedTo(hook);\n });\n if (indexToRemove >= 0) {\n // remove from apps\n var app = state.apps.splice(indexToRemove, 1)[0];\n\n // restore original dom element\n app.restoreElement();\n\n return true;\n }\n\n return false;\n };\n\n // parses the given context for plugins (does not include the context element itself)\n exports.parse = function parse(context) {\n // get all possible hooks\n var matchedHooks = Array.from(context.querySelectorAll('.' + name));\n\n // filter out already active hooks\n var newHooks = matchedHooks.filter(function(newHook) {\n return !state.apps.find(function(app) {\n return app.isAttachedTo(newHook);\n });\n });\n\n // create new instance for each hook\n return newHooks.map(function(hook) {\n return exports.create(hook);\n });\n };\n\n // returns an app based on the given element hook\n exports.find = function find(hook) {\n var app = state.apps.find(function(app) {\n return app.isAttachedTo(hook);\n });\n if (!app) {\n return null;\n }\n return createAppAPI(app);\n };\n\n // adds a plugin extension\n exports.registerPlugin = function registerPlugin() {\n for (\n var _len = arguments.length, plugins = new Array(_len), _key = 0;\n _key < _len;\n _key++\n ) {\n plugins[_key] = arguments[_key];\n }\n\n // register plugins\n plugins.forEach(createAppPlugin);\n\n // update OptionTypes, each plugin might have extended the default options\n updateOptionTypes();\n };\n\n exports.getOptions = function getOptions$1() {\n var opts = {};\n forin(getOptions(), function(key, value) {\n opts[key] = value[0];\n });\n return opts;\n };\n\n exports.setOptions = function setOptions$1(opts) {\n if (isObject(opts)) {\n // update existing plugins\n state.apps.forEach(function(app) {\n app.setOptions(opts);\n });\n\n // override defaults\n setOptions(opts);\n }\n\n // return new options\n return exports.getOptions();\n };\n }\n\n exports.supported = supported;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n});\n","import ClassNameGenerator from '../className/ClassNameGenerator';\nconst globalStateClassesMapping = {\n active: 'Mui-active',\n checked: 'Mui-checked',\n completed: 'Mui-completed',\n disabled: 'Mui-disabled',\n error: 'Mui-error',\n expanded: 'Mui-expanded',\n focused: 'Mui-focused',\n focusVisible: 'Mui-focusVisible',\n required: 'Mui-required',\n selected: 'Mui-selected'\n};\nexport default function generateUtilityClass(componentName, slot) {\n const globalStateClass = globalStateClassesMapping[slot];\n return globalStateClass || `${ClassNameGenerator.generate(componentName)}-${slot}`;\n}","export default function composeClasses(slots, getUtilityClass, classes) {\n const output = {};\n Object.keys(slots).forEach( // `Objet.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.\n // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n slot => {\n output[slot] = slots[slot].reduce((acc, key) => {\n if (key) {\n if (classes && classes[key]) {\n acc.push(classes[key]);\n }\n\n acc.push(getUtilityClass(key));\n }\n\n return acc;\n }, []).join(' ');\n });\n return output;\n}","import generateUtilityClass from '../generateUtilityClass';\nexport default function generateUtilityClasses(componentName, slots) {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot);\n });\n return result;\n}","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\n\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nexport function hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\n\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\n\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : _formatMuiErrorMessage(9, color));\n }\n\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n\n if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : _formatMuiErrorMessage(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\n\nexport const colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');\n};\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\nexport function recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n\n if (type.indexOf('color') !== -1) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n\n return `${type}(${values})`;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\nexport function getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\nexport function getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}","export default {\n disabled: false\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export const reflow = node => node.scrollTop;\nexport function getTransitionProps(props, options) {\n var _style$transitionDura, _style$transitionTimi;\n\n const {\n timeout,\n easing,\n style = {}\n } = props;\n return {\n duration: (_style$transitionDura = style.transitionDuration) != null ? _style$transitionDura : typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n easing: (_style$transitionTimi = style.transitionTimingFunction) != null ? _style$transitionTimi : typeof easing === 'object' ? easing[options.mode] : easing,\n delay: style.transitionDelay\n };\n}","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCollapseUtilityClass(slot) {\n return generateUtilityClass('MuiCollapse', slot);\n}\nconst collapseClasses = generateUtilityClasses('MuiCollapse', ['root', 'horizontal', 'vertical', 'entered', 'hidden', 'wrapper', 'wrapperInner']);\nexport default collapseClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"addEndListener\", \"children\", \"className\", \"collapsedSize\", \"component\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"orientation\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport { elementTypeAcceptingRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { duration } from '../styles/createTransitions';\nimport { getTransitionProps } from '../transitions/utils';\nimport useTheme from '../styles/useTheme';\nimport { useForkRef } from '../utils';\nimport { getCollapseUtilityClass } from './collapseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n orientation,\n classes\n } = ownerState;\n const slots = {\n root: ['root', `${orientation}`],\n entered: ['entered'],\n hidden: ['hidden'],\n wrapper: ['wrapper', `${orientation}`],\n wrapperInner: ['wrapperInner', `${orientation}`]\n };\n return composeClasses(slots, getCollapseUtilityClass, classes);\n};\n\nconst CollapseRoot = styled('div', {\n name: 'MuiCollapse',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.orientation], ownerState.state === 'entered' && styles.entered, ownerState.state === 'exited' && !ownerState.in && ownerState.collapsedSize === '0px' && styles.hidden];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n height: 0,\n overflow: 'hidden',\n transition: theme.transitions.create('height')\n}, ownerState.orientation === 'horizontal' && {\n height: 'auto',\n width: 0,\n transition: theme.transitions.create('width')\n}, ownerState.state === 'entered' && _extends({\n height: 'auto',\n overflow: 'visible'\n}, ownerState.orientation === 'horizontal' && {\n width: 'auto'\n}), ownerState.state === 'exited' && !ownerState.in && ownerState.collapsedSize === '0px' && {\n visibility: 'hidden'\n}));\nconst CollapseWrapper = styled('div', {\n name: 'MuiCollapse',\n slot: 'Wrapper',\n overridesResolver: (props, styles) => styles.wrapper\n})(({\n ownerState\n}) => _extends({\n // Hack to get children with a negative margin to not falsify the height computation.\n display: 'flex',\n width: '100%'\n}, ownerState.orientation === 'horizontal' && {\n width: 'auto',\n height: '100%'\n}));\nconst CollapseWrapperInner = styled('div', {\n name: 'MuiCollapse',\n slot: 'WrapperInner',\n overridesResolver: (props, styles) => styles.wrapperInner\n})(({\n ownerState\n}) => _extends({\n width: '100%'\n}, ownerState.orientation === 'horizontal' && {\n width: 'auto',\n height: '100%'\n}));\n/**\n * The Collapse transition is used by the\n * [Vertical Stepper](/material-ui/react-stepper/#vertical-stepper) StepContent component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nconst Collapse = /*#__PURE__*/React.forwardRef(function Collapse(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCollapse'\n });\n\n const {\n addEndListener,\n children,\n className,\n collapsedSize: collapsedSizeProp = '0px',\n component,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n orientation = 'vertical',\n style,\n timeout = duration.standard,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n orientation,\n collapsedSize: collapsedSizeProp\n });\n\n const classes = useUtilityClasses(ownerState);\n const theme = useTheme();\n const timer = React.useRef();\n const wrapperRef = React.useRef(null);\n const autoTransitionDuration = React.useRef();\n const collapsedSize = typeof collapsedSizeProp === 'number' ? `${collapsedSizeProp}px` : collapsedSizeProp;\n const isHorizontal = orientation === 'horizontal';\n const size = isHorizontal ? 'width' : 'height';\n React.useEffect(() => {\n return () => {\n clearTimeout(timer.current);\n };\n }, []);\n const nodeRef = React.useRef(null);\n const handleRef = useForkRef(ref, nodeRef);\n\n const normalizedTransitionCallback = callback => maybeIsAppearing => {\n if (callback) {\n const node = nodeRef.current; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n\n if (maybeIsAppearing === undefined) {\n callback(node);\n } else {\n callback(node, maybeIsAppearing);\n }\n }\n };\n\n const getWrapperSize = () => wrapperRef.current ? wrapperRef.current[isHorizontal ? 'clientWidth' : 'clientHeight'] : 0;\n\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n if (wrapperRef.current && isHorizontal) {\n // Set absolute position to get the size of collapsed content\n wrapperRef.current.style.position = 'absolute';\n }\n\n node.style[size] = collapsedSize;\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntering = normalizedTransitionCallback((node, isAppearing) => {\n const wrapperSize = getWrapperSize();\n\n if (wrapperRef.current && isHorizontal) {\n // After the size is read reset the position back to default\n wrapperRef.current.style.position = '';\n }\n\n const {\n duration: transitionDuration,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n\n if (timeout === 'auto') {\n const duration2 = theme.transitions.getAutoHeightDuration(wrapperSize);\n node.style.transitionDuration = `${duration2}ms`;\n autoTransitionDuration.current = duration2;\n } else {\n node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : `${transitionDuration}ms`;\n }\n\n node.style[size] = `${wrapperSize}px`;\n node.style.transitionTimingFunction = transitionTimingFunction;\n\n if (onEntering) {\n onEntering(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback((node, isAppearing) => {\n node.style[size] = 'auto';\n\n if (onEntered) {\n onEntered(node, isAppearing);\n }\n });\n const handleExit = normalizedTransitionCallback(node => {\n node.style[size] = `${getWrapperSize()}px`;\n\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n const handleExiting = normalizedTransitionCallback(node => {\n const wrapperSize = getWrapperSize();\n const {\n duration: transitionDuration,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n\n if (timeout === 'auto') {\n // TODO: rename getAutoHeightDuration to something more generic (width support)\n // Actually it just calculates animation duration based on size\n const duration2 = theme.transitions.getAutoHeightDuration(wrapperSize);\n node.style.transitionDuration = `${duration2}ms`;\n autoTransitionDuration.current = duration2;\n } else {\n node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : `${transitionDuration}ms`;\n }\n\n node.style[size] = collapsedSize;\n node.style.transitionTimingFunction = transitionTimingFunction;\n\n if (onExiting) {\n onExiting(node);\n }\n });\n\n const handleAddEndListener = next => {\n if (timeout === 'auto') {\n timer.current = setTimeout(next, autoTransitionDuration.current || 0);\n }\n\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(nodeRef.current, next);\n }\n };\n\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n in: inProp,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n nodeRef: nodeRef,\n timeout: timeout === 'auto' ? null : timeout\n }, other, {\n children: (state, childProps) => /*#__PURE__*/_jsx(CollapseRoot, _extends({\n as: component,\n className: clsx(classes.root, className, {\n 'entered': classes.entered,\n 'exited': !inProp && collapsedSize === '0px' && classes.hidden\n }[state]),\n style: _extends({\n [isHorizontal ? 'minWidth' : 'minHeight']: collapsedSize\n }, style),\n ownerState: _extends({}, ownerState, {\n state\n }),\n ref: handleRef\n }, childProps, {\n children: /*#__PURE__*/_jsx(CollapseWrapper, {\n ownerState: _extends({}, ownerState, {\n state\n }),\n className: classes.wrapper,\n ref: wrapperRef,\n children: /*#__PURE__*/_jsx(CollapseWrapperInner, {\n ownerState: _extends({}, ownerState, {\n state\n }),\n className: classes.wrapperInner,\n children: children\n })\n })\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Collapse.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n\n /**\n * The content node to be collapsed.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The width (horizontal) or height (vertical) of the container when collapsed.\n * @default '0px'\n */\n collapsedSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: elementTypeAcceptingRef,\n\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n\n /**\n * The transition orientation.\n * @default 'vertical'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n * @default duration.standard\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nCollapse.muiSupportAuto = true;\nexport default Collapse;","import * as React from 'react';\nimport { useTheme as useThemeSystem } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nexport default function useTheme() {\n const theme = useThemeSystem(defaultTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getPaperUtilityClass(slot) {\n return generateUtilityClass('MuiPaper', slot);\n}\nconst paperClasses = generateUtilityClasses('MuiPaper', ['root', 'rounded', 'outlined', 'elevation', 'elevation0', 'elevation1', 'elevation2', 'elevation3', 'elevation4', 'elevation5', 'elevation6', 'elevation7', 'elevation8', 'elevation9', 'elevation10', 'elevation11', 'elevation12', 'elevation13', 'elevation14', 'elevation15', 'elevation16', 'elevation17', 'elevation18', 'elevation19', 'elevation20', 'elevation21', 'elevation22', 'elevation23', 'elevation24']);\nexport default paperClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"component\", \"elevation\", \"square\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes, integerPropType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useTheme from '../styles/useTheme';\nimport { getPaperUtilityClass } from './paperClasses'; // Inspired by https://github.com/material-components/material-components-ios/blob/bca36107405594d5b7b16265a5b0ed698f85a5ee/components/Elevation/src/UIColor%2BMaterialElevation.m#L61\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst getOverlayAlpha = elevation => {\n let alphaValue;\n\n if (elevation < 1) {\n alphaValue = 5.11916 * elevation ** 2;\n } else {\n alphaValue = 4.5 * Math.log(elevation + 1) + 2;\n }\n\n return (alphaValue / 100).toFixed(2);\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n square,\n elevation,\n variant,\n classes\n } = ownerState;\n const slots = {\n root: ['root', variant, !square && 'rounded', variant === 'elevation' && `elevation${elevation}`]\n };\n return composeClasses(slots, getPaperUtilityClass, classes);\n};\n\nconst PaperRoot = styled('div', {\n name: 'MuiPaper',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], !ownerState.square && styles.rounded, ownerState.variant === 'elevation' && styles[`elevation${ownerState.elevation}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n transition: theme.transitions.create('box-shadow')\n}, !ownerState.square && {\n borderRadius: theme.shape.borderRadius\n}, ownerState.variant === 'outlined' && {\n border: `1px solid ${theme.palette.divider}`\n}, ownerState.variant === 'elevation' && _extends({\n boxShadow: theme.shadows[ownerState.elevation]\n}, theme.palette.mode === 'dark' && {\n backgroundImage: `linear-gradient(${alpha('#fff', getOverlayAlpha(ownerState.elevation))}, ${alpha('#fff', getOverlayAlpha(ownerState.elevation))})`\n})));\nconst Paper = /*#__PURE__*/React.forwardRef(function Paper(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPaper'\n });\n\n const {\n className,\n component = 'div',\n elevation = 1,\n square = false,\n variant = 'elevation'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n component,\n elevation,\n square,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const theme = useTheme();\n\n if (theme.shadows[elevation] === undefined) {\n console.error([`MUI: The elevation provided is not available in the theme.`, `Please make sure that \\`theme.shadows[${elevation}]\\` is defined.`].join('\\n'));\n }\n }\n\n return /*#__PURE__*/_jsx(PaperRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Paper.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Shadow depth, corresponds to `dp` in the spec.\n * It accepts values between 0 and 24 inclusive.\n * @default 1\n */\n elevation: chainPropTypes(integerPropType, props => {\n const {\n elevation,\n variant\n } = props;\n\n if (elevation > 0 && variant === 'outlined') {\n return new Error(`MUI: Combining \\`elevation={${elevation}}\\` with \\`variant=\"${variant}\"\\` has no effect. Either use \\`elevation={0}\\` or use a different \\`variant\\`.`);\n }\n\n return null;\n }),\n\n /**\n * If `true`, rounded corners are disabled.\n * @default false\n */\n square: PropTypes.bool,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The variant to use.\n * @default 'elevation'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['elevation', 'outlined']), PropTypes.string])\n} : void 0;\nexport default Paper;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAccordionUtilityClass(slot) {\n return generateUtilityClass('MuiAccordion', slot);\n}\nconst accordionClasses = generateUtilityClasses('MuiAccordion', ['root', 'rounded', 'expanded', 'disabled', 'gutters', 'region']);\nexport default accordionClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"defaultExpanded\", \"disabled\", \"disableGutters\", \"expanded\", \"onChange\", \"square\", \"TransitionComponent\", \"TransitionProps\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Collapse from '../Collapse';\nimport Paper from '../Paper';\nimport AccordionContext from './AccordionContext';\nimport useControlled from '../utils/useControlled';\nimport accordionClasses, { getAccordionUtilityClass } from './accordionClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n square,\n expanded,\n disabled,\n disableGutters\n } = ownerState;\n const slots = {\n root: ['root', !square && 'rounded', expanded && 'expanded', disabled && 'disabled', !disableGutters && 'gutters'],\n region: ['region']\n };\n return composeClasses(slots, getAccordionUtilityClass, classes);\n};\n\nconst AccordionRoot = styled(Paper, {\n name: 'MuiAccordion',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${accordionClasses.region}`]: styles.region\n }, styles.root, !ownerState.square && styles.rounded, !ownerState.disableGutters && styles.gutters];\n }\n})(({\n theme\n}) => {\n const transition = {\n duration: theme.transitions.duration.shortest\n };\n return {\n position: 'relative',\n transition: theme.transitions.create(['margin'], transition),\n overflowAnchor: 'none',\n // Keep the same scrolling position\n '&:before': {\n position: 'absolute',\n left: 0,\n top: -1,\n right: 0,\n height: 1,\n content: '\"\"',\n opacity: 1,\n backgroundColor: (theme.vars || theme).palette.divider,\n transition: theme.transitions.create(['opacity', 'background-color'], transition)\n },\n '&:first-of-type': {\n '&:before': {\n display: 'none'\n }\n },\n [`&.${accordionClasses.expanded}`]: {\n '&:before': {\n opacity: 0\n },\n '&:first-of-type': {\n marginTop: 0\n },\n '&:last-of-type': {\n marginBottom: 0\n },\n '& + &': {\n '&:before': {\n display: 'none'\n }\n }\n },\n [`&.${accordionClasses.disabled}`]: {\n backgroundColor: (theme.vars || theme).palette.action.disabledBackground\n }\n };\n}, ({\n theme,\n ownerState\n}) => _extends({}, !ownerState.square && {\n borderRadius: 0,\n '&:first-of-type': {\n borderTopLeftRadius: (theme.vars || theme).shape.borderRadius,\n borderTopRightRadius: (theme.vars || theme).shape.borderRadius\n },\n '&:last-of-type': {\n borderBottomLeftRadius: (theme.vars || theme).shape.borderRadius,\n borderBottomRightRadius: (theme.vars || theme).shape.borderRadius,\n // Fix a rendering issue on Edge\n '@supports (-ms-ime-align: auto)': {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0\n }\n }\n}, !ownerState.disableGutters && {\n [`&.${accordionClasses.expanded}`]: {\n margin: '16px 0'\n }\n}));\nconst Accordion = /*#__PURE__*/React.forwardRef(function Accordion(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAccordion'\n });\n\n const {\n children: childrenProp,\n className,\n defaultExpanded = false,\n disabled = false,\n disableGutters = false,\n expanded: expandedProp,\n onChange,\n square = false,\n TransitionComponent = Collapse,\n TransitionProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const [expanded, setExpandedState] = useControlled({\n controlled: expandedProp,\n default: defaultExpanded,\n name: 'Accordion',\n state: 'expanded'\n });\n const handleChange = React.useCallback(event => {\n setExpandedState(!expanded);\n\n if (onChange) {\n onChange(event, !expanded);\n }\n }, [expanded, onChange, setExpandedState]);\n const [summary, ...children] = React.Children.toArray(childrenProp);\n const contextValue = React.useMemo(() => ({\n expanded,\n disabled,\n disableGutters,\n toggle: handleChange\n }), [expanded, disabled, disableGutters, handleChange]);\n\n const ownerState = _extends({}, props, {\n square,\n disabled,\n disableGutters,\n expanded\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(AccordionRoot, _extends({\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n square: square\n }, other, {\n children: [/*#__PURE__*/_jsx(AccordionContext.Provider, {\n value: contextValue,\n children: summary\n }), /*#__PURE__*/_jsx(TransitionComponent, _extends({\n in: expanded,\n timeout: \"auto\"\n }, TransitionProps, {\n children: /*#__PURE__*/_jsx(\"div\", {\n \"aria-labelledby\": summary.props.id,\n id: summary.props['aria-controls'],\n role: \"region\",\n className: classes.region,\n children: children\n })\n }))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Accordion.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: chainPropTypes(PropTypes.node.isRequired, props => {\n const summary = React.Children.toArray(props.children)[0];\n\n if (isFragment(summary)) {\n return new Error(\"MUI: The Accordion doesn't accept a Fragment as a child. \" + 'Consider providing an array instead.');\n }\n\n if (! /*#__PURE__*/React.isValidElement(summary)) {\n return new Error('MUI: Expected the first child of Accordion to be a valid element.');\n }\n\n return null;\n }),\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, expands the accordion by default.\n * @default false\n */\n defaultExpanded: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, it removes the margin between two expanded accordion items and the increase of height.\n * @default false\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, expands the accordion, otherwise collapse it.\n * Setting this prop enables control over the accordion.\n */\n expanded: PropTypes.bool,\n\n /**\n * Callback fired when the expand/collapse state is changed.\n *\n * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {boolean} expanded The `expanded` state of the accordion.\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, rounded corners are disabled.\n * @default false\n */\n square: PropTypes.bool,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The component used for the transition.\n * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Collapse\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Accordion;","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nfunction Ripple(props) {\n const {\n className,\n classes,\n pulsate = false,\n rippleX,\n rippleY,\n rippleSize,\n in: inProp,\n onExited,\n timeout\n } = props;\n const [leaving, setLeaving] = React.useState(false);\n const rippleClassName = clsx(className, classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n const rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n const childClassName = clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n\n if (!inProp && !leaving) {\n setLeaving(true);\n }\n\n React.useEffect(() => {\n if (!inProp && onExited != null) {\n // react-transition-group#onExited\n const timeoutId = setTimeout(onExited, timeout);\n return () => {\n clearTimeout(timeoutId);\n };\n }\n\n return undefined;\n }, [onExited, inProp, timeout]);\n return /*#__PURE__*/_jsx(\"span\", {\n className: rippleClassName,\n style: rippleStyles,\n children: /*#__PURE__*/_jsx(\"span\", {\n className: childClassName\n })\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? Ripple.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n\n /**\n * @ignore - injected from TransitionGroup\n */\n in: PropTypes.bool,\n\n /**\n * @ignore - injected from TransitionGroup\n */\n onExited: PropTypes.func,\n\n /**\n * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n */\n pulsate: PropTypes.bool,\n\n /**\n * Diameter of the ripple.\n */\n rippleSize: PropTypes.number,\n\n /**\n * Horizontal position of the ripple center.\n */\n rippleX: PropTypes.number,\n\n /**\n * Vertical position of the ripple center.\n */\n rippleY: PropTypes.number,\n\n /**\n * exit delay\n */\n timeout: PropTypes.number.isRequired\n} : void 0;\nexport default Ripple;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTouchRippleUtilityClass(slot) {\n return generateUtilityClass('MuiTouchRipple', slot);\n}\nconst touchRippleClasses = generateUtilityClasses('MuiTouchRipple', ['root', 'ripple', 'rippleVisible', 'ripplePulsate', 'child', 'childLeaving', 'childPulsate']);\nexport default touchRippleClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"center\", \"classes\", \"className\"];\n\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport { keyframes } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Ripple from './Ripple';\nimport touchRippleClasses from './touchRippleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DURATION = 550;\nexport const DELAY_RIPPLE = 80;\nconst enterKeyframe = keyframes(_t || (_t = _`\n 0% {\n transform: scale(0);\n opacity: 0.1;\n }\n\n 100% {\n transform: scale(1);\n opacity: 0.3;\n }\n`));\nconst exitKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n`));\nconst pulsateKeyframe = keyframes(_t3 || (_t3 = _`\n 0% {\n transform: scale(1);\n }\n\n 50% {\n transform: scale(0.92);\n }\n\n 100% {\n transform: scale(1);\n }\n`));\nexport const TouchRippleRoot = styled('span', {\n name: 'MuiTouchRipple',\n slot: 'Root'\n})({\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n}); // This `styled()` function invokes keyframes. `styled-components` only supports keyframes\n// in string templates. Do not convert these styles in JS object as it will break.\n\nexport const TouchRippleRipple = styled(Ripple, {\n name: 'MuiTouchRipple',\n slot: 'Ripple'\n})(_t4 || (_t4 = _`\n opacity: 0;\n position: absolute;\n\n &.${0} {\n opacity: 0.3;\n transform: scale(1);\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n &.${0} {\n animation-duration: ${0}ms;\n }\n\n & .${0} {\n opacity: 1;\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: currentColor;\n }\n\n & .${0} {\n opacity: 0;\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n & .${0} {\n position: absolute;\n /* @noflip */\n left: 0px;\n top: 0;\n animation-name: ${0};\n animation-duration: 2500ms;\n animation-timing-function: ${0};\n animation-iteration-count: infinite;\n animation-delay: 200ms;\n }\n`), touchRippleClasses.rippleVisible, enterKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.ripplePulsate, ({\n theme\n}) => theme.transitions.duration.shorter, touchRippleClasses.child, touchRippleClasses.childLeaving, exitKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.childPulsate, pulsateKeyframe, ({\n theme\n}) => theme.transitions.easing.easeInOut);\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\n\nconst TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTouchRipple'\n });\n\n const {\n center: centerProp = false,\n classes = {},\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const [ripples, setRipples] = React.useState([]);\n const nextKey = React.useRef(0);\n const rippleCallback = React.useRef(null);\n React.useEffect(() => {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]); // Used to filter out mouse emulated events on mobile.\n\n const ignoringMouseDown = React.useRef(false); // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n\n const startTimer = React.useRef(null); // This is the hook called once the previous timeout is ready.\n\n const startTimerCommit = React.useRef(null);\n const container = React.useRef(null);\n React.useEffect(() => {\n return () => {\n clearTimeout(startTimer.current);\n };\n }, []);\n const startCommit = React.useCallback(params => {\n const {\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n } = params;\n setRipples(oldRipples => [...oldRipples, /*#__PURE__*/_jsx(TouchRippleRipple, {\n classes: {\n ripple: clsx(classes.ripple, touchRippleClasses.ripple),\n rippleVisible: clsx(classes.rippleVisible, touchRippleClasses.rippleVisible),\n ripplePulsate: clsx(classes.ripplePulsate, touchRippleClasses.ripplePulsate),\n child: clsx(classes.child, touchRippleClasses.child),\n childLeaving: clsx(classes.childLeaving, touchRippleClasses.childLeaving),\n childPulsate: clsx(classes.childPulsate, touchRippleClasses.childPulsate)\n },\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n }, nextKey.current)]);\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n const start = React.useCallback((event = {}, options = {}, cb) => {\n const {\n pulsate = false,\n center = centerProp || options.pulsate,\n fakeElement = false // For test purposes\n\n } = options;\n\n if (event.type === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n\n if (event.type === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n\n const element = fakeElement ? null : container.current;\n const rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n }; // Get the size of the ripple\n\n let rippleX;\n let rippleY;\n let rippleSize;\n\n if (center || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n const {\n clientX,\n clientY\n } = event.touches ? event.touches[0] : event;\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n\n if (center) {\n rippleSize = Math.sqrt((2 * rect.width ** 2 + rect.height ** 2) / 3); // For some reason the animation is broken on Mobile Chrome if the size is even.\n\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n const sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n const sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);\n } // Touche devices\n\n\n if (event.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = () => {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n }; // Delay the execution of the ripple effect.\n\n\n startTimer.current = setTimeout(() => {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n }, DELAY_RIPPLE); // We have to make a tradeoff with this value.\n }\n } else {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n }\n }, [centerProp, startCommit]);\n const pulsate = React.useCallback(() => {\n start({}, {\n pulsate: true\n });\n }, [start]);\n const stop = React.useCallback((event, cb) => {\n clearTimeout(startTimer.current); // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n\n if (event.type === 'touchend' && startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.current = setTimeout(() => {\n stop(event, cb);\n });\n return;\n }\n\n startTimerCommit.current = null;\n setRipples(oldRipples => {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, []);\n React.useImperativeHandle(ref, () => ({\n pulsate,\n start,\n stop\n }), [pulsate, start, stop]);\n return /*#__PURE__*/_jsx(TouchRippleRoot, _extends({\n className: clsx(classes.root, touchRippleClasses.root, className),\n ref: container\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionGroup, {\n component: null,\n exit: true,\n children: ripples\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes = {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: PropTypes.bool,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default TouchRipple;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getButtonBaseUtilityClass(slot) {\n return generateUtilityClass('MuiButtonBase', slot);\n}\nconst buttonBaseClasses = generateUtilityClasses('MuiButtonBase', ['root', 'disabled', 'focusVisible']);\nexport default buttonBaseClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"action\", \"centerRipple\", \"children\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"LinkComponent\", \"onBlur\", \"onClick\", \"onContextMenu\", \"onDragLeave\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"tabIndex\", \"TouchRippleProps\", \"touchRippleRef\", \"type\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { elementTypeAcceptingRef, refType } from '@mui/utils';\nimport composeClasses from '@mui/base/composeClasses';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport TouchRipple from './TouchRipple';\nimport buttonBaseClasses, { getButtonBaseUtilityClass } from './buttonBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n focusVisible,\n focusVisibleClassName,\n classes\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible']\n };\n const composedClasses = composeClasses(slots, getButtonBaseUtilityClass, classes);\n\n if (focusVisible && focusVisibleClassName) {\n composedClasses.root += ` ${focusVisibleClassName}`;\n }\n\n return composedClasses;\n};\n\nexport const ButtonBaseRoot = styled('button', {\n name: 'MuiButtonBase',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n\n },\n [`&.${buttonBaseClasses.disabled}`]: {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n});\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\n\nconst ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiButtonBase'\n });\n\n const {\n action,\n centerRipple = false,\n children,\n className,\n component = 'button',\n disabled = false,\n disableRipple = false,\n disableTouchRipple = false,\n focusRipple = false,\n LinkComponent = 'a',\n onBlur,\n onClick,\n onContextMenu,\n onDragLeave,\n onFocus,\n onFocusVisible,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseLeave,\n onMouseUp,\n onTouchEnd,\n onTouchMove,\n onTouchStart,\n tabIndex = 0,\n TouchRippleProps,\n touchRippleRef,\n type\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const buttonRef = React.useRef(null);\n const rippleRef = React.useRef(null);\n const handleRippleRef = useForkRef(rippleRef, touchRippleRef);\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n\n React.useImperativeHandle(action, () => ({\n focusVisible: () => {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n }), []);\n const [mountedState, setMountedState] = React.useState(false);\n React.useEffect(() => {\n setMountedState(true);\n }, []);\n const enableTouchRipple = mountedState && !disableRipple && !disabled;\n React.useEffect(() => {\n if (focusVisible && focusRipple && !disableRipple && mountedState) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible, mountedState]);\n\n function useRippleHandler(rippleAction, eventCallback, skipRippleAction = disableTouchRipple) {\n return useEventCallback(event => {\n if (eventCallback) {\n eventCallback(event);\n }\n\n const ignore = skipRippleAction;\n\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n\n return true;\n });\n }\n\n const handleMouseDown = useRippleHandler('start', onMouseDown);\n const handleContextMenu = useRippleHandler('stop', onContextMenu);\n const handleDragLeave = useRippleHandler('stop', onDragLeave);\n const handleMouseUp = useRippleHandler('stop', onMouseUp);\n const handleMouseLeave = useRippleHandler('stop', event => {\n if (focusVisible) {\n event.preventDefault();\n }\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n const handleTouchStart = useRippleHandler('start', onTouchStart);\n const handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n const handleTouchMove = useRippleHandler('stop', onTouchMove);\n const handleBlur = useRippleHandler('stop', event => {\n handleBlurVisible(event);\n\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n const handleFocus = useEventCallback(event => {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n\n handleFocusVisible(event);\n\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(true);\n\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n\n if (onFocus) {\n onFocus(event);\n }\n });\n\n const isNonNativeButton = () => {\n const button = buttonRef.current;\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n /**\n * IE11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n\n\n const keydownRef = React.useRef(false);\n const handleKeyDown = useEventCallback(event => {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n keydownRef.current = true;\n rippleRef.current.stop(event, () => {\n rippleRef.current.start(event);\n });\n }\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n } // Keyboard accessibility for non interactive elements\n\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n\n if (onClick) {\n onClick(event);\n }\n }\n });\n const handleKeyUp = useEventCallback(event => {\n // calling preventDefault in keyUp on a